Q4M 最適化 ToDo
まずは基本的なところから。
- リードロックとライトロックの分離
- fdatasync の間、SELECT がブロックされるのはヒドすぎるw
- rev. 32 で対応
- 最初の rnd_next でメタ情報をスレッドローカルにコピーする
- SELECT 1回で mutex ロックを2回だけにすべき
- 後回しにするかも
- 現状、キャッシュアクセスにロックが必要だから無意味
- それに NON-OWNER MODE で SELECT するのはレアケース
- キャッシュをスレッドに紐づける
- 現行の実装では単一のキャッシュを複数スレッドで共有しているが、これでは並行性が高いと意味がない
- OWNER MODE からのリードは局所的なのでこのままでいいかも
- グループコミット
- 複数スレッドからの情報をまとめて write & fdatasync
- キューの場合、1行の削除が頻発するから、これをまとめることが最重要
- データファイルの2ファイル化
- 1回転で fdatasync 2回ネタw
- 実際速くなるんだろうか