4

現在boltdb、バケットにさまざまなエントリを格納するために使用しています。

データベースの読み取りと更新でゴルーチンとチャネルを使用するにはどうすればよいですか?

4

1 に答える 1

10

一般的に、次の点に注意すれば可能です。

  • すべてのアクセスは、独自のトランザクションで行う必要があります。トランザクションはゴルーチン間で共有されるべきではありません (それらが読み取り専用であるか読み書き可能であるかに関係なく)。

  • Boltdb は、特定の時点で 1 つのライターのみを許容します。複数の並行トランザクションが同時に書き込もうとすると、シリアル化されます。データベースの一貫性は保証されますが、書き込み操作を並列化できないため、パフォーマンスに影響します。

  • 読み取り専用トランザクションは同時に実行されます (場合によっては並列化されます)。

  • デッドロック状態を回避するために、特定のゴルーチンで同時に 1 つのトランザクションのみを開きます。

于 2015-06-05T19:15:14.573 に答える