Как я могу произвести «уплотнение надгробной плиты» в cassandra 1.2.6

Относительно уплотнения надгробной плиты

Я хотел бы знать, почему я не могу произвести «уплотнение надгробной плиты» в cassandra1.2.6.

[шаги]

  1. создать семейство столбцов в cassandra-cli

    create keyspace keyspace1 with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options = {replication_factor:3};

    use keyspace1;

    create column family cf1 with comparator=AsciiType and default_validation_class=AsciiType and key_validation_class=AsciiType and compaction_strategy_options={tombstone_compaction_interval: 1, tombstone_threshold: '0.1'} and gc_grace=600 and column_metadata=[ {column_name: column1, validation_class: LongType} ];

  2. Введите некоторые данные с TTL в cassandra-cli следующим образом

    set cf1['key1']['column1']=100 with ttl = 1;
    set cf1['key2']['column1']=200 with ttl = 1;
    set cf1['key3']['column1']=300 with ttl = 1;
    set cf1['key4']['column1']=400 with ttl = 600;
    set cf1['key5']['column1']=500 with ttl = 600;
    set cf1['key6']['column1']=600 with ttl = 600;

  3. выполнить 'nodetool flush'

  4. проверьте Data.db с помощью sstable2json

    {"key": "2412441","columns": [["column1","100",1373516242953000,"d"]]},
    {"key": "2412442","columns": [["column1","200",1373516242963000,"d"]]},
    {"key": "2412443","columns": [["column1","300",1373516242973000,"d"]]},
    {"key": "2412444","columns": [["column1","400",1373516242983000,"e",600,1373516300]]},
    {"key": "2412445","columns": [["column1","500",1373516242983000,"e",600,1373516300]]},
    {"key": "2412446","columns": [["column1","600",1373516242983000,"e",600,1373516300]]}

  5. Подождите более 1 часа.... В Data.db нет изменений.... уплотнение надгробной плиты не производилось...

  6. Введите некоторые данные и снова выполните сброс nodetool ... Только что был создан новый Data.db ... уплотнение надгробной плиты не было произведено ...

Я хотел бы просто попробовать «уплотнение надгробной плиты».


person user2572068    schedule 11.07.2013    source источник


Ответы (1)


Вероятно, у вас недостаточно данных в sstable, чтобы Cassandra могла угадать соотношение надгробий. Вы можете использовать метод getDroppableTombstoneRatio из ColumnFamilyStoreMBean через JMX для проверки.

person jbellis    schedule 11.07.2013
comment
Я попытался использовать некоторые данные ГБ. Но уплотнение надгробной плиты не производилось... Значение DroppableTombstoneRatio равно 0,5336280444019503. Что является причиной уплотнения надгробной плиты? - person user2572068; 16.07.2013
comment
tombstone_threshold — это параметр стратегии уплотнения, который по умолчанию равен 0,2, т. е. если sstable составляет более 20% надгробий, он будет рассмотрен для уплотнения надгробий. Уплотнения надгробных камней выполняются только в том случае, если в очереди нет других уплотнений. - person jbellis; 04.12.2013