Выпуск отказоустойчивой СУБД CockroachDB 2.0
Как сообщает opennet.ru Состоялся выпуск распределенной СУБД CockroachDB 2.0, ориентированной на создание высоконадежных географически распределенных хранилищ, отличающихся высокой живучестью и не зависящих от сбоев дисков, узлов и центров обработки данных. CockroachDB гарантирует целостность ACID-транзакций, предоставляет возможность использования SQL для манипуляции с данными, позволяет вносить изменения в схему хранения на лету, поддерживает индексы и внешние ключи. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0. Подробнее с особенностями CockroachDB можно познакомиться в анонсе первого выпуска.
Основные новшества CockroachDB 2.0:
- Реализация типа данных для хранения в формате JSON. По аналогии с PostgreSQL используется тип JSONB ("binary JSON") для хранения структурированных наборов данных в бинарном формате с обеспечением высокой производительности выборки за счет применения инвертированных индексов;
- Поддержка операции "CREATE SEQUENCE", которая позволяет генерировать последовательность целых чисел в соответствии с заданным правилом (например, могут применяться для генерации значения первичного ключа);
- Экспериментальная возможность ведения лога аудита, включающего детальную информацию о всех выполненных в системе SQL-запросах;
- Поддержка общих табличных выражений (CTE, Common Table Expression), упрощающих определение и использование подзапросов. CTE могут быть использованы в комбинации с выражениями SELECT, INSERT, DELETE, UPDATE и UPSERT;
- Поддержка вычисляемых столбцов, в которых могут хранится данные, сгенерированные на основании содержимого других столбцов при помощи выражения, заданного при определении столбца (например, "full_name STRING AS (CONCAT(first_name, ' ', last_name))");
- Возможность привязки к внешним ключам операций "ON UPDATE" и "ON DELETE", для вызова обработчиков при обновлении или удалении записей;
- Для совместимости с PostgreSQL добавлена поддержка виртуальных схем хранения и добавлено выражение "SHOW SCHEMAS" для показа виртуальных схем для заданной БД;
- Импорт табличных данных при помощи выражения IMPORT теперь производится в полностью распределенной манере, а выполняющие импорт задания могут быть приостановлены, возобновлены и отменены;
- Новый тип данных INET для хранения адресов IPv4 и IPv6;
- Новый тип данных TIME для хранения времени без учета часового пояса;
- Проведена большая работа по повышению производительности и масштабируемости. При прохождении тестов производительности TPC-C СУБД CockroachDB теперь заметно обгоняет MySQL- и PostgreSQL-совместимую облачную СУБД Amazon Aurora в режимах симуляции работы очень больших компаний.