2016-09-09 6 views
1

Я планирую открыть все sstables для данного cf для подсчета строк и надгробных памятников. Это на самом деле ISSTableScanner, и, как обычно, он должен проверять каждую строку в sstables.open cassandra sstables для подсчета строк

Это работает отлично, если у вас ограниченное количество sstables для данного cf. Но, что, если у вас есть 1000 sstables, этот подход будет иметь проблемы с производительностью, поскольку он должен открывать каждый sstable и сканировать.

Есть ли лучший способ открыть все sstables для данного cf? Я знаю, что Runnable Interface используется для использования метода SSTableReader openAll(). кроме этого, есть ли лучший способ добиться этого?

Помогает ли MapReduce в этом?. Спасибо в Advance.

Спасибо, -Suyodha

ответ

2

Если вы ищете число надгробия, вы можете получить, что путь суммирования отсчетов бункеров в estimatedTombstoneDropTime из sstable статистики.

Если вы ищете какой раздел/строку имеет большинство надгробий, которые можно использовать https://github.com/tolbertam/sstable-tools (возможно, включены в C * когда-нибудь в sstablemetadata команде как часть CASSANDRA-1148) и называет «описать» команда, это даст вам надгробие лидеры. Вы можете увидеть реализацию here, где это просто для одного sstable, но вызов openall - это всего лишь тонкая оболочка, которая действительно открывает их параллельно.

Существует также spcassandra-tombstones как часть https://github.com/spotify/cassandra-opstools, что вы можете увидеть реализацию here.

 Смежные вопросы

  • Нет связанных вопросов^_^