Состоялся (https://www.cockroachlabs.com/blog/cockroachdb-2-0-release/) выпуск распределённой СУБД CockroachDB 2.0 (https://www.cockroachlabs.com/), ориентированной на создание высоконадёжных географически распределённых хранилищ, отличающихся высокой живучестью и не зависящих от сбоев дисков, узлов и центров обработки данных. CockroachDB гарантирует целостность ACID-транзакций, предоставляет возможность использования SQL для манипуляции с данными, позволяет вносить изменения в схему хранения на лету, поддерживает индексы и внешние ключи. Код проекта написан на языке Go и распространяется (https://github.com/cockroachdb/cockroach/) под лицензией Apache 2.0. Подробнее с особенностями CockroachDB можно познакомиться в анонсе первого выпуска (https://www.opennet.me/opennews/art.shtml?num=46529).
Основные новшества (https://www.cockroachlabs.com/docs/releases/v2.0.0.html) CockroachDB 2.0:
- Реализация типа данных для хранения в формате JSON. По аналогии с PostgreSQL используется тип JSONB (https://www.cockroachlabs.com/docs/v2.0/jsonb.html) ("binary JSON") для хранения структурированных наборов данных в бинарном формате с обеспечением высокой производительности выборки за счёт применения инвертированных индексов (https://www.cockroachlabs.com/docs/v2.0/inverted-indexes.html);
- Поддержка операции "CREATE SEQUENCE (https://www.cockroachlabs.com/docs/v2.0/create-sequence.html)", которая позволяет генерировать последовательность целых чисел в соответствии с заданным правилом (например, могут применяться для генерации значения первичного ключа);
- Экспериментальная возможность ведения лога аудита (https://www.cockroachlabs.com/docs/v2.0/sql-audit-logging.html), включающего детальную информацию о всех выполненных в системе SQL-запросах;
- Поддержка общих табличных выражений (https://www.cockroachlabs.com/docs/v2.0/common-table-express...) (CTE, Common Table Expression (https://en.wikipedia.org/wiki/Hierarchical_and_recursive_que...)), упрощающих определение и использование подзапросов. CTE могут быть использованы в комбинации с выражениями SELECT, INSERT, DELETE, UPDATE и UPSERT;
- Поддержка вычисляемых столбцов (https://www.cockroachlabs.com/docs/v2.0/computed-columns.html), в которых могут хранится данные, сгенерированные на основании содержимого других столбцов при помощи выражения, заданного при определении столбца (например, "full_name STRING AS (CONCAT(first_name, ' ', last_name))");
- Возможность (https://www.cockroachlabs.com/docs/v2.0/foreign-key.html#for...) привязки к внешним ключам операций "ON UPDATE" и "ON DELETE", для вызова обработчиков при обновлении или удалении записей;
- Для совместимости с PostgreSQL добавлена поддержка виртуальных схем хранения (https://www.cockroachlabs.com/docs/v2.0/sql-name-resolution....) и добавлено выражение "SHOW SCHEMAS" для показа виртуальных схем для заданной БД;
- Импорт табличных данных при помощи выражения IMPORT теперь производится в полностью распределённой манере, а выполняющие импорт задания могут быть приостановлены, возобновлены и отменены;
- Новый тип данных INET для хранения адресов IPv4 и IPv6;
- Новый тип данных TIME для хранения времени без учёта часового пояса;
- Проведена большая работа по повышению производительности и масштабируемости. При прохождении тестов производительности TPC-C (http://www.tpc.org/tpcc/) СУБД CockroachDB теперь заметно обгоняет MySQL- и PostgreSQL-совместимую облачную СУБД Amazon Aurora (https://aws.amazon.com/rds/aurora/) в режимах симуляции работы очень больших компаний.
URL: https://www.cockroachlabs.com/blog/cockroachdb-2-0-release/
Новость: https://www.opennet.me/opennews/art.shtml?num=48405