ライトストール
LSMベースのデータベースが、コンパクションが追いつかないために、受け付ける書き込みを意図的に遅くする、あるいは完全に止めること。RocksDBでレイテンシスパイクの原因として最もよく挙げられる。
LSMエンジンは書き込みをまずメモリで受け、レベル0へフラッシュする。その後、バックグラウンドスレッドがデータを下位レベルへ移していく。書き込みの到着がコンパクションより速いと負債が溜まる。レベル0のファイル数は、読み取りが探すべき場所の数に直結するので、無制限に増やすわけにはいかない。
そこで問題を目に見える形にする。あるしきい値では書き込み側を一定の速度に絞り、より高いしきい値では回復するまで完全に止める。アプリケーションから見ると、データベースが数秒フリーズしたように見える。対処法はどれも一長一短で、コンパクションスレッドを増やす、memtableを大きくする、書き込みに優しいコンパクション戦略に変える、あるいは単に負荷を減らす、のいずれかだ。