Поддерживает ли boltdb одновременные запросы на чтение и обновление БД?

В настоящее время использую boltdb для хранения различных записей в ведре.

Как я могу использовать концепцию подпрограмм и каналов языка Go при чтении и обновлении в БД?

1 ответ

Как правило, да, если вы обращаете внимание на следующие моменты:

  • все обращения должны быть сделаны в их собственных транзакциях. Транзакции не должны делиться между программами (будь то только для чтения или для чтения и записи).

  • boltdb допускает только одного писателя в данный момент времени. Если несколько одновременных транзакций попытаются выполнить запись одновременно, они будут сериализованы. Согласованность базы данных гарантируется, но это влияет на производительность, поскольку операции записи не могут быть распараллелены.

  • Транзакции только для чтения выполняются одновременно (и потенциально распараллеливаются).

  • открывайте только одну транзакцию в заданной последовательности одновременно, чтобы избежать тупиковых ситуаций.

Другие вопросы по тегам