Scylla DB добавляет материализованные представления


Есть новая версия Scylla, базы данных NoSQL с открытым исходным кодом, совместимой с Apache Cassandra. В версии 3.0 добавлена поддержка материализованных представлений, вторичных индексов и подсказок, а также улучшена производительность.

Разработчики Scylla описывают его как замену Apache Cassandra с производительностью в 10 раз лучше. Он написан на C ++ для максимальной пропускной способности, задержки и администрирования, и компания заявляет, что Scylla обеспечивает производительность горизонтального масштабирования более 1000000 операций ввода-вывода в секунду на узел, масштабируется до сотен узлов и неизменно достигает 99-процентной задержки хвоста менее 1 миллисекунда.

Усовершенствования в новом выпуске направлены на обеспечение более эффективных запросов, снижение требований к хранилищу, сокращение времени восстановления и повышение общей производительности базы данных.

Первое изменение — это поддержка представлений материалов, в которых результаты запросов сохраняются для ускорения поиска. Обычно это обрабатывается на стороне клиента, а моментальный снимок данных хранится локально. Подход Scylla состоит в том, чтобы перенести управление представлением на серверы, поскольку реализация выполняется быстрее (меньше циклов обращения к приложениям). Это также означает, что приложения могут иметь несколько представлений своих данных. Приложение просто объявляет дополнительные представления, Scylla создает новые таблицы представлений, и при каждом обновлении базовой таблицы таблицы представлений обновляются автоматически. Чтения переходят непосредственно в таблицы просмотра. Этот подход совместим по функциям и синтаксису CQL с экспериментальной версией, которая сейчас находится в Apache Cassandra.

Второе улучшение новой версии — поддержка глобальных вторичных индексов. Вторичный индекс использует индекс материализованного представления, поэтому он не зависит от количества узлов в кластере. Независимо от того, для каких столбцов создан индекс, запросы имеют доступ ко всем столбцам в таблице. Обновления также могут быть более эффективными с помощью вторичных индексов, поскольку только изменения первичного ключа и индексированного столбца вызывают обновление в представлении индекса.

В этом выпуске намёки на передачу перешли из экспериментальной в готовую к производству. Целью скрытых передач обслуживания является работа с ситуациями, когда отдельный узел временно не отвечает из-за такого фактора, как большая нагрузка записи, сетевой трафик или отказ оборудования. «Подсказка» — это запись запроса на запись, удерживаемая координатором до тех пор, пока неотвечающий узел-реплика не вернется в оперативный режим. Как только узел снова становится доступным, данные запроса на запись в подсказке записываются в узел-реплику.

Еще одно улучшение — поддержка «разрешить фильтрацию». Это можно использовать для более сложного дизайна запросов, когда вы возвращаете только подмножество совпадающих результатов, а фильтрация выполняется на сервере, уменьшая объем данных, передаваемых по сети.

В другом месте есть поддержка более производительного формата хранения (SSTable), который совместим с Apache Cassandra 3.x, а также уменьшает объем хранилища в три раза.


Добавить комментарий