uz
Feedback
Cassandra & Beyond

Cassandra & Beyond

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
228
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
Ma'lumot yo'q30 kunlar

Ma'lumot yuklanmoqda...

O'xshash kanallar
Ma'lumot yo'q
Muammo bormi? Iltimos, sahifani yangilang yoki bizning qo'llab-quvvatlash boshqaruvchimizga murojaat qiling>.
Kirish va chiqish esdaliklari
---
---
---
---
---
---
Obunachilarni jalb qilish
Iyul '26
Iyul '26
+2
0 kanalda
Iyun '26
+4
0 kanalda
Get PRO
May '260
0 kanalda
Get PRO
Aprel '26
+7
0 kanalda
Get PRO
Mart '26
+7
1 kanalda
Get PRO
Fevral '26
+2
0 kanalda
Get PRO
Yanvar '26
+2
0 kanalda
Get PRO
Dekabr '25
+20
0 kanalda
Get PRO
Noyabr '250
0 kanalda
Get PRO
Oktabr '25
+196
0 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
30 Iyul0
29 Iyul0
28 Iyul0
27 Iyul0
26 Iyul0
25 Iyul0
24 Iyul0
23 Iyul0
22 Iyul0
21 Iyul0
20 Iyul0
19 Iyul0
18 Iyul+1
17 Iyul0
16 Iyul0
15 Iyul0
14 Iyul0
13 Iyul0
12 Iyul0
11 Iyul0
10 Iyul0
09 Iyul0
08 Iyul0
07 Iyul+1
06 Iyul0
05 Iyul0
04 Iyul0
03 Iyul0
02 Iyul0
01 Iyul0
Kanal postlari
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