Berkeley DB の設定を調整して、キャッシュメモリーを有効化または増加できるかもしれない。
ダウンロード中に ACID のどのプロパティが必要か?
BDB レコードの追加はチェックポイントを発行するまで単にログファイルへの追記だ。チェックポイントがメインデータベースファイルを更新する。
通常の BDB トランザクションでは、トランザクションのコミットが成功する前に各ログレコードがディスクに同期されることが保証される。これは非常に厳密だが、完全な ACID には必要だ。DB_TXN_NOSYNC を有効にしても多くが得られる。
Bitcoin は最近の取引が取り消されても明らかにリカバリできるので、初期ブロックダウンロードの 100%でこのフラグを設定するのが有用だと思われる。
チェックポイントについては、チェックポイント時に実行される作業量——ログからデータベースファイルにコピーする必要があるレコード数——と実時間のバランスだ。いくつかの値を試して何が「適切」に感じるか見るしかない——おそらく 10,000 ブロックごとにチェックポイント?