73 Collaborator |
Brandon Williams , Sylvain Lebresne , Aleksey Yeschenko , Mick Semb Wever , Marcus Eriksson , Tyler Hobbs , Benedict Elliott Smith , Sam Tunnicliffe , Yuki Morishita , Benjamin Lerer , Jake Luciani , Štefan Miklošovič , Pavel Yaskevich , Stefania Alborghetti , Alex Petrov , Berenguer Blasi , Ekaterina Dimitrova , Josh McKenzie , Andrés de la Peña , Robert Stupp , Jason Brown , Caleb Rackliffe , Ariel Weisberg , Carl Yeksigian , Jeff Jirsa , Stefan Podkowinski , Eric Ramirez , Jacek Lewandowski , Zhao Yang , Joel Knighton , Sankalp Kohli , Aleksei Zotov , Maxim Muzafarov , Mike Adamson , Lorina Poland , Dikang Gu , Alex Sorokoumov , C. Scott Andreas , Diogenese Topper , Jeremiah Jordan , Maxwell Guo , Aleksandr Sorokoumov , Chris Thornett , Claude Warren , Vincent White , Tommy Stendahl , Lerh Chuan Low , Jason Rutherglen , Jakub Zytka , Dmitry Konstantinov , Dimitar Dimitrov , Cameron Zemek , Piotr Kolaczkowski , Jaroslaw Grabowski , by , Stephen Mallette , Ruslan Fomkin , Rei Odaira , Ethan Brown , Marianne Lyne Manaog , Ropert Stupp , Piotr Jastrzebski , zyang , haaawk , dikanggu , Stefania Alborghetti reviewed by Alex Sorokoumov , ReiOdaira , Michael J Marshall , Gil Tene , Calib Rackliffe , Amit Pawar , @jacek-lewandowski , @blambov |
117 Patch |
128 Review |
54e46880690bd5effb31116986292c1bdc9e891e,
3078aea1cfc70092a185bab8ac5dc8a35627330f,
377e6aa04fb67ea4220445988e85c9ebacb06db4,
389479c9a22baf8914d4ba63896ce464e7e9ef62,
06558a8f56c8bbb98c276cce83599aae1a50adfc,
06ed1afc34128523298020e7601dad148f2b2fb6,
93a4fcd32c2b58a116498ac9eb31752bf07bae71,
9f187fafbd47a62be80cae21796178641b5b3627,
a565711056c859398d0b26081b46e71d2076de1d,
957eca2fb53477d56bdc9a97c612f1fbecfb5d41,
e9198d6a660c96c21fe1c5bf0bbf19fbfc619189,
fad1f7457032544ab6a7b40c5d38ecb8b25899bb,
f16fb6765b8a3ff8f49accf61c908791520c0d6e,
24ebd24c79175f7426f4c489dc5a006e75f09dfb,
9f58d76f3841864be11f5b9c4534027451328569,
e08c7a6295eed716e9973fbd809dfca32d68a3e8,
9074ee7ef8e041e1b15116373be0df80b985e3d9,
7c55c73825e341315e520381968338d57afbb67a,
562cb26010659830dd1192939ac815a0f6cb3502,
30641ea7b6b8253651562aeb0102778a0f9a405b,
49e0c61107005b1a83799f7f1e6c0a855d159c29,
e966c45afcf8bef47df245ccb851386e5ce60505,
e4e19e33faf9ac7cf27a9779c8083a7f5c5b865a,
35dbcc2c2dbe1c826fd6ecd6e8357f0f5a9bab02,
661f1aab171dc3ef16075f69581e88ad4a133fae,
9a7db292cc4e470cd913f5c850982a7d7300d6c8,
a03424ef95559c9df2bb7f86e1ac1edca1436058,
49adbe7e0f0c8a83f3b843b65612528498b5c9a5,
c4982587bfe3cb6946daa2912fe46146edef7fbf,
17a358c2cc2c583c3e0fa046ca8dee6d743ad1c5,
81b8895151742668ff5035960612d8c4325a1761,
b953f9eb2a3a1ba992fbb561b1e35531607739f3,
f97db26f8e9989d2294cccbea8a06589253313f2,
237e14dd99cf3975d54cb1e41126c40bc183f3b4,
d2ba715f2456e1aa821c01941f90b6a58f54e6c4,
ad4a91da788d58a3d473e8e5e05caeb9339443f4,
262f1673d7b62e7578c14b9399e32285cd14aee9,
ca556c442049808c013bd20649d6611eb4a01a61,
5cef78af9214308ef817de43ec36054a2549329c,
cee22ad54d7c28aaf0868dd45aeb9b5b708b0e78,
904cb5d10e0de1a6ca89249be8c257ed38a80ef0,
bd6654733dded3513c2c7acf96df2c364b0c043e,
d40ac784d3a8ddaf71a2df8b21745827392294cc,
a5cbb026195ace450a514db22a64dc9c7c8fa66e,
e8907c16abcd84021a39cdaac79b609fcc64a43c,
3c1653f479faddf000fd818b7c578810c644ae02,
408066c57a66e0d5a6691af1695742ef49786bf2,
ac53b720bd53641eb178a0a26f84df85108dfe7c,
66c8f2b7f79fe794cc1e0594d9add260c209a9a2,
2837ec65b91abd78ec1bb37f1d69565b976e42e6,
31cab36b1800f2042623633445d8be944217d5a2,
30bb255ec9fb36ace2aab51474bd3bfb9bbd3bed,
2cc26eba7a742eb23e95b027bc611c924c233e1e,
f3b3c410a0d84a4348cf05954b38df6b087762a7,
6f067af5157be9ed8df566d0a5df042c694215e2,
6a8c747c65833674057044f07c39418c5fe6302f,
f6af142f1e8e9fa86f88b8c3c8bcb9a7294ef0cc,
fe37e0644ccb831dda0a7d11a31b02e0ad8232fa,
b2f38ef177b5c19288f96d9bfe5304ec94391f73,
9b0adf229483980dead0d1d834c3da2fb5a259e0,
2954b18354b0b3952e40276013852f31c61bb6ff,
8f8801515def9eb74dbc220a67263f29189020a2,
3c6dfa4aa0b9ffb0a48a02b949bff2a8406764e6,
cee35e42d05f125bf274b9cefb7653c21ca4b676,
71bac92cf1df08de194a8283f382a7950b3a78ed,
1e978df3a80a8201ce95253e3fd822fd804993d7,
0b26ca68747cdecb907d7c238e04b39836efe3d1,
c000da13563907b99fe220a7c8bde3c1dec74ad5,
1492be07cdf12afbba662645365cb991f223443d,
a61fc01f418426847e3aad133127da3615813236,
127f7c5844f938649de0f3a5dec630b3c5cda256,
e77730179c96593e97750f272a2da2491a11c388,
a29d206532a44f99457af9ddd81d2bc3ed65e63e,
01a11fd2626d57bf0c8d0bce1e43060017592896,
8afc76ae63cd97fb7188653b6e58e4b2149f5d77,
7a85c8b8fbf753858c4334c4249475e6bb1a24e4,
d12d2d496540c698f30e9b528b66e8f6636842d3,
fce8478ff43232d7e3623e457b1252f9700b451d,
f8f6fd2d7e51be7d0450d3a264136d1d93454203,
50e5802a7d7151d9fb1339aa3cdd2b9e1c261712,
762db474273f764b189d3613fce33943cd64701b,
64e93a76d8065e2cadeffbc04d28c995dcc9bc0c,
6aa7d6ce89f155b72111bffce54e9bee66080b03,
69f77cbddd4c74448f227e9aceef84d345118184,
5f4cc45cdb9c4da3bd78c1714738dd39b4768ace,
fb34b7950483abc5a15c09e802852183699c0ecb,
c29001b94df769fe428f414c042daffbb6dd209d,
7813dee0cf7f9aa8107aba92b40b7caee79f3528,
ee6fb19eebd03fb0da019fd7b28574a920e60ad4,
a384faaa8aa2c5f0f313011a30ef64e7e795ab1e,
9a3fa887cfa03c082f249d1d4003d87c14ba5d24,
675a0f4713f3b25edcb6b8108ed4dc879fa0ec53,
f9c998cbc33c1cdbd65c1b57a1e3fba6c38a17a5,
3adfd1575cc3cf81397a7d148d5b2ed768b67014,
36958f3cab74c9b7baca94b5e7d31de0cbd42d40,
09ccf60ed3372cc8378fb2f788b97e826a21d7e1,
f43efaa1bdeec1057a8097fdb5ab62b4c9c19e67,
1f6bf3651a76f0ae2c61ee7fd994573f249e78d5,
7f161667dfd7f12190442adf7b010111e0a42cd6,
8a03181dd58c02f4297f4918c7fdc80da5f63fb3,
44f8254df850f17d0c9c940d69af7a2305beb4b0,
69542a99c670bd5619e3b3c271512635dc7f9b76,
18d8f26ddd556d6b689a7460053c1518a86d7288,
806facc8ca87a8d1f6fa14056c68ac43dc5bde5c,
3dd9c38a14ae593591d46279e2f99a032288bd65,
07893d704598f7cbbc316c9a65a8c415e5404dfa,
6eef6f7856d1fe1bebb923362d730b9ef3c4bb6c,
ad84e4d7ee02f2ae5f45d5d5d2cb50c6b10f3836,
e916dff8ba032d878ad4435eb7175c6a56f79ef4,
b3c4d981d465f59de601425689015bcb323d32ad,
f41ee663f4e79d4adc5ae5e02d39b75478908115,
6bffd00ea003677a590b8d6c8dee39a548a20cb9,
bd5e29c7ca8e0d6987ba9d180d97766cb30eb0fa,
058b95289bf815495fced0ac55a78bcceceea9fa,
4ceffa99b7e1e508235f15a1480484aef0f70339,
b2650d8724d1355f95b104b7ff041b28fcedd00d,
93aef61a162c3074b284b096208c38964930baea |
d0c984fa32b81f3fe8058daf0fac2a3081775c9b,
5e4ff921afb9d8cb2deacbfd24db78ea4e2ccbe1,
38857dc0472edf84d76f353def78075e403e505f,
366ee9da6c70dce35498d944f92a8c2a2db0c234,
2842c01ce7eaeb6e72a63435075cc282a1cdd2db,
c56ba3b317e67f4530db1737169f5558969bd531,
a84698753344e767145a38fe5b68722caa9b1254,
5ab976d796471a1ecdf3596a148a3e4b8c1a982e,
2f836fa59687d79705c96d5836978c9266813780,
d422eb1f353d27264665bfe3357dac1160814ea1,
e6ffd8b4f7ef194446ba0a968e463ca0cd710867,
3259bea5332ed7d28fac8709c854adfee596dda5,
9c6e671434b6b44c8969dbc965fedbdcf21be340,
b7b2aa5de57a6433f3f861bcaefe467d64784d1b,
fb806d51e3f5f52bebf9e16e0aad3f98932d962b,
9dbd63a5b9aa2f2398b02ee5c72d8e977f56867d,
b59b832eba014e8d2fc93133cb3db41b509a1c26,
cb1f1399b139029e5b1c12a4bf65d19a55724933,
d16e8d3653dce8ed767a040c06dbaabc47a9b474,
3658ba58c7d0be0803cbd7480c73d46705c3372d,
87c2af85c1305c130af7d66f83dec03a1c4a8bb2,
a9d1712aec0f26bb48bb6d084dc40121a296a2e0,
028ea02a4a877d115c748d3e179c6afb2328e430,
cc3e742c735daddc29d2fb90aac638c641463d39,
b7e1e44a909c3a1d11e9c387db680c74d31b879f,
24ebd24c79175f7426f4c489dc5a006e75f09dfb,
3f83396b76115a25b8189410c68775f87f31f8ac,
3775c8f11dc998ba9c74769a14b9443272c750c6,
acda6fad688e95e0a9a34de28e3b61a775e59736,
c378874a9fa123891d1d75177d99dba5c4d18f9b,
596daeb7f08e14d69af90fd4f07b9e87f2816681,
018c8e0d5e8bc55fc51d3361fcb27c3c1fd189f6,
9808a4d8ed9c4319dac79dd1f13e2328e64b0a20,
a690f339ab0f2b98c69621ca5a0bad10ae9a7919,
cede538e029e14dc6298025794c72cc100118953,
3e6faca572a5ca1de5906b39b8c0a6bf4deb40e9,
87424dabd20acfdbb9a4489f289ec075ccfb87b0,
3875fd26ea3c16e57bf08454d570e3359d2ce5fc,
d84c6e98106e7b0c205f019ee24d416d0bb65f37,
661f1aab171dc3ef16075f69581e88ad4a133fae,
3f73c16d50a80c574dd004c59bfaa6042dcd5781,
0d99470f154a86c74665fed5f33a65ef146c4c31,
068d2d37c6fbdb60546821c4d408a84161fd1cb6,
8b1a6247ec5aabad92a664ff2cbf6d6529d8ceb7,
34a1d5da58fb8edcad39633084541bb4162f5ede,
88a41fb826d68c56e60f88ea4c00c1b92a653e28,
0493545dd08d29c34d757bb2f1d90052d03d24c6,
e9da85723a8dd40872c4bca087a03b655bd2cacb,
5e57dd14eb37adf06d2105227e0105d871ea6f76,
451fe9d8ac567942f62852f542d28d7d1116f1a1,
a85eeefe88eb036a9cd9fa85a1c8c31c2bfad78a,
f53e502c3c484481a296d9fdbff5fde4b709a9fc,
beb9658dd5e18e3a6a4e8431b6549ae4c33365a9,
31dec3d548ae2c76d7c8bf4bffa9d506f670f756,
ab7174849599c62f4bef3cb719c644bae13e9321,
67cda763b270a56bf5a7c73c6b30c3f9d651daab,
249e4b195de0d5351c4bfdd600bcd74b4fa085a5,
83ba3b7f37b1f1931879d3724b8aef4eb4a1da76,
0ecef31548c287ac2d9f818413457bc947362733,
6f90e55e7e23cbe814a3232c8d1ec67f2ff2a537,
0e357991b27645fd760823b98e46a96b85f9c020,
8cb9693a6b334498ca7edd42e4a934c11b581f2c,
f00e43167ab11f58af20439a300bdf82664abdb0,
7d2fdfeb41eca9badaf10b906b6afe077d166348,
4fd05e5b5caa8403a1e3ba1318d5eed817c24ba9,
ec64cdf4c6b731a00bea8795247d865d6371157f,
079029a44290f78121e3577da60cec93a8ca9f10,
e2a0d75b024463ad481333bdae826928b55ac589,
e6d22da9186bdf61facbb8c426ea5bf1e59d947d,
c6ec31bada33b9b803d09a863414ea9cad72752e,
04cc3a9309fdc4a8c9ae33ed00d2b681a6bb117a,
7872318d63009193415ba1365beedc2303a92386,
85ac06c640ad82c1a776f591a752cc8691062018,
c2106e1451e71b43d84b9938e9f2f1c1def8a7b8,
c1a9a47df292dbbde3c675c10d68043e7b212c28,
4878852fe4aae3516c21fdeafac5c5746a93c31f,
cee22ad54d7c28aaf0868dd45aeb9b5b708b0e78,
ffdf6c79c8644877cd35dc642e151486ed165a1d,
54836ec0c5f41fed53c1010acb27f311e615a7f3,
3f9b9ffe6b83987f7a1feb9a1d269e0f7c112161,
ed9014818cb747ab9d3899d0d5bc5305feb388ee,
1f74142d756b3201acf0fe684943c972e7471782,
44e475c1a7aa351763fa5bd97664394186565b41,
452d626a7a6b03917b7bd72a5dfe9da8a27e0903,
8d5b7b6288a4f558e0847165d0d98332481ca4ce,
e31e216234c6b57a531cae607e0355666007deb2,
6c445d6b7f3c8933a0bfd599ba8455b7254a323d,
81ffc4601952ff3a9fec8493cd27fe52544ea115,
6add3c9acc063005198510e9627ae9e783e54e91,
849a438690aa97a361227781108cc90355dcbcd9,
ac9844b99decbcda5ed279203884154011cda618,
67637d1bbaf638162b479ed33a75e4ab3fb06e49,
1b201e959a6f77aeedd2549ed523200021d8c6e6,
9c1679d1bd83d1d25fda6dbf29d1738d8e966da5,
23123f04fd5e5381742b2bae16bb3e03225598c3,
812df9e8bc3cb98258a70a4b34cd6e289ff95e27,
6ff1cbb3ee1b7e6f261aeb454854dd249ab605df,
8bc567b3ca40199f6d4a7b6f32971f2fea56a6b9,
3740f815c21254bd625ad1cbe8d47aa657727a83,
1c62850c9e49e318eab70ab0c59b05bfea3f37ca,
99617a529378f00cb86ab733959c7be9966860c9,
4a00438a27cfa5bcd29cdcd9b30eb6d69e836a1f,
f901a74c88078b772e26791ba987c2545ea14b52,
609497471441273367013c09a1e0e1c990726ec7,
1fe594d834bb3f8fa72db6a5d38ba5372f889d1b,
2d991a7e4cc73b522f2c8adf14b5ff37a7947427,
40f4daa36769d4aba4f1d7aa291546b44cad8f77,
aef71696e6f19d2569d310206b287f919da32b4f,
c4de752758c3cf7f5de5a92e4ede30e430a36255,
f009272ba6ffb94579a443733f5cfe25ec9606fa,
782a1c3aecffb8674338fbd9ceeb56a357ecc3f2,
ace28c9283358da75538c4e2250f8437efb7168f,
639d4b240c084900b6589222a0984babfc1890b1,
5250d7ffd2df9e75219ce5a544ae0209ba3446a4,
2595e74f68a019f116d2dabaf1febc95d1ca5d38,
7813dee0cf7f9aa8107aba92b40b7caee79f3528,
774bd0bceeee56abd97a122c563852210cf54bbc,
d9fcb397478aa1a2bf8c03a551c0ea65de83a33c,
3510bdb503c2a9d97cb12fd7d9e1a01fd91fa879,
2d7909dc12dc038a65742ca03d375140c5257158,
52ddfe412a3adf361ecbc4f3919958c5f801f450,
21bdf8700601f8150e8c13e0b4f71e061822c802,
3c3fefa04f027a1ecbede1d41c1bf3df25218a5d,
895ec3ea1e68b74ee025317f57a09c1ef0b512dd,
cdba5aac9b0166bef0474e5cf8aced010762992a,
44596eec78f7ac796684312a616b77be4e7175dd,
02307b1ea883e01f79723bfdfde223c7110df128,
17f67484f4597e223a669dda4d52fb2cc2250ddf |
3078aea1cfc70092a185bab8ac5dc8a35627330f | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2024-11-19 12:41:41+02:00
Introduce SSTableSimpleScanner for compaction
This removes the usage of index files during compaction and simplifies
and improves the performance of compaction.
patch by Branimir Lambov; reviewed by Sylvain Lebresne for CASSANDRA-20092
d0c984fa32b81f3fe8058daf0fac2a3081775c9b | Author: Dmitry Konstantinov <netudima@gmail.com>
| 2024-11-12 14:11:27+00:00
Change the resolution of AbstractCommitLogService#lastSyncedAt to nanos to be aligned with later comparisons
patch by Dmitry Konstantinov; reviewed by Branimir Lambov, Stefan Miklosovic for CASSANDRA-20074
377e6aa04fb67ea4220445988e85c9ebacb06db4 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2024-09-25 14:28:55+03:00
Reverse cursor and iteration support for in-memory tries
patch by Branimir Lambov; reviewed by Ariel Weisberg for CASSANDRA-19945
Co-authored-by: Michael J Marshall <mmarshall@apache.org>
c56ba3b317e67f4530db1737169f5558969bd531 | Author: Dmitry Konstantinov <netudima@gmail.com>
| 2024-08-27 21:21:07+01:00
Improve accuracy of memtable heap usage tracking
Fix estimateRowOverhead in Memtable: ByteBuffer in Partition key was not counted
Fix non-counted size of "columns" field in Columns.unsharedHeapSize
BTree.sizeOfStructureOnHeap wrongly reported a non-zero size for EMPTY_LEAF shared constant value
Fix MemtableSizeTest flakeness by not measuring of allocator and ColumnFamilyStore/Keyspace
Patch by Dmitry Konstantinov; reviewed by Branimir Lambov, Stefan Miklosovic for CASSANDRA-17298
a84698753344e767145a38fe5b68722caa9b1254 | Author: Maxwell Guo <cclive1601@gmail.com>
| 2024-08-14 17:10:25+08:00
Throw ConfigurationException when commitlog_disk_access_mode is direct but direct IO is not supported by filesystem
patch by Maxwell Guo; reviewed by Branimir Lambov, Stefan Miklosovic for CASSANDRA-19812
5ab976d796471a1ecdf3596a148a3e4b8c1a982e | Author: Stefan Miklosovic <smiklosovic@apache.org>
| 2024-07-18 15:14:53+02:00
Fix direct IO support always being evaluated to false upon the first start of a node
patch by Stefan Miklosovic; reviewed by Branimir Lambov, Maxwell Guo for CASSANDRA-19779
389479c9a22baf8914d4ba63896ce464e7e9ef62 | Author: Brandon Williams <brandonwilliams@apache.org>
| 2024-03-20 11:21:05-05:00
Align buffer with commitlog segment size
Patch by brandonwilliams and blambov; reviewed by bereng for
CASSANDRA-19471
2f836fa59687d79705c96d5836978c9266813780 | Author: Stefan Miklosovic <smiklosovic@apache.org>
| 2024-03-08 11:32:40+01:00
Set uuid_sstable_identifiers_enabled to true for cassandra-latest.yaml
patch by Stefan Miklosovic; reviewed by Branimir Lambov, Jacek Lewandowski for CASSANDRA-19460
06558a8f56c8bbb98c276cce83599aae1a50adfc | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2024-03-07 14:55:58+02:00
Test fixes for CASSANDRA-18753
Additional fix for NPE when initializing CFS (CASSANDRA-19169)
Change BounceIndexRebuildTest to work with SAI as default index
patch by Branimir Lambov; reviewed by Sam Tunnicliffe for CASSANDRA-18753
d422eb1f353d27264665bfe3357dac1160814ea1 | Author: Jacek Lewandowski <lewandowski.jacek@gmail.com>
| 2023-12-08 10:41:50+01:00
Fix storage_compatibility_mode for streaming
- Rename and refactor a bit property for overriding storage compatibility mode
- Fix streaming for tools
- consider bulkloader as a client instead of tool
Patch by Jacek Lewandowski; reviewed by Berenguer Blasi, Branimir Lambov for CASSANDRA-19126
e6ffd8b4f7ef194446ba0a968e463ca0cd710867 | Author: Claude Warren <claude.warren@aiven.io>
| 2023-12-06 12:36:43+01:00
UCS min_sstable_size should not be lower than target_sstable_size lower bound
patch by Claude Warren; reviewed by Ethan Brown, Branimir Lambov and Stefan Miklosovic for CASSANDRA-19112
9c6e671434b6b44c8969dbc965fedbdcf21be340 | Author: Ethan Brown <ethan.brown@datastax.com>
| 2023-11-23 16:18:18+01:00
Fixed bug where UnifiedCompactionTask constructor was calling the wrong base constructor of CompactionTask
patch by Ethan Brown; reviewed by Branimir Lambov, Stefan Miklosovic for CASSANDRA-18757
06ed1afc34128523298020e7601dad148f2b2fb6 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2023-11-14 14:30:51+02:00
Add an optimized default configuration to tests and make it available for new users
This patch adds a new configuration file, cassandra_latest.yaml, which changes
some of the settings to use new features we usually recommend to users,
including:
- Big Trie-Indexed SSTables
- Trie memtables
- Unified Compaction Strategy
- Storage Attached Index
- Off-heap objects memtables
- Direct-write commit log
- No storage compatibility
These changes are applied in new test targets for unit, in-jvm and python dtests that are
run pre-commit. When changes are made to the new config file, python dtest will use it
directly, but unit and in-jvm dtests require updates, respectively, to latest_diff.yaml
and InstanceConfig.java.
patch by Branimir Lambov; reviewed by Berenguer Blasi for CASSANDRA-18753
93a4fcd32c2b58a116498ac9eb31752bf07bae71 | Author: Lorina Poland <lorina@datastax.com>
| 2023-11-06 13:51:18-08:00
Rewrite compaction documentation, adding UCS
Adds some SAI/Vector doc fixes too.
patch by Lorina Poland, Branimir Lambov; reviewed by Mick Semb Wever for CASSANDRA-18232
b59b832eba014e8d2fc93133cb3db41b509a1c26 | Author: Stefan Miklosovic <smiklosovic@apache.org>
| 2023-10-26 12:21:44+02:00
Remove crc_check_chance from CompressionParams
patch by Stefan Miklosovic; reviewed by Maxwell Guo, Jacek Lewandowski, Branimir Lambov for CASSANDRA-18872
3259bea5332ed7d28fac8709c854adfee596dda5 | Author: Amit Pawar <Amit.Pawar@amd.com>
| 2023-10-06 01:23:37+05:30
Enable Direct-IO feature for CommitLog files using Java native API's.
Patch by Amit Pawar and Jacek Lewandowski; reviewed by Branimir Lambov and Maxwell Guo for CASSANDRA-18464
Co-authored-by: Amit Pawar <Amit.Pawar@amd.com>
Co-authored-by: Jacek Lewandowski <lewandowski.jacek@gmail.com>
9dbd63a5b9aa2f2398b02ee5c72d8e977f56867d | Author: Jacek Lewandowski <lewandowski.jacek@gmail.com>
| 2023-10-05 09:09:07+02:00
Fix KeyCacheTest for cases when early open is disabled
Patch by Jacek Lewandowski; reviewed by Berenguer Blasi, Branimir Lambov, Caleb Rackliffe for CASSANDRA-18911
3658ba58c7d0be0803cbd7480c73d46705c3372d | Author: Jacek Lewandowski <lewandowski.jacek@gmail.com>
| 2023-09-20 11:44:41+02:00
JMH improvements - faster build and async profiler
- Don't create uber jar for microbenchmarks
- Add async profiler to jmh tests
- Benchmark classes names validation
- Add jmh.args property to make it possible passing extra args to JMH
- Add missing test/anttasks to idea configuration
Patch by Jacek Lewandowski; reviewed by Branimir Lambov, Maxim Muzafarov, Stefan Miklosovic for CASSANDRA-18871
d16e8d3653dce8ed767a040c06dbaabc47a9b474 | Author: Jacek Lewandowski <lewandowski.jacek@gmail.com>
| 2023-09-18 12:44:08+02:00
Do not create sstable files before registering in txn
Refactoring prevents the situation where some sstable components, like
data or index, are created before the new sstable is registered with
lifecycle transaction, which leads to a problem such that there is
a short time when incomplete sstable components are present. At the same
time, no transaction file is created, which leads to the possibility
that the sstable can be recognized as completed by various
transaction-aware listers.
Patch by Jacek Lewandowski; reviewed by Branimir Lambov, Mike Adamson for CASSANDRA-18737
cb1f1399b139029e5b1c12a4bf65d19a55724933 | Author: Cameron Zemek <cameron@instaclustr.com>
| 2023-09-13 14:41:50+10:00
Improve performance of compactions when table does not have an index
patch by Cameron Zemek; reviewed by Branimir Lambov, Stefan Miklosovic for CASSANDRA-18773
87c2af85c1305c130af7d66f83dec03a1c4a8bb2 | Author: Ethan Brown <ethan.brown@datastax.com>
| 2023-08-18 13:02:15-07:00
Fix delayed SSTable release with unsafe_aggressive_sstable_expiration
patch by Ethan Brown; reviewed by Branimir Lambov and Mick Semb Wever for CASSANDRA-18756
9f187fafbd47a62be80cae21796178641b5b3627 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2023-08-09 11:40:04+03:00
Revert checks for negative timestamp
Contrary to expectations, we do permit negative timestamps.
This reverts checks that treat such timestamps as corruption
introduced in CASSANDRA-18676.
patch by Branimir Lambov; reviewed by Ekaterina Dimitrova for CASSANDRA-18735
a565711056c859398d0b26081b46e71d2076de1d | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2023-07-24 12:23:27+03:00
Fix data corruption handling issues
Treat AssertionError as corruption, assert positive deletion timestamps and
TTLs and treat localDeletionTime < TTL as invalid.
patch by Branimir Lambov; reviewed by Berenguer Blasi for CASSANDRA-18676
fad1f7457032544ab6a7b40c5d38ecb8b25899bb | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2023-04-21 11:52:10+03:00
Rename the byte-comparable translation version to OSS50
Also fix some minor issues in ByteComparable.md
patch by Branimir Lambov and Jacek Lewandowski; reviewed by Caleb Rackliffe and Maxwell Guo for CASSANDRA-18398
b7e1e44a909c3a1d11e9c387db680c74d31b879f | Author: Jacek Lewandowski <lewandowski.jacek@gmail.com>
| 2023-03-02 12:46:25+01:00
SSTable format API
Summary of the changes:
Format, reader and writer
---------------------------
There are a lot of refactorings around sstable related classes aiming to extract the most generic functionality to the top-level entities and push down implementation-specific stuff to the actual implementation. In Particular, the top-level, implementation agnostic classes/interfaces are SSTableFormat interface, SSTable, SSTableReader, SSTableWriter, IVerifier, and IScrubber. The rest of the codebase has been reviewed for explicit usages of big table format-specific usages of sstable classes and refactored. SSTable, SSTableReader, and SSTableWriter have their builders. Builders make a hierarchy that follows the same inheritance structure as readers and writers.
There are also partial implementations that add support for some features and may or may not be used by the custom implementations. They include:
- AbstractSSTableFormat - adds an implementation of some initialization methods - in practice, all of the format implementations should extend this class
- SSTableReaderWithFilter - add support for Bloom filter to the reader
- SortedTableWriter - generic implementation for a writer which writes partitions in the default order to the data file, supports Bloom filter and some index of partitions
- IndexSummarySupport - interface implemented by the readers using index summaries
- KeyCacheSupport - interface implemented by the readers using row key cache
Descriptor
---------------------------
Refactored the Descriptor class so that:
- All paths are created from the base directory File rather than from a String
- All the methods named *filename* producing full paths were made private; their current implementations are returning file names rather than paths (the naming was inconsistent)
- The usages of the `filenameFor` method were refactored to use the `fileFor` method
- The usages of the `fromFilename` method were refactored to use a `fromFileWithComponent(..., false).left` expression
In essence, the Descriptor class is no longer working on String-based paths.
Index summaries
---------------------------
Removed the index summary from the generic SSTableReader class and created an interface IndexSummarySupport to be implemented by the readers that need it. Methods in related classes that refer back to the reader were refactored to support just readers of the SSTableReader & IndexSummarySupport type. Therefore, we will no longer need to assume that the generic SSTableReader has anything to do with an index summary.
A new IndexSummaryComponent class encloses data fields from the index summary file (note that aside from the index summary itself, the file includes the first and last partition of the sstable). The class has been extracted to deal with those fields and have that logic in a single place.
Filter
---------------------------
Refactored IFilter and its serialization - in particular, added the `serialize` method to the IFilter interface and moved loading/saving logic to a separate utility class FilterComponent.
Extracted the SSTableReaderWithFilter abstract reader extending the generic SSTableReader with filter support.
Extracted bloom filter metrics into separate entities allowing to plug them in if the implementation uses a filter.
Cache
---------------------------
Refactored CacheService to support different key-cache values. CacheService now supports arbitrary IRowIndexEntry implementation as a key-cache value. A new version of the auto-saving cache was created ("g") because some information about the type of serialized row index entry needs to be known before it is deserialized (or skipped). Therefore, the SSTableFormat type ordinal number is stored, which is sufficient because the IRowIndexEntry serializer is specific to the sstable format type.
Similarly to the IndexSummarySupport, a new KeyCacheSupport interface has to be implemented to mark the reader as supporting key-cache. It contains the default implementation of several methods the rest of the system relies on when the key-cache is supported.
Other changes
---------------------------
- Fixed disabling chunk cache - enable(boolean) method in ChunkCache does not make any sense - it makes a false impression it can disable chunk cache once enabled, while in fact, it only clears it. Added setFileCacheEnabled to DatabaseDescriptor
- Made WrappingUnfilteredRowIterator an interface
- DataInputStreamPlus extends InputStream - this makes it possible for input stream-based inheritors of DataInputPlus to extend DataInputStreamPlus. It simplifies coding because sometimes we want to get DataInputPlus implementation extending InputStream as an argument.
- Table and keyspace metrics were made pluggable - in particular, added the ability for a certain format to register gauges that are specific only to that format and make no sense for others
- Implemented mmapped region extension for compressed data
- Refactored FileHandle so that it is no longer closable
- Implemented WrappingRebufferer
- Introduced the SSTable.Owner interface to make SSTable implementation not reference higher-level entities directly. SSTable accepts passing null as the owner when there is no owner (like sometimes in offline tools) or passing a mock when needed in tests.
Individual commits
---------------------------
[4a87cd36fe] Fix disabling chunk cache
[c84c75ccf3] Made WrappingUnfilteredRowIterator an interface
[253d2b828e] Add getType to SSTableFormat
[3f169dcc20] Remove getIndexSerializer from SSTableFormat
[05bae1833b] Pull down rowIndexEntrySerializer field
[da675f2809] Moved RowIndexEntry
[673f0c5c39] Reduce usages of RowIndexEntry
[c72538be91] Refactor CacheService to support for different key cache values
[54d33ee656] Minor refactoring of ColumnIndex
[93862df967] Just moved AbstractSSTableIterator to o.a.c.io.sstable.format
[9e4566a1de] Refactored AbstractSSTableIterator
[a4e61e80bb] Extracted IScrubber and IVerifier interfaces
[20f78c7419] Push down implementation of SSTableReader.firstKeyBeyond
[f2c24e5774] Moved SSTableReader.getSampleIndexesForRanges to IndexSummary
[b6c3a6c1ea] Moved SSTableReader.getKeySamples implementation to IndexSummary
[c4b90ebb33] Refactor InstanceTidier so that it is more generic
[918d5a9e74] Refactor dropping page cache
[a52fb4d558] Refactor sstable metrics
[f6d10f930f] NEW (fix up) - DataInputStreamPlus extends InputStream
[8f6a56d972] Getting rid of index summary in SSTableReader
[4a918bf725] Removed direct usages of primary index from SSTableReader
[358fa32602] Refactor KeyIterator so that it is sstable format agnostic
[14c09d89c2] Remove explicit usage of Components outside of format specific classes
[feff14e137] Move clone methods implementation from SSTableReader to BigTableReader
[64e9787b10] Move saveIndexSummary and saveBloomFilter to SSTableReaderBuilder
[ae71fe6ed8] Moved indexSummary field to BigTableReader and made it private
[df9fd8c4b9] Moved ifile field to BigTableReader and made it private
[2be6ea9ecf] Moved static open methods for BigTableReader to the reader factory
[bc0e55ac48] Minor refactoring around IFilter and its serialization
[5b95704beb] Minor refactorings around IndexSummary
[87812335e8] Extracted TOCComponent class to deal with TOC file
[fdad092a6a] Extracted CompressionInfoComponent class
[39b47e388d] Extracted StatsComponent as a helper for elements of SSTable metadata
[cdb55bff47] Fix SSTable.getMinimalKey
[b99c6d5805] Refactor FileHandle so that it is no longer closable
[77b7f7ace5] Implement WrappingRebufferer
[b6868914dd] Add progressPercentage to ProgressInfo
[7fd4956e5b] Moved copy/rename/hardLink methods from SSTableWriter to SSTable
[1ccc6bf148] Create generic SSTableBuilder and IOOptions
[da58a81102] Refactor SSTableReaderBuilder
[4501ddba1c] Refactor ColumnIndex
[d4f9e1a64b] Extracted non-big-table-specific functionality from BigTableWriter to SortedTableWriter
[379525d01e] Refactor BigTableZeroCopyWriter to SSTableZeroCopyWriter as it is not specific to big format
[8ac37f83bc] Extract EmptySSTableScanner out from BigTableScanner
[ee6673f1cf] Implement SSTableWriterBuilder
[bb26629235] Refactor opening early / final
[a327595015] Refactored SSTableWriter factory
[16ffd7334b] Extract non-big-format-specific logic from scrubber and verifier
[75e02db6af] Allow to specify the default SSTableFormat via system property
[a7b9d0d628] Small fixes around streaming
[407f977c36] Move guard collection size
[0529e57d2f] Remove explicit references to big format
[61509963ec] Unclassified minor changes
[da28d1af3a] Replaced getCreationTimeFor(Component) with getDataCreationTime()
[e99c834de6] !!! Reformatting
[882b7baa5a] Rename SSTableReader.maybePresent and fix its redundant usages
[b70c983bea] Implement mmapped region extension for compressed data
[d7ff3970de] Introduce SSTable.Owner interface
[e9feb9c462] Replaced getCreationTimeFor(Component) with getDataCreationTime()
[ee8082fb07] Created SSTableFormat.deleteOrphanedComponents
[e62950fd3d] Refactor metrics further
[cefa5b3814] Extract key cache support into separate entity
[dd55101ca1] Extracted SSTableReaderWithFilter
[510b651824] Implement customizable component types
[2be512d9fa] Pluggable SSTableFormat by making SSTableFormat.Type not an enum
[670836b55d] Refactor CRC and digest validators
[00c91103bc] Extract delete method to delete SSTables and purge row cache entries
[0819dc9fc2] Extracted trySkipFileCacheBefore(key) to SSTableReader
[732f841750] Added missing overrides in ForwardingSSTableReader
[db623218fd] Update DatabaseDescriptorRefTest
[c018c468e5] Cleanup
[eafc836242] Add @SuppressWarnings("resource") where needed
[3b7c911dd6] Documentation
patch by Jacek Lewandowski, reviewed by Branimir Lambov for CASSANDRA-17056
Co-authored-by: @jacek-lewandowski
Co-authored-by: @blambov
24ebd24c79175f7426f4c489dc5a006e75f09dfb | Author: Jacek Lewandowski <lewandowski.jacek@gmail.com>
| 2023-01-04 16:22:52+01:00
More accurate skipping of sstables in read path
This patch improves the following things:
1. SSTable metadata will store a covered slice instead of min/max clusterings. The difference is that for slices there is available the type of a bound rather than just a clustering. In particular it will provide the information whether the lower and upper bound of an sstable is opened or closed.
2. SSTable metadata will store a flag whether the SSTable contains any partition level deletions or not
3. The above two changes required to introduce a new major format for SSTables - oa
4. Single partition read command makes use of the above changes. In particular an sstable can be skipped when it does not intersect with the column filter, does not have partition level deletions and does not have statics; In case there are partition level deletions, but the other conditions are satisfied, only the partition header needs to be accessed (tests attached)
5. Skipping SSTables assuming those three conditions are satisfied has been implemented also for partition range queries (tests attached). Also added minor separate statistics to record the number of accessed sstables in partition reads because now not all of them need to be accessed.
6. Artificial lower bound marker is now an object on its own and is not implemented as a special case of range tombstone bound.
7. Extended the lower bound optimization usage due the 1 and 2
8. Do not initialize iterator just to get a cached partition and associated columns index. The purpose of using lower bound optimization was to avoid opening an iterator of an sstable if possible.
9. Add key range to stats metadata
[f369595b1c] Add fields to sstable version and placeholders in stats serializer
[f5c3f772e2] Add hasKeyRange and hasLegacyMinMax
[3cde51f4e1] Add partition level deletion presence marker to sstable stats
[67b2ee2152] Extract AbstractTypeSerializer
[c77b475d6c] Refactor slices intersection checking
[ceb5af3a38] Store min and max clustering as a slice in stats metadata as and improved min/max
[d1f8973929] Implement MetadataCollectorBench
[335369da84] Apply partition level deletion presence marker optimizations to single partition read command
[2497a009b9] Lower bound optimization - add slices and isReverseOrder fields to UnfilteredRowIteratorWithLowerBound
[e32ee31177] Lower bound optimization - Replace usage of RangeTombstoneMarker as a lower bound with ArtificialBoundMarker
[e213e712c4] Lower bound optimization - improve usage of lower bound optimization
[c4f93006b1] Apply read path improvements to partition range queries
[5fa462266c] Add key range to StatsMetadata
[79a7339ed4] Use key range from stats if possible
[266ed2749b] Added new sstables for LegacySSTableTest
patch by Jacek Lewandowski; reviewed by Branimir Lambov and C. Scott Andreas for CASSANDRA-18134
Co-authored-by: Branimir Lambov <blambov>
Co-authored-by: Sylvain Lebresne <pcmanus>
Co-authored-by: Jacek Lewandowski <jacek-lewandowski>
Co-authored-by: Jakub Zytka <jakubzytka>
f16fb6765b8a3ff8f49accf61c908791520c0d6e | Author: Jacek Lewandowski <lewandowski.jacek@gmail.com>
| 2023-01-03 18:17:13+01:00
Implementation of the trie-indexed SSTable format (BTI) as described in CEP-25.
Documentation in the included BTIFormat.md.
patch by Branimir Lambov and Jacek Lewandowski; reviewed by Caleb Rackliffe and Maxwell Guo for CASSANDRA-18398
957eca2fb53477d56bdc9a97c612f1fbecfb5d41 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2022-11-29 09:41:23+02:00
Implementation of the Unified Compaction Strategy as described in CEP-26
The approach is documented in the included UnifiedCompactionStrategy.md.
Also included:
- Generalize prettyPrint to prettyPrintBinary (with 2^10 multiplier,
e.g. MiB) and prettyPrintDecimal (with 1000 multiplier, e.g. ms)
that cover the full range of double, and add a parseHumanReadable
method that can read both.
- CASSANDRA-18123: Fix invalid reuse of metadata collector during flushing
- Fix invalid token range splitting with non-unit weights
- Add flushSizeOnDisk metric
- Add ability to change compaction default in YAML
patch by Alex Sorokoumov, Branimir Lambov, Dimitar Dimitrov and Stefania Alborghetti
reviewed by Alex Sorokoumov, Jaroslaw Grabowski and Maxwell Guo for CASSANDRA-18397
3775c8f11dc998ba9c74769a14b9443272c750c6 | Author: Stefan Miklosovic <smiklosovic@apache.org>
| 2022-11-16 13:27:09+01:00
Make cassandra.replayList property for CommitLogReplayer possible to react on keyspaces only
Property is meant to contain comma-separated entities which are either
names of keyspaces or keyspaces and tables or their mix.
Examples:
- just keyspaces: -Dcassandra.replayList=ks1,ks2,ks3
- specific tables: -Dcassandra.replayList=ks1.tb1,ks2.tb2
- mix of tables and keyspaces: -Dcassandra.replayList=ks1.tb1,ks2
If only keyspaces are specified, mutations for all tables in such keyspace will be replayed.
patch by Stefan Miklosovic; reviewed by Branimir Lambov for CASSANDRA-18044
acda6fad688e95e0a9a34de28e3b61a775e59736 | Author: Marianne Lyne Manaog <marianne.manaog@datastax.com>
| 2022-11-07 10:33:02+00:00
Bug fix for WriteTimeoutException when using Paxos v2 with a single datacenter
patch by Marianne Lyne Manaog; reviewed by Branimir Lambov and Benedict Elliott Smith for CASSANDRA-17999
93aef61a162c3074b284b096208c38964930baea | Author: Diogenese Topper <diotopper@gmail.com>
| 2022-07-21 16:53:28-07:00
BLOG - Pluggable Memtable Implementations in C* 4.1
patch by Branimir Lambov, Chris Thornett, Diogenese Topper; reviewed by Erick Ramirez for CASSANDRA-17761
Co-authored by: Branimir Lambov <branimir.lambov@datastax.com>
Co-authored by: Chris Thornett <chris@constantia.io>
Co-authored by: Diogenese Topper <diogenese@constantia.io>
c378874a9fa123891d1d75177d99dba5c4d18f9b | Author: Benedict Elliott Smith <benedict@apache.org>
| 2022-05-11 14:42:58+02:00
Utilise BTree improvements to reduce garbage and improve throughput
Patch by Benedict Elliott Smith; review by Branimir Lambov and Benjamin Lerer for CASSANDRA-15511
9808a4d8ed9c4319dac79dd1f13e2328e64b0a20 | Author: Ruslan Fomkin <ruslan.fomkin@gmail.com>
| 2022-03-16 15:17:22+01:00
CASSANDRA-17443 Enable testUnwriteableFlushRecovery of CommitLogTest
patch by Ruslan Fomkin; reviewed by Berenguer Blasi, Branimir Lambov for CASSANDRA-17443
562cb26010659830dd1192939ac815a0f6cb3502 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2021-11-11 15:39:21+02:00
MemtableTrie using multiple buffers
The replaces the size doubling and copying required to grow the trie
with an allocation of a new buffer. This improves the cost of expansion
at the expense of increasing individual read and write costs.
patch by Branimir Lambov; reviewed by Jason Rutherglen, Jacek Lewandowski, Andres de la Peña and Caleb Rackliffe for CASSANDRA-17240
49e0c61107005b1a83799f7f1e6c0a855d159c29 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2021-11-09 13:59:48+02:00
Further improves precision of memtable heap tracking
Partition key ByteBuffer and columns btree were not taken
into account and some ByteBuffers were not measured correctly.
Also fixes flakes in MemtableSizeTest caused by including
allocator pool in measurements and updates it to test all
memtable allocation types.
patch by Branimir Lambov; reviewed by Ekaterina Dimitrova, Andres de la Peña and Caleb Rackliffe for CASSANDRA-17240
35dbcc2c2dbe1c826fd6ecd6e8357f0f5a9bab02 | Author: Aleksandr Sorokoumov <aleksandr.sorokoumov@gmail.com>
| 2021-10-31 16:48:52+01:00
CASSANDRA-15215 Use DataOutputPlus.writeBytes in VIntCoding.writeUnsignedVInt
In the cases where VInt occupies less than or equal to 8 bytes
and the underlying buffer has at least 8 bytes, VIntCoding writes the
entire register in a single operation and then adjusts the buffer position.
Co-authored-by: Benedict Elliott Smith <benedict@apache.org>
Co-authored-by: Branimir Lambov <branimir.lambov@datastax.com>
3e6faca572a5ca1de5906b39b8c0a6bf4deb40e9 | Author: Aleksandr Sorokoumov <aleksandr.sorokoumov@gmail.com>
| 2021-09-30 13:01:02+01:00
Do not release new SSTables in offline transactions
patch by Aleksandr Sorokoumov; reviewed by Andrés de la Peña and Branimir Lambov for CASSANDRA-16975
87424dabd20acfdbb9a4489f289ec075ccfb87b0 | Author: Aleksei Zotov <azotcsit@gmail.com>
| 2021-07-15 21:40:10+04:00
Count bloom filter misses correctly.
Patch by Aleksei Zotov; reviewed by blerer and blambov for
CASSANDRA-12922
d84c6e98106e7b0c205f019ee24d416d0bb65f37 | Author: jacek-lewandowski <jacek.lewandowski@datastax.com>
| 2021-04-21 13:59:57+02:00
Prevent loss of commit log data when moving sstables between nodes
patch by Jakub Zytka and Jacek Lewandowski; reviewed by Branimir Lambov and Benjamin Lerer for CASSANDRA-16619
Add originating host ID to sstable metadata
- md, me sstables
- add missing test cases in MetadataSerializerTest
Co-authored-by: Jakub Zytka <jakub.zytka@datastax.com>
Co-authored-by: Jacek Lewandowski <jacek.lewandowski@datastax.com>
7c55c73825e341315e520381968338d57afbb67a | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2021-01-20 15:42:36+02:00
Adds a trie-based memtable implementation
patch by Branimir Lambov; reviewed by Jason Rutherglen, Jacek Lewandowski, Andres de la Peña and Caleb Rackliffe for CASSANDRA-17240
30641ea7b6b8253651562aeb0102778a0f9a405b | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2021-01-11 16:02:12+02:00
Provides the Trie interface with MemtableTrie implementation
also includes functionality to merge, intersect and iterate on tries.
patch by Branimir Lambov; reviewed by Jason Rutherglen, Jacek Lewandowski, Andres de la Peña and Calib Rackliffe for CASSANDRA-17240
661f1aab171dc3ef16075f69581e88ad4a133fae | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2020-12-08 15:37:39+02:00
Correct memtable on-heap size calculations to match actual use (CASSANDRA-16318)
Patch by Ekaterina Dimitrova and Branimir Lambov; reviewed by Benjamin Lerer and Branimir Lambov for CASSANDRA-16318
e966c45afcf8bef47df245ccb851386e5ce60505 | Author: jacek-lewandowski <jacek.lewandowski@datastax.com>
| 2020-11-06 14:59:56+01:00
ByteComparable API
Provides an API for converting all values of types that can be used in
primary keys to byte sequences that can be compared lexicographically
by unsigned byte value (i.e. byte-comparable sequences) and back.
patch by Branimir Lambov, Dimitar Dimitrov and Jacek Lewandowski;
reviewed by Caleb Rackliffe, Dimitar Dimitrov, Jacek Lewandowski and Aleksey Yeschenko for CASSANDRA-6936
0d99470f154a86c74665fed5f33a65ef146c4c31 | Author: Stephen Mallette <spmva@genoprime.com>
| 2020-05-05 10:15:00-04:00
Improved testing for CacheMetrics and ChunkCacheMetrics
Fixed failing assertions in CachingBench.
patch by Stephen Mallette; reviewed by Mick Semb Wever, Branimir Lambov for CASSANDRA-15788
068d2d37c6fbdb60546821c4d408a84161fd1cb6 | Author: Mick Semb Wever <mck@apache.org>
| 2019-08-05 00:06:30+02:00
Add `allocate_tokens_for_local_rf` yaml option for token allocation that doesn't require keyspace knowledge/existence
patch by Mick Semb Wever; reviewed by Branimir Lambov for CASSANDRA-15260
a03424ef95559c9df2bb7f86e1ac1edca1436058 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2018-11-07 13:10:39+02:00
Correct sstable sorting for garbagecollect and levelled compaction
patch by Branimir Lambov and Vincent White; reviewed by Zhao Yang for CASSANDRA-14879
c4982587bfe3cb6946daa2912fe46146edef7fbf | Author: tommy stendahl <tommy.stendahl@ericsson.com>
| 2018-07-03 12:53:59+02:00
Restore resumable hints delivery
Backport of CASSANDRA-11960
patch by Tommy Stendahl, Stefan Podkowinski and Branimir Lambov; reviewed by Aleksey Yeschenko for CASSANDRA-14419
028ea02a4a877d115c748d3e179c6afb2328e430 | Author: Vincent White <vince@instaclustr.com>
| 2018-01-31 06:59:28+00:00
Remove unrepaired SSTables from garbage collection when only_purge_repaired_tombstones is true
patch by Vincent White; reviewed by Stefan Miklosovic and Branimir Lambov for CASSANDRA-14204
Co-authored-by: Stefan Miklosovic <smiklosovic@apache.org>
5e57dd14eb37adf06d2105227e0105d871ea6f76 | Author: Sylvain Lebresne <sylvain@datastax.com>
| 2017-07-21 16:58:53+02:00
Potential AssertionError during ReadRepair of range tombstone and partition deletions
patch by Sylvain Lebresne; reviewed by Branimir Lambov for CASSANDRA-13719
17a358c2cc2c583c3e0fa046ca8dee6d743ad1c5 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2017-07-20 18:07:49+03:00
Add more testing of uncompressed chunks (CASSANDRA-10520), fix problem with min_compress_ratio: 1 and disallow ratio < 1
patch by Branimir Lambov; reviewed by Dimitar Dimitrov for CASSANDRA-13703
0493545dd08d29c34d757bb2f1d90052d03d24c6 | Author: Jeff Jirsa <jeff@jeffjirsa.net>
| 2017-03-17 13:54:03-07:00
On log replay, the last segment header may be truncated (or null). We should tolerate failure to read the header the same way we tolerate truncation of any of the rest of the final segment
Patch by Jeff Jirsa; Reviewed by Branimir Lambov for CASSANDRA-11995
b953f9eb2a3a1ba992fbb561b1e35531607739f3 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2017-02-24 11:02:08+02:00
Change default min_compress_ratio to 0 to avoid sending parameter to old
nodes
Follow-up commit to CASSANDRA-10520
patch by Branimir Lambov; reviewed by Robert Stupp for CASSANDRA-10520
237e14dd99cf3975d54cb1e41126c40bc183f3b4 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2017-01-23 17:42:19+02:00
Fix flaky GcCompactionTest
Patch by Branimir Lambov; reviewed by Stefania Alborghetti for
CASSANDRA-12664
81b8895151742668ff5035960612d8c4325a1761 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2017-01-23 17:20:43+02:00
Fix testLimitSSTables flake caused by concurrent flush
Patch by Branimir Lambov; reviewed by Stefania Alborghetti for
CASSANDRA-12820
058b95289bf815495fced0ac55a78bcceceea9fa | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2017-01-17 16:25:07+02:00
Adds the ability to use uncompressed chunks in compressed files
Triggered when size of compressed data surpasses a configurable
threshold.
Patch by Branimir Lambov; reviewed by Ropert Stupp for CASSANDRA-10520
d2ba715f2456e1aa821c01941f90b6a58f54e6c4 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2016-12-06 14:06:48+02:00
Revert "Make sure sstables only get committed when it's safe to discard commit log records"
This reverts commit 6f90e55e7e23cbe814a3232c8d1ec67f2ff2a537 as it was using a wrong version of the patch.
7d2fdfeb41eca9badaf10b906b6afe077d166348 | Author: Joel Knighton <joel.knighton@datastax.com>
| 2016-10-20 22:51:51-05:00
Rework tombstone purgeability checks to not use sentinel timestamp to indicate unconditional purgeability
patch by Joel Knighton; reviewed by Branimir Lambov for CASSANDRA-12792
e6d22da9186bdf61facbb8c426ea5bf1e59d947d | Author: Stefania Alborghetti <stefania.alborghetti@datastax.com>
| 2016-10-20 10:51:23+08:00
Fix RandomReplicationAwareTokenAllocatorTest.testExistingCluster
Patch by Stefania Alborghetti; reviewed by Branimir Lambov for CASSANDRA-12812
ca556c442049808c013bd20649d6611eb4a01a61 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2016-08-11 11:17:37+03:00
Fix clean interval not sent to commit log for empty memtable flush
patch by Branimir Lambov; reviewed by Jake Luciani for
CASSANDRA-12436
5cef78af9214308ef817de43ec36054a2549329c | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2016-08-11 11:15:44+03:00
Fix clean interval not sent to commit log for empty memtable flush
patch by Branimir Lambov; reviewed by Jake Luciani for
CASSANDRA-12436
bd6654733dded3513c2c7acf96df2c364b0c043e | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2016-08-03 11:32:48+03:00
Disable passing control to post-flush after flush failure to prevent
data loss.
patch by Branimir Lambov; reviewed by Sylvain Lebresne for
CASSANDRA-11828
ac53b720bd53641eb178a0a26f84df85108dfe7c | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2016-06-24 18:04:50+02:00
Chunk cache to request compressor-compatible buffers if pool space is exhausted
pathch by Branimir Lambov; reviewed by Stefania Alborghetti for CASSANDRA-11993
452d626a7a6b03917b7bd72a5dfe9da8a27e0903 | Author: Lerh Chuan Low <lerh@instaclustr.com>
| 2016-05-31 18:01:58+10:00
Fix handling of clustering key > 64K
Prevent select statements with clustering key > 64k,
nicer error message when writing a value larger than unsigned short,
catch Throwable for OutboundTCPConnection.
Patch by Lerh Chuan Low; reviewed by Branimir Lambov for CASSANDRA-11882
079029a44290f78121e3577da60cec93a8ca9f10 | Author: Stefania Alborghetti <stefania.alborghetti@datastax.com>
| 2016-05-27 10:55:23+02:00
Fix RecoveryManagerTruncateTest, includes a backport of CASSANDRA-11743
patch by Stefania Alborghetti and Benjamin Lerer; reviewed by Branimir Lambov for CASSANDRA-12802
904cb5d10e0de1a6ca89249be8c257ed38a80ef0 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2016-05-14 11:31:16+03:00
Change commitlog and sstables to track dirty and clean intervals.
patch by Branimir Lambov; reviewed by Sylvain Lebresne for
CASSANDRA-11828
3c1653f479faddf000fd818b7c578810c644ae02 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2016-05-05 16:20:52+03:00
Improve digest calculation in the presence of overlapping tombstones.
Patch by Branimir Lambov; reviewed by Sylvain Lebresne for
CASSANDRA-11349
408066c57a66e0d5a6691af1695742ef49786bf2 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2016-05-05 16:20:52+03:00
Improve digest calculation in the presence of overlapping tombstones.
Patch by Branimir Lambov; reviewed by Sylvain Lebresne for
CASSANDRA-11349
31cab36b1800f2042623633445d8be944217d5a2 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2016-05-05 11:30:00+03:00
Prevent direct memory OOM on buffer pool allocations
Patch by Branimir Lambov; reviewed by tjake for
(CASSANDRA-11710)
f3b3c410a0d84a4348cf05954b38df6b087762a7 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2016-03-30 16:29:55+03:00
Fix out-of-space error treatment in memtable flushing
Patch by Branimir Lambov; reviewed by Joshua McKenzie for
CASSANDRA-11448
1b201e959a6f77aeedd2549ed523200021d8c6e6 | Author: Joel Knighton <joel.knighton@datastax.com>
| 2015-12-29 14:59:57-06:00
Use cloned TokenMetadata in size estimates to avoid race against membership check
patch by Joel Knighton; reviewed by Branimir Lambov for CASSANDRA-10736
b2f38ef177b5c19288f96d9bfe5304ec94391f73 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-11-18 16:26:37+02:00
Properly handle hinted handoff after topology changes
patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-5902
1492be07cdf12afbba662645365cb991f223443d | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-10-28 17:11:35+02:00
Guard batchlog replay against integer division by zero
patch by Branimir Lambov; reviewed by Stefania Alborghetti for
CASSANDRA-9223
f97db26f8e9989d2294cccbea8a06589253313f2 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-10-14 16:50:52+03:00
Adds the ability to use uncompressed chunks in compressed files
Triggered when size of compressed data surpasses a configurable
threshold.
Patch by Branimir Lambov; reviewed by Ropert Stupp for CASSANDRA-10520
2d991a7e4cc73b522f2c8adf14b5ff37a7947427 | Author: Sylvain Lebresne <sylvain@datastax.com>
| 2015-09-24 14:09:21-07:00
Minor optimizations
patch by slebresne; reviewed by blambov for CASSANDRA-10410
The patch includes the 3 minor optimizations desribed below:
1) Faster copy in CompositeType.build(). We call CompositeType.build()
relatively often when a table has a composite partition key. When
copying source buffers into the composite result in that method, we
can use our existing ByteBuffer.arrayCopy() method which is supposed
to be faster since it uses FastByteOperations and saves the
duplication of the buffer to copy
2) Faster UUID->ByteBuffer. We convert UUID to their ByteBuffer
representation in a few places and do that by converting the UUID to
a byte[] and then wrapping it. But our convertion of UUID to byte[]
writes the 2 long the UUID is composed of byte by byte, while for a
ByteBuffer we can easily just "put" both long. So the patch
introduces a specific method to do that. That's arguably cleaner
anyway.
3) Memoize hash value for DataResource. Every request does a hash map
lookup on a DataResource (for validating access rights) which imply
calling DataResource.hashCode(). Currently that uses
Objects.hashCode(), which is a varargs methods and allocate an array
(which, according to MissionControl seems to not be stack allocated).
The patch does 2 things: it computes the hash only once in the ctor
and it stores the DataResource for each table in the CFMetaData and
uses that when checking access permissions for SelectStatement and
ModificationStatement (the 2 statements where performance matters).
The 2nd point also saves some unecessary test that the table exists
when we actually know it does.
c4de752758c3cf7f5de5a92e4ede30e430a36255 | Author: Stefania Alborghetti <stefania.alborghetti@datastax.com>
| 2015-09-18 08:57:53+08:00
Follow-up to CASSANDRA-10238
call invalidateCacheRings when topology is updated
patch by Stefania Alborghetti; reviewed by Branimir Lambov for
CASSANDRA-10238
a29d206532a44f99457af9ddd81d2bc3ed65e63e | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-09-15 18:57:43+03:00
Follow-up to CASSANDRA-8143
stops Schema initializing tables in client mode
patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-8143
849a438690aa97a361227781108cc90355dcbcd9 | Author: Benedict Elliott Smith <benedict@apache.org>
| 2015-09-09 15:25:59+01:00
Fix commit log replay after out-of-order flush completion.
Patch by Benedict Elliott Smith; reviewed by Branimir Lambov for
CASSANDRA-9669
c000da13563907b99fe220a7c8bde3c1dec74ad5 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-08-26 16:08:57+03:00
Improve NTS endpoints calculation
patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-10200
01a11fd2626d57bf0c8d0bce1e43060017592896 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-08-12 11:59:41+03:00
Fixes race during construction of commit log:
- Moves thread start outside of constructor for all commit log classes.
- Removes all references to CommitLog.instance from commitlog package.
patch by Branimir Lambov; reviewed by tjake for CASSANDRA-10049
f8f6fd2d7e51be7d0450d3a264136d1d93454203 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-08-12 11:59:41+03:00
Fixes race during construction of commit log:
- Moves thread start outside of constructor for all commit log classes.
- Removes all references to CommitLog.instance from commitlog package.
patch by Branimir Lambov; reviewed by tjake for CASSANDRA-10049
64e93a76d8065e2cadeffbc04d28c995dcc9bc0c | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-08-04 16:26:18+03:00
Fix remaining dtest failures caused by CASSANDRA-8143
patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-8143
6aa7d6ce89f155b72111bffce54e9bee66080b03 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-08-01 18:17:11+03:00
Fix dtest failures caused by CASSANDRA-8143
patch by Branimir Lambov; reviewed by Aleksey Yeschenko
762db474273f764b189d3613fce33943cd64701b | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-08-01 11:55:47+03:00
Optimize batchlog replay to avoid full scans
patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-7237
d12d2d496540c698f30e9b528b66e8f6636842d3 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-07-30 20:59:16+03:00
Honors commit log policy when replaying; treats errors in the last segment (section for compressed files) as permissible due to incomplete flush.
Reviewed by aweisberg for CASSANDRA-9749
fce8478ff43232d7e3623e457b1252f9700b451d | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-07-30 20:59:16+03:00
Honors commit log policy when replaying; treats errors in the last segment (section for compressed files) as permissible due to incomplete flush.
Reviewed by aweisberg for CASSANDRA-9749
609497471441273367013c09a1e0e1c990726ec7 | Author: Benedict Elliott Smith <benedict@apache.org>
| 2015-07-30 13:31:42+01:00
9975: Flatten Iterator Transformation Hierarchy
To improve clarity of control flow, all iterator transformations
are applied via a single class that manages an explicit stack of
named transformation objects.
patch by benedict; reviewed by branimir for CASSANDRA-9975
5f4cc45cdb9c4da3bd78c1714738dd39b4768ace | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-07-29 19:33:45+03:00
Add upgrade tests for lz4 and snappy compressed 2.2 commit logs
patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-9790
fb34b7950483abc5a15c09e802852183699c0ecb | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-07-29 18:56:14+03:00
Fix CommitLogUpgradeTest
filter hashed/counted rows to only the ones containing the required data.
patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-9790
40f4daa36769d4aba4f1d7aa291546b44cad8f77 | Author: Benedict Elliott Smith <benedict@apache.org>
| 2015-07-16 18:46:35+01:00
Save space in WriteCallbackInfo (CASSANDRA-9833)
Performs decision to save hint mutation eagerly, and
saves only the mutation itself
patch by benedict; reviewed by branimir for CASSANDRA-9833
c29001b94df769fe428f414c042daffbb6dd209d | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-07-16 12:41:33+01:00
Introduce a more efficient MergeIterator
The implementation uses a binary heap with sorted initial section and
flagging of equality to performing advances by sinking the top elements
in the queue, which usually finishes in several times fewer comparisons
and swaps than poll + offer.
patch by branimir; reviewed by benedict for CASSANDRA-8915
69f77cbddd4c74448f227e9aceef84d345118184 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-07-03 14:38:40+01:00
Stop accessing the partitioner directly via StorageService
Changes the way the partitioner is accessed. Partitioner is now stored
and accessed according to the reason for needing it:
* if it is to access a table / prepare a statement, the partitioner
relevant to this table can be found in its CFMetaData.
* if it is to route messages to the relevant member of the cluster, the
partitioner in TokenMetadata is to be used.
patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-8143
ee6fb19eebd03fb0da019fd7b28574a920e60ad4 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-07-02 19:06:29+07:00
Ninja fix exception message
patch by Branimir Lambov; reviewed by Robert Stupp
675a0f4713f3b25edcb6b8108ed4dc879fa0ec53 | Author: Jason Brown <jasedbrown@gmail.com>
| 2015-06-05 05:39:29-07:00
Compressed commit log should measure compressed space used
patch by blambov; reviewed by jasobrown from CASSANDRA-9095
09ccf60ed3372cc8378fb2f788b97e826a21d7e1 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-03-31 14:41:42+01:00
Delete processed sstables in sstablesplit/sstableupgrade. Adds option to keep originals in sstableupgrade. Removes unused verbose option in sstablesplit.
patch by Branimir Lambov; reviewed by tjake for (CASSANDRA-8606)
806facc8ca87a8d1f6fa14056c68ac43dc5bde5c | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2015-01-30 00:46:44+03:00
Token serialization should accept partitioner explicitly
patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-8268
e916dff8ba032d878ad4435eb7175c6a56f79ef4 | Author: Branimir Lambov <branimir.lambov@datastax.com>
| 2014-10-17 03:18:37+03:00
Force batchlog replay before decommissioning a node
patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-7446