Мы развернули глобальный кластер Apache Cassandra (узел: 12, RF: 3, версия: 3.11.2) в нашей производственной среде. Мы сталкиваемся с проблемой, когда при выполнении основного сжатия на семействе столбцов не удается очистить надгробия от одного узла (из 3-х реплик), даже если информация метаданных показывает минимальную временную метку, переданную gc_grace_seconds, установленную в таблице.
gc_grace_seconds в нашем случае настроено на 24 часа, и мы используем жнец Кассандры для ежедневного выполнения ремонта
Вот вывод метаданных
SSTable: /var/lib/cassandra/data/ext_prod_live/orderbook-f62faf60ea9f11e8a11b8b364fe2bd8e/mc-107279-big
Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
Bloom Filter FP chance: 0.010000
Minimum timestamp: 1
Maximum timestamp: 9223372036854775806
SSTable min local deletion time: 1571275705
SSTable max local deletion time: 2147483647
Compressor: org.apache.cassandra.io.compress.LZ4Compressor
Compression ratio: 0.8909264165378118
TTL min: 0
TTL max: 0
First token: -9129626507204348503 (key=eba07e24-22e7-47c8-8fbc-0d5fe1d2697e:::)
Last token: 9149534094459455454 (key=:::113051)
minClustringValues: [00000185-60f0-40d3-b2e7-685fe98d3092]
maxClustringValues: [ffffffa4-d587-42a0-b823-1f85c5b2fda2]
Estimated droppable tombstones: 1655.1591194968553
SSTable Level: 0
Repaired at: 0
Replay positions covered: {CommitLogPosition(segmentId=1572916169060, position=7925234)=CommitLogPosition(segmentId=1572916169153, position=33055135), CommitLogPosition(segmentId=1573030263323, position=2641)=CommitLogPosition(segmentId=1573030263323, position=29638581)}
totalColumnsSet: 0
totalRows: 7310810
Estimated tombstone drop times:
1571279232: 16007
1571294658: 49315
1571316768: 63927
1571330690: 30250
1571342661: 19729
1571358352: 41458
1571376994: 46341
1571388040: 29977
1571399142: 31774
1571413673: 32900
1571425987: 24367
1571437039: 21833
1571448121: 28236
1571463237: 34407
1571483764: 76384
1571500656: 31372
1571515360: 37188
1571534830: 57797
1571547910: 14024
1571560644: 33784
1571578390: 40526
1571596555: 72176
1571614969: 24090
1571626472: 19290
1571639156: 25639
1571651251: 16487
1571702335: 97756
1571722903: 11613
1571737281: 104564
1571756094: 33334
1571773265: 26724
1571788300: 71864
1571804580: 48105
1571819319: 20760
1571834858: 51353
1571887110: 2
1571902004: 35935
1571914643: 21540
1571928679: 58554
1571943265: 29817
1571965437: 49963
1571985795: 29432
1572005432: 73214
1572024784: 164245
1572051210: 192853
1572063678: 10809
1572079249: 23840
1572099564: 18297
1572119291: 15219
1572150482: 6122
1572162096: 5735
1572176350: 13936
1572192674: 28445
1572214277: 22873
1572233923: 62995
1572245934: 78364
1572263438: 115426
1572283139: 73760
1572295136: 29522
1572307486: 57999
1572323305: 69230
1572335170: 41929
1572348075: 45177
1572360563: 51463
1572376877: 85990
1572395279: 77881
1572409706: 73262
1572428847: 64650
1572443195: 55750
1572459376: 75768
1572482337: 49324
1572497728: 43481
1572517633: 103112
1572533749: 97511
1572552596: 75637
1572568073: 49163
1572583594: 42120
1572603854: 81519
1572620523: 103660
1572634600: 55034
1572650195: 67589
1572666515: 29914
1572682655: 23897
1572699352: 78245
1572717699: 78218
1572735591: 27729
1572754646: 45169
1572775294: 59923
1572790517: 48763
1572813446: 76105
1572834091: 30929
1572862814: 66372
1572883180: 72424
1572902677: 83608
1572922708: 48884
1572942396: 84825
1572963194: 122170
1572981782: 94048
1573003604: 70617
1573022710: 108068
Count Row Size Cell Count
1 0 3180
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0
8 0 0
10 0 0
12 0 0
14 0 0
17 0 0
20 0 0
24 0 0
29 0 0
35 0 0
42 0 0
50 0 0
60 134 0
72 46 0
86 67 0
103 2324 0
124 45 0
149 34 0
179 43 0
215 38 0
258 39 0
310 31 0
372 36 0
446 24 0
535 24 0
642 33 0
770 28 0
924 20 0
1109 25 0
1331 17 0
1597 10 0
1916 13 0
2299 16 0
2759 19 0
3311 16 0
3973 11 0
4768 11 0
5722 6 0
6866 7 0
8239 11 0
9887 5 0
11864 5 0
14237 3 0
17084 5 0
20501 6 0
24601 1 0
29521 2 0
35425 1 0
42510 2 0
51012 2 0
61214 2 0
73457 2 0
88148 2 0
105778 2 0
126934 3 0
152321 0 0
182785 0 0
219342 1 0
263210 0 0
315852 2 0
379022 2 0
454826 0 0
545791 0 0
654949 0 0
785939 0 0
943127 0 0
1131752 0 0
1358102 1 0
1629722 0 0
1955666 1 0
2346799 0 0
2816159 0 0
3379391 0 0
4055269 0 0
4866323 0 0
5839588 0 0
7007506 0 0
8409007 0 0
10090808 0 0
12108970 0 0
14530764 0 0
17436917 0 0
20924300 0 0
25109160 0 0
30130992 0 0
36157190 0 0
43388628 1 0
52066354 0 0
62479625 0 0
74975550 0 0
89970660 0 0
107964792 0 0
129557750 0 0
155469300 0 0
186563160 1 0
223875792 0 0
268650950 0 0
322381140 0 0
386857368 0 0
464228842 0 0
557074610 0 0
668489532 0 0
802187438 0 0
962624926 0 0
1155149911 0 0
1386179893 0 0
1663415872 0 0
1996099046 0 0
2395318855 0 0
2874382626 0
3449259151 0
4139110981 0
4966933177 0
5960319812 0
7152383774 0
8582860529 0
10299432635 0
12359319162 0
14831182994 0
17797419593 0
21356903512 0
25628284214 0
30753941057 0
36904729268 0
44285675122 0
53142810146 0
63771372175 0
76525646610 0
91830775932 0
110196931118 0
132236317342 0
158683580810 0
190420296972 0
228504356366 0
274205227639 0
329046273167 0
394855527800 0
473826633360 0
568591960032 0
682310352038 0
818772422446 0
982526906935 0
1179032288322 0
1414838745986 0
Estimated cardinality: 3180
EncodingStats minTTL: 0
EncodingStats minLocalDeletionTime: 1571275705
EncodingStats minTimestamp: 1
KeyType: org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type)
ClusteringTypes: [org.apache.cassandra.db.marshal.UUIDType]
StaticColumns: {}
RegularColumns: {}
Я попытался запустить дамп sstableна одном из разделов, и я вижу записи с отмеченными записями, датированными до октября 2019 года. Вот фрагмент из sstable dump
{
"type" : "row",
"position" : 43219878,
"clustering" : [ "00001812-1c6c-4b8b-a6d5-f84c2054225d" ],
"deletion_info" : { "marked_deleted" : "2019-10-22T23:15:39.625600Z", "local_delete_time" : "2019-10-22T23:15:39Z" },
"cells" : [ ]
},
{
"type" : "row",
"position" : 43219909,
"clustering" : [ "00001d0c-860b-4027-9d10-d4971d90a586" ],
"deletion_info" : { "marked_deleted" : "2019-10-17T07:28:40.153518Z", "local_delete_time" : "2019-10-17T07:28:40Z" },
"cells" : [ ]
},
{
"type" : "row",
"position" : 43219940,
"clustering" : [ "00002002-65f9-45b5-9cee-3858daf43217" ],
"deletion_info" : { "marked_deleted" : "2019-10-31T11:43:09.834084Z", "local_delete_time" : "2019-10-31T11:43:09Z" },
"cells" : [ ]
},
{
"type" : "row",
"position" : 43219971,
"clustering" : [ "000020aa-01e3-457e-834e-ad9cdd544d22" ],
"deletion_info" : { "marked_deleted" : "2019-10-18T23:40:36.123962Z", "local_delete_time" : "2019-10-18T23:40:36Z" },
"cells" : [ ]
},
До сих пор мы пробовали 1) ручное сжатие 2) ручное сжатие с более низкимgc_grace_seconds (<1 час) 3) сборщик мусора nodetool 4) очистка утилиты nodetool (для восстановления и выселения старых надгробий) </p>
Ничего из вышеперечисленного не помогло
Вот стратегия сжатия, используемая для таблицы {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
Мы не понимаем, почему надгробия не выселяются. Может кто-нибудь помочь нам понять, почему надгробные плиты не очищаются для стола? Как мы можем принудительно очистить эти просроченные надгробия?