Несколько дней назад фонд Apache Software Foundation объявил о выпуске новой версии Apache Cassandra 4.0, распределенной системы управления базами данных , относящейся к классу NoSQL-систем и предназначенной для создания масштабируемого и надежного хранилища больших объемов данных, хранящихся в виде ассоциативного массива.
Эта новая версия Apache Cassandra 4.0 считается стабильной версией, поэтому ее можно использовать для производственных развертываний, и она уже была протестирована в инфраструктурах Amazon, Apple, DataStax, Instaclustr, iland и Netflix с кластерами из более чем 1000 узлов.
Основные новые функции Apache Cassandra 4.0
Новая версия Apache Cassandra 4.0 включает в себя около 1,000 исправлений ошибок, улучшений и новых функций, среди которых особенно выделяются следующие:
- Повышенная скорость и масштабируемость: передает данные до 5 раз быстрее во время операций масштабирования и до 25% более высокой производительности при чтении и записи, обеспечивая более гибкую архитектуру, особенно в облачных средах и развертываниях Kubernetes.
- Улучшенная консистенция: поддерживает синхронизацию реплик данных, чтобы оптимизировать инкрементное восстановление для более быстрой и эффективной работы и согласованности между репликами данных.
- Повышенная безопасность и наблюдаемость: журнал аудита отслеживает доступ и активность пользователей с минимальным влиянием на производительность рабочей нагрузки. Новые возможности захвата и воспроизведения позволяют анализировать рабочие нагрузки, чтобы обеспечить безопасность и соответствие нормативным требованиям SOX, PCI, GDPR или другим требованиям.
- Новые настройки конфигурации: Открытые системные метрики и параметры конфигурации обеспечивают операторам гибкость, гарантируя легкий доступ к данным, оптимизирующим развертывание.
- Минимальная задержка: Время паузы сборщика мусора сокращается до нескольких миллисекунд без ухудшения задержки при увеличении размера кучи.
- Лучшее сжатие: Повышенная эффективность сжатия снимает ненужную нагрузку на дисковое пространство и повышает производительность чтения.
Кроме того, подчеркивается добавление поддержки аудита для отслеживания операций аутентификации пользователей и всех выполненных CQL-запросов, а также возможность ведения полного бинарного журнала запросов, позволяющего сохранять весь трафик запросов и ответов.
Также заслуживает внимания экспериментальная опция сравнения всех деревьев Меркла (Merkle Tree). Например, включение этой опции в кластере с 3 узлами, где две реплики идентичны, а одна устарела, приведет к обновлению устаревшей реплики с помощью операции копирования текущей реплики.
Также, добавлена поддержка виртуальных таблиц, которые не отражают данные, хранящиеся в SSTables, но информация, отображаемая через API (показатели производительности, информация о конфигурации, содержимое кеша, информация о подключенных клиентах и т. д.).
Эффективность сжатого хранилища была улучшена, чтобы уменьшить потребление дискового пространства и повысить производительность чтения.
Кроме того, стоит отметить, что добавлена экспериментальная поддержка временной репликации и «дешевых кворумов». Временные реплики не хранят все данные и используют инкрементальное восстановление для поддержания согласованности с полными репликами. «Дешевые кворумы» — это оптимизации записи, которые не записывают данные во временные реплики до тех пор, пока не будет доступен достаточный набор полных реплик.
Что касается данных, относящихся к пространству системного ключа (system. *), Теперь они по умолчанию находятся в первом каталоге, а не распределяются между всеми каталогами данных, что позволяет узлу оставаться в рабочем состоянии в случае сбоя один из дополнительных дисков.
Среди других заметных изменений можно отметить следующие:
- Добавлена экспериментальная поддержка Java 11.
- Добавлена поддержка арифметических операций в CQL-запросах.
- Команда "nodetool cfstats" добавила поддержку сортировки по определенным метрикам и ограничения количества отображаемых строк.
- Настройки предназначены для ограничения пользовательских подключений только к определенным центрам обработки данных.
- Добавлена возможность ограничивать интенсивность (ограничение частоты) операций по созданию и удалению снимков.
- Поддержка Python 3 реализована в cqlsh и cqlshlib (поддержка Python 2.7 все еще сохраняется).
Наконец, если вас интересует более подробная информация об этой новой версии, вы можете найти ее по следующей ссылке.