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 |
