en
Feedback
Cassandra & Beyond

Cassandra & Beyond

Open in Telegram

Sharing of interesting links, thoughts, insights about Apache Cassandra and related technical topics (such as Java, perf, computer science)

Show more
228
Subscribers
No data24 hours
No data7 days
No data30 days

Data loading in progress...

Attracting Subscribers
July '26
July '26
+2
in 0 channels
June '26
+4
in 0 channels
Get PRO
May '260
in 0 channels
Get PRO
April '26
+7
in 0 channels
Get PRO
March '26
+7
in 1 channels
Get PRO
February '26
+2
in 0 channels
Get PRO
January '26
+2
in 0 channels
Get PRO
December '25
+20
in 0 channels
Get PRO
November '250
in 0 channels
Get PRO
October '25
+196
in 0 channels
Date
Subscriber Growth
Mentions
Channels
30 July0
29 July0
28 July0
27 July0
26 July0
25 July0
24 July0
23 July0
22 July0
21 July0
20 July0
19 July0
18 July+1
17 July0
16 July0
15 July0
14 July0
13 July0
12 July0
11 July0
10 July0
09 July0
08 July0
07 July+1
06 July0
05 July0
04 July0
03 July0
02 July0
01 July0
Channel Posts
Row merging logic optimizations Только что смержил ещё одно улучшение производительности в Apache Cassandra: CASSANDRA-21524 — немного оптимизировал CPU в логике слияния строк (row merging) во время чтения (войдёт в 6.0 и 7.0). Несколько точечных изменений дали прирост пропускной способности чтения на ~6–8% в бенчмарках (170K → 183K op/s). Основные идеи: - MergeIterator — универсальный класс, который переиспользуется для слияния партиций, строк и ячеек. Это удобно для разработки, но загрязняет JIT-профили megamorphic call site'ами. Решение: на этапе сборки генерируется копия класса под каждый сценарий использования. Код тот же, дублирования при сопровождении нет, а JIT может полностью оптимизировать каждый вариант. - Алгоритмическая оптимизация для расчёта minDeletionTime: если ни одна из входных строк не содержит удалений или истекающих ячеек, их нет и в результате — можно передать уже известное значение вместо повторного сканирования всего btree для его пересчёта. - Быстрый путь для типичного случая - слияния ячеек с одинаковыми типами колонок, массивы вместо List для сокращения аллокаций и разделение большого горячего метода на части, чтобы его горячая часть инлайнилась. Копирование класса - это по сути обходной путь для борьбы с загрязнением JIT-профилей. Надеюсь, что в будущем это может быть решено на уровне самой JVM: JDK-8015416 предлагает раздельные профили типов для инлайненных методов (https://bugs.openjdk.org/browse/JDK-8015416), а здесь - подробный разбор того, как JVM оптимизирует генерик-код: https://www.youtube.com/watch?v=J4O5h3xpIY8 Подробности: https://issues.apache.org/jira/browse/CASSANDRA-21524

2
Direct I/O support for background writes В Apache Cassandra (6.0/trunk ветках) было реализовано важное улучшение в подсистеме ввода-вывода в рамках https://issues.apache.org/jira/browse/CASSANDRA-21134 Автором изменений является Sam Lightfoot. Он добавил поддержку Direct I/O для фоновых операций записи, что позволяет предотвратить вытеснение данных из page cache во время compaction'а и других фоновых операций записи. Благодаря лучшей изоляции фонового ввода-вывода от рабочих нагрузок на чтение повышается эффективность использования page cache и обеспечивается более предсказуемая производительность операций чтения под высокой нагрузкой.
243
3
Рассказал про использование памяти в Cassandra на Apache Cassandra Contributor Meeting | June 10th, 2026 https://www.youtube.com/watch?v=8Sw_sx_dJEI
293