2017-01-17 3 views
0

Je souhaite supprimer une grande quantité de lignes d'une table particulièrerien compact Cassandra se

Je ne les étapes suivantes: 1) Set gc_grace_seconds = 0 pour la table 2) a supprimé un grand nombre de lignes ~ 1 million 3) Ran ./nodetool compact keyspace_name nom_table

Cependant, lorsque j'ai exécuté nodetool compact (étape 3) rien ne se passe. Cela ne commence pas le compactage. En raison du grand nombre de pierres tombales, la plupart de mes demandes sont également expirées.

Le tableau présente les paramètres suivants:

AND bloom_filter_fp_chance = 0.001 
    AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}' 
    AND comment = '' 
    AND compaction = {'tombstone_threshold': '0.2', 'tombstone_compaction_interval': '86400', 'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'} 
    AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'} 
    AND dclocal_read_repair_chance = 0.1 
    AND default_time_to_live = 0 
    AND gc_grace_seconds = 0 
    AND max_index_interval = 2048 
    AND memtable_flush_period_in_ms = 0 
    AND min_index_interval = 128 
    AND read_repair_chance = 0.0 
    AND speculative_retry = '99.0PERCENTILE'; 

Je souhaite compacter et de se débarrasser des pierres tombales pour que je puisse effectivement se débarrasser des données indésirables.

J'ai deux nœuds dans mon cluster avec le facteur de réplication 2 Depuis que j'ai fait les suppressions, la différence de taille entre les deux a augmenté. Il y a une différence d'environ 700 Mo. J'utilise dsc-cassandra-2.1.10

cfstats sont présentés ci-dessous

Keyspace: keyspace1 
     Read Count: 16316 
     Read Latency: 12.23892982348615 ms. 
     Write Count: 11078808 
     Write Latency: 0.6955001765532899 ms. 
     Pending Flushes: 0 
       Table: table1 
       SSTable count: 92 
       SSTables in each level: [1, 4, 38, 49, 0, 0, 0, 0, 0] 
       Space used (live): 38247164244 
       Space used (total): 38247164244 
       Space used by snapshots (total): 26692664189 
       Off heap memory used (total): 14695952 
       SSTable Compression Ratio: 0.32499125289530584 
       Number of keys (estimate): 2788 
       Memtable cell count: 16632 
       Memtable data size: 1839846 
       Memtable off heap memory used: 0 
       Memtable switch count: 93 
       Local read count: 16316 
       Local read latency: 12.239 ms 
       Local write count: 11078808 
       Local write latency: 0.696 ms 
       Pending flushes: 0 
       Bloom filter false positives: 331 
       Bloom filter false ratio: 0.00000 
       Bloom filter space used: 10960 
       Bloom filter off heap memory used: 10224 
       Index summary off heap memory used: 3672 
       Compression metadata off heap memory used: 14682056 
       Compacted partition minimum bytes: 216 
       Compacted partition maximum bytes: 3449259151 
       Compacted partition mean bytes: 25823653 
       Average live cells per slice (last five minutes): 405.3014160485502 
       Maximum live cells per slice (last five minutes): 5002.0 
       Average tombstones per slice (last five minutes): 0.0 
       Maximum tombstones per slice (last five minutes): 0.0 

Répondre

0
stratégie

de compactage dicte le comportement de nodetool compact et il y a des différences subtiles dans les api entre les versions

http://docs.datastax.com/en/archived/cassandra/3.x/cassandra/tools/toolsCompact.html vs https://docs.datastax.com/en/cassandra/2.1/cassandra/tools/toolsCompact.html

Pour supprimer les données et les pierres tombales:

  1. interrupteur la stratégie de compactage à SizeTieredComapction
  2. d'effectuer un compactage important qui va générer une sstable (qui ne sera pas tenir pierres tombales/données couvertes par des pierres tombales)
  3. compactage du commutateur de retour à LeveledCompaction

d'exécution une compaction majeure et la commutation entre les stratégies de compactage est une opération intensive d'E/S - veuillez en tenir compte.