Skip to content
TopicTracker
出典 HackerNews原文を表示
翻訳言語翻訳言語

Direct I/O for Cassandra Compaction: Cutting p99 Read Latency by 5x

Cassandra compaction with direct I/O reduces p99 read latency by 5x compared to buffered I/O, as the technique bypasses the OS page cache to avoid cache pollution. By using O_DIRECT for compaction reads and writes, the page cache remains dedicated to serving user read requests rather than being filled with compaction data. This approach delivers significant latency improvements without requiring hardware changes.

背景メモ

- Apache Cassandraは、大規模データ処理に使われる分散NoSQLデータベース。書き込み性能が高い反面、内部で「コンパクション」というデータ整理処理を定期的に実行する。このコンパクション中に通常の読み取り(クエリ)が遅くなるのが長年の課題だった。 - コンパクションは、ディスク上の古いデータファイル(SSTable)を読んで新しいファイルに書き直す処理で、この際にOSのページキャッシュ(ファイル読み込みの高速化機構)が汚染され、ユーザークエリのレイテンシが悪化する。 - 本稿で紹介されているのは、コンパクション時にのみ「ダイレクトI/O」を使う手法。通常のファイル読み書きがOSのキャッシュを経由するのに対し、ダイレクトI/Oはキャッシュをバイパスしてディスクと直接やり取りする。これによりキャッシュ汚染を防ぎ、p99レイテンシ(遅い方から1%のリクエストの応答時間)を最大5分の1に削減できるという。 - この最適化を施したのは「Lightfoot」という企業。同社はCassandraの性能改善に特化したエンジニアリングを手掛けており、この成果はオープンソースのCassandra本体への貢献も視野に入れている。