Поддерживает ли boltdb одновременные запросы на чтение и обновление БД?
В настоящее время использую boltdb
для хранения различных записей в ведре.
Как я могу использовать концепцию подпрограмм и каналов языка Go при чтении и обновлении в БД?
1 ответ
Как правило, да, если вы обращаете внимание на следующие моменты:
все обращения должны быть сделаны в их собственных транзакциях. Транзакции не должны делиться между программами (будь то только для чтения или для чтения и записи).
boltdb допускает только одного писателя в данный момент времени. Если несколько одновременных транзакций попытаются выполнить запись одновременно, они будут сериализованы. Согласованность базы данных гарантируется, но это влияет на производительность, поскольку операции записи не могут быть распараллелены.
Транзакции только для чтения выполняются одновременно (и потенциально распараллеливаются).
открывайте только одну транзакцию в заданной последовательности одновременно, чтобы избежать тупиковых ситуаций.