ch
Feedback
Cassandra & Beyond

Cassandra & Beyond

前往频道在 Telegram

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

显示更多
228
订阅者
无数据24 小时
无数据7
无数据30

数据加载中...

吸引订阅者
七月 '26
七月 '26
+2
在0个频道中
六月 '26
+4
在0个频道中
Get PRO
五月 '260
在0个频道中
Get PRO
四月 '26
+7
在0个频道中
Get PRO
三月 '26
+7
在1个频道中
Get PRO
二月 '26
+2
在0个频道中
Get PRO
一月 '26
+2
在0个频道中
Get PRO
十二月 '25
+20
在0个频道中
Get PRO
十一月 '250
在0个频道中
Get PRO
十月 '25
+196
在0个频道中
日期
订阅者增长
提及
频道
30 七月0
29 七月0
28 七月0
27 七月0
26 七月0
25 七月0
24 七月0
23 七月0
22 七月0
21 七月0
20 七月0
19 七月0
18 七月+1
17 七月0
16 七月0
15 七月0
14 七月0
13 七月0
12 七月0
11 七月0
10 七月0
09 七月0
08 七月0
07 七月+1
06 七月0
05 七月0
04 七月0
03 七月0
02 七月0
01 七月0
频道帖子
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