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 |
