Кассандра коллекция надгробий - PullRequest
0 голосов
/ 25 января 2019

Я создал таблицу с коллекцией. Вставил запись, взял sstabledump и увидел в sstable надгробную плиту. Этот надгробный камень когда-либо удаляется? Кроме того, когда я запускаю sstablemetadata на единственном sstable, он показывает «Предполагаемые сбрасываемые надгробные камни» как 0,5 ». Аналогично, он показывает одну запись с временем эпохи в качестве времени вставки для -« Предполагаемое время выпадения надгробных плит: 1548384720: 1 ». Означает ли это, что когда Я делаю sstablemetadata для таблицы, имеющей коллекции, предполагаемые значения коэффициента сбрасываемого захоронения и значения времени отбрасывания не являются истинными и надежными значениями из-за захоронений диапазона сбора / списка?

CREATE TABLE ks.nmtest (
    reservation_id text,
    order_id text,
    c1 int,
    order_details map<text, text>,
    PRIMARY KEY (reservation_id, order_id)
) WITH CLUSTERING ORDER BY (order_id ASC)

user@cqlsh:ks> insert into nmtest (reservation_id , order_id , c1, order_details ) values('3','3',3,{'key':'value'});
user@cqlsh:ks> select * from nmtest ;
 reservation_id | order_id | c1 | order_details
----------------+----------+----+------------------
              3 |        3 |  3 | {'key': 'value'}
(1 rows)

[root@localhost nmtest-e1302500201d11e983bb693c02c04c62]# sstabledump mc-5-big-Data.db 
WARN  02:52:19,596 memtable_cleanup_threshold has been deprecated and should be removed from cassandra.yaml
[
  {
    "partition" : {
      "key" : [ "3" ],
      "position" : 0
    },
    "rows" : [
      {
        "type" : "row",
        "position" : 41,
        "clustering" : [ "3" ],
        "liveness_info" : { "tstamp" : "2019-01-25T02:51:13.574409Z" },
        "cells" : [
          { "name" : "c1", "value" : 3 },
          { "name" : "order_details", "deletion_info" : { "marked_deleted" : "2019-01-25T02:51:13.574408Z", "local_delete_time" : "2019-01-25T02:51:13Z" } },
          { "name" : "order_details", "path" : [ "key" ], "value" : "value" }
        ]
      }
    ]
  }

SSTable: /data/data/ks/nmtest-e1302500201d11e983bb693c02c04c62/mc-5-big
Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
Bloom Filter FP chance: 0.010000
Minimum timestamp: 1548384673574408
Maximum timestamp: 1548384673574409
SSTable min local deletion time: 1548384673
SSTable max local deletion time: 2147483647
Compressor: org.apache.cassandra.io.compress.LZ4Compressor
Compression ratio: 1.0714285714285714
TTL min: 0
TTL max: 0
First token: -155496620801056360 (key=3)
Last token: -155496620801056360 (key=3)
minClustringValues: [3]
maxClustringValues: [3]
Estimated droppable tombstones: 0.5
SSTable Level: 0
Repaired at: 0
Replay positions covered: {CommitLogPosition(segmentId=1548382769966, position=6243201)=CommitLogPosition(segmentId=1548382769966, position=6433666)}
totalColumnsSet: 2
totalRows: 1
Estimated tombstone drop times:
1548384720:         1

Еще один вопрос касался вывода таблиц статистических данных nodetool - на что ссылается slice в Кассандре?

    Average live cells per slice (last five minutes): 1.0
    Maximum live cells per slice (last five minutes): 1
    Average tombstones per slice (last five minutes): 1.0
    Maximum tombstones per slice (last five minutes): 1
    Dropped Mutations: 0

1 Ответ

0 голосов
/ 25 января 2019

sstablemetadata не содержит информацию о вашей таблице, которая не хранится в sstable, так как она не гарантированно будет запущена в системе, где работает Cassandra, и даже если она была очень сложной, чтобы знать, как вытащить информация о схеме из него.

Поскольку gc_grace_seconds является табличным параметром, а не в метаданных, по умолчанию принимается льготный интервал 0 gc, поэтому значения времени сброса, указанные в этой гистограмме, будут больше гистограммой времени создания надгробной плиты по умолчанию. Если вы знаете свою льготность gc, вы можете добавить ее в качестве параметра -g в вызов sstablemetadata. как:

sstablemetadata -g 864000 mc-5-big-Data.db

см. http://cassandra.apache.org/doc/latest/tools/sstable/sstablemetadata.html для получения информации о выходе инструментов.

С коллекциями - это просто надгробная плита нормального диапазона со всеми вытекающими отсюда последствиями. Они используются для предотвращения требования чтения перед записью при перезаписи значения многоэлементной коллекции.

...