2016-09-09 3 views
1

行数と墓石に与えられたcfのすべてのsstablesを開くことを計画しています。それは実際にはISSTableScannerであり、いつものようにそれはスティールの各行をスキャンする必要があります。行数のためにcassandra sstablesを開きます

指定されたcfのスレッド数が限られていれば正常に動作します。しかし、もしあなたが1000のsstablesを持っていれば、このアプローチはパフォーマンスの問題になります。なぜなら、それぞれのすべてのスレッドとスキャンを開く必要があるからです。

与えられたcfのすべてのsstablesを開く最良の方法はありますか?私は、SSTableReaderのopenAll()メソッドに使用するRunnable Interfaceを認識しています。それ以外の方法はありますか?

MapReduceはこれを助けますか?アドバンスでのご褒美です。

おかげで、あなたは墓石の数を探しているなら -Suyodha

答えて

2

は、あなたがsstable統計のestimatedTombstoneDropTimeにビンの数を合計してそれを得ることができます。

あなたはどのパーティション/行を探しているならは、「説明」コマンドは、それはあなたの墓碑を与えるだろう(* CASSANDRA-1148の一環としてsstablemetadataコマンドでいつかおそらくCに含まれる)あなたはhttps://github.com/tolbertam/sstable-toolsを使用することができ、ほとんどの墓石があり、呼び出します指導者。実装はhereですが、ここでは単一のsstableだけを示していますが、openallを呼び出すと、それを実際にパラレルに開くための薄いラッパーになります。

https://github.com/spotify/cassandra-opstoolsの一部としてspcassandra-tombstonesがあり、これはhereの実装を見ることができます。

関連する問題