25 марта 2014 вышел релиз СУБД Caché 2014.1. Что в версии твоей?
Развитие функциональности
Улучшения производительности
Подробнее об этом и многом другом под катом.
Начиная с 2014 версии, Caché поддерживает обработку REST запросов на уровне CSP Gateway. Для поддержки веб-приложением REST-интерфейса нужно определить класс-обработчик, который, используя встроенное средство соответствия URL, будет передавать вызов в нужный класс и метод.
На уровне передачи данных между клиентом (браузером) и сервером БД поддерживаются XML и JSON.
Пример построения REST приложения в Caché рассмотрен на Хабре.
Это нововведение касается NoSQL составляющей Caché — Globals API, которое позволяет работать с хранимыми структурами Caché — глобалами — наиболее быстро и напрямую. К уже имеющимся Java, Node JS и C# API добавилось Globals C API. В частности это позволяет использовать работу с данными в Caché и GlobalsDB непосредственно из C и С++ приложений, таких, например, как Ruby.
В этом релизе появилась поддержка UDP сокетов, которая реализуется через класс %Net.UDP. Класс позволяет осуществлять взаимодействие с сервером Caché без поддержки соединения.
Подробнее в документации класса %Net.UDP.
В этой версии Caché добавлена поддержка единой модели триггеров, которые срабатывают как при объектном, так и при SQL доступе для INSERT/UPDATE/DELETE событий. Новые триггеры классов однако не отменяют уже существующее семейство коллбеков %OnXXX для объектного доступа: все эти вызовы будут продолжать работать и поддерживаться.
В этом релизе поддерживается новая команда SQL — INSERT OR UPDATE. Она работает как INSERT, но если срабатывает UNIQUE ограничение для вставляемой записи, вместо INSERT выполняется UPDATE. Это нововведение будет полезно для случаев, когда в таблице возможна только одна запись с определенным значением уникального индекса, и вместо проверки существования записи и дальнейшего INSERT или UPDATE можно использовать одну SQL команду INSERT OR UPDATE.
Подробнее.
Появилась утилита для диагностики производительности MDX-запросов для OLAP решений на DeepSee. Если есть какие-то вопросы к производительности MDX запросов с помощью утилиты %DeepSee.Diagnostics.MDXUtils теперь можно собрать всю необходимую диагностическую информацию и направить в службу поддержки InterSystems.
Документация.
Новый компонент в BI технологии InterSystems DeepSee.
Cube Manager предоставляет пользовательский веб-интерфейс определения кубов в группы в больших BI решениях и составлять расписание перестройки и обновления кубов.
Cube Manager можно найти во вкладке DeepSee.
Model Browser позволяет визуально посмотреть связи между зависимыми кубами.
Детали.
Производительность откатов транзакций по TROLLBACK увеличилась на 20%-40%. Улучшение касается как одиночных длинных транзакций, так и массовых отмен транзакций при восстановлении из журнала.
TuneTable вычисляет селективность (Selectivity) в процентах для каждого свойства. Селективность основана на предположении, что значения распределены равномерно. Например в таблице со списком людей, любой конкретный день рождения будет появляться в 0.27% данных (1 раз из 365).
Начиная с этой версии, для одного значения, которое встречается гораздо чаще, чем остальные будет посчитана так называемая Outlier Selectivity, а для остальных значений будет посчитана обычная селективность. Например, если одно значение встречается 75% случаев, а остальные 20 в 25 процентов, то Selectivity будет посчитана как (100%-75%)/20 = 1.25%.
Самый популярный случай значения, выбивающегося из равномерного распределения — NULL. Если число записей со значением NULL заметно превышает число остальных значений, то NULL — статистический выброс (outlier) и для него будет подсчитана OutlierSelectivity.
Статья в документации.
В этой версии вновь доступна функциональность по дефрагментации и сжатию баз данных.
Утилита сжатия — перемещает незанятое пространство в конец файла, в итоге файл базы данных может быть уменьшен на величину пустого пространства.
Дефрагментация глобалов — утилита перераспределяет в базы данных расположение блоков для глобала в возрастающую последовательность, что дает некоторое повышение производительности при последовательном обходе глобала.
Подробнее.
Также начиная с версии Caché 2014 поддерживаются две новые перспективные технологии InterSystems: Zen Mojo и Enterprise Manager.
Enterprise Manager(EM) — продукт для эффективного управления большим количеством инсталляций Caché и Ensemble. EM позволяет удобно выполнять единообразные изменения конфигураций (например настройки безопасности веб-приложений, управление ролями и пользователями или маппинг глобалов) одновременно на нескольких серверах или группах серверов, что повышает упрощает администрирование и минимизирует ошибки.
Zen Mojo — фреймворк для быстрой разработки мобильных и веб-приложений с responsive design с использованием популярных JS-фреймворков(Dojo, jQuery и проч.). Выход релизов Zen Mojo не привязан к релизам Caché, и уже сегодня версия Zen Mojo 1.06 доступна для загрузки в WRC клиентам и партнерам InterSystems.
О Zen Mojo и Enterprise Manager будут отдельные подробные посты — следите за обновлениями.
Полный текст Release Notes можно найти здесь.
Развитие функциональности
- Поддержка REST;
- Globals C API;
- поддержка UDP;
- развитие Caché SQL;
- поддержка Enterprise Manager;
- DeepSee Cube Manager;
- единая модель триггеров для объектов и SQL.
Улучшения производительности
- Повышение производительности TROLLBACK до 40%.
- Диагностика производительности MDX.
- Улучшение производительности запросов с UNION и улучшения в Tune Tables.
- Дефрагментация и сжатие баз данных Caché.
Подробнее об этом и многом другом под катом.
Поддержка REST
Начиная с 2014 версии, Caché поддерживает обработку REST запросов на уровне CSP Gateway. Для поддержки веб-приложением REST-интерфейса нужно определить класс-обработчик, который, используя встроенное средство соответствия URL, будет передавать вызов в нужный класс и метод.
На уровне передачи данных между клиентом (браузером) и сервером БД поддерживаются XML и JSON.
Пример построения REST приложения в Caché рассмотрен на Хабре.
Globals C API
Это нововведение касается NoSQL составляющей Caché — Globals API, которое позволяет работать с хранимыми структурами Caché — глобалами — наиболее быстро и напрямую. К уже имеющимся Java, Node JS и C# API добавилось Globals C API. В частности это позволяет использовать работу с данными в Caché и GlobalsDB непосредственно из C и С++ приложений, таких, например, как Ruby.
Поддержка UDP
В этом релизе появилась поддержка UDP сокетов, которая реализуется через класс %Net.UDP. Класс позволяет осуществлять взаимодействие с сервером Caché без поддержки соединения.
Подробнее в документации класса %Net.UDP.
Единая модель обработки триггеров для объектов и SQL
В этой версии Caché добавлена поддержка единой модели триггеров, которые срабатывают как при объектном, так и при SQL доступе для INSERT/UPDATE/DELETE событий. Новые триггеры классов однако не отменяют уже существующее семейство коллбеков %OnXXX для объектного доступа: все эти вызовы будут продолжать работать и поддерживаться.
Новая команда в SQL: INSERT OR UPDATE
В этом релизе поддерживается новая команда SQL — INSERT OR UPDATE. Она работает как INSERT, но если срабатывает UNIQUE ограничение для вставляемой записи, вместо INSERT выполняется UPDATE. Это нововведение будет полезно для случаев, когда в таблице возможна только одна запись с определенным значением уникального индекса, и вместо проверки существования записи и дальнейшего INSERT или UPDATE можно использовать одну SQL команду INSERT OR UPDATE.
Подробнее.
Диагностика производительности MDX
Появилась утилита для диагностики производительности MDX-запросов для OLAP решений на DeepSee. Если есть какие-то вопросы к производительности MDX запросов с помощью утилиты %DeepSee.Diagnostics.MDXUtils теперь можно собрать всю необходимую диагностическую информацию и направить в службу поддержки InterSystems.
Документация.
DeepSee Cube Manager
Новый компонент в BI технологии InterSystems DeepSee.
Cube Manager предоставляет пользовательский веб-интерфейс определения кубов в группы в больших BI решениях и составлять расписание перестройки и обновления кубов.
Cube Manager можно найти во вкладке DeepSee.
Model Browser позволяет визуально посмотреть связи между зависимыми кубами.
Детали.
Увеличение производительности Rollback
Производительность откатов транзакций по TROLLBACK увеличилась на 20%-40%. Улучшение касается как одиночных длинных транзакций, так и массовых отмен транзакций при восстановлении из журнала.
Поддержка раздельного расчета селективности свойство для значений — выбросов (outliers)
TuneTable вычисляет селективность (Selectivity) в процентах для каждого свойства. Селективность основана на предположении, что значения распределены равномерно. Например в таблице со списком людей, любой конкретный день рождения будет появляться в 0.27% данных (1 раз из 365).
Начиная с этой версии, для одного значения, которое встречается гораздо чаще, чем остальные будет посчитана так называемая Outlier Selectivity, а для остальных значений будет посчитана обычная селективность. Например, если одно значение встречается 75% случаев, а остальные 20 в 25 процентов, то Selectivity будет посчитана как (100%-75%)/20 = 1.25%.
Самый популярный случай значения, выбивающегося из равномерного распределения — NULL. Если число записей со значением NULL заметно превышает число остальных значений, то NULL — статистический выброс (outlier) и для него будет подсчитана OutlierSelectivity.
Статья в документации.
Дефрагментация и сжатие: снова работает!
В этой версии вновь доступна функциональность по дефрагментации и сжатию баз данных.
Утилита сжатия — перемещает незанятое пространство в конец файла, в итоге файл базы данных может быть уменьшен на величину пустого пространства.
Дефрагментация глобалов — утилита перераспределяет в базы данных расположение блоков для глобала в возрастающую последовательность, что дает некоторое повышение производительности при последовательном обходе глобала.
Подробнее.
Zen Mojo и Enterprise Manager
Также начиная с версии Caché 2014 поддерживаются две новые перспективные технологии InterSystems: Zen Mojo и Enterprise Manager.
Enterprise Manager(EM) — продукт для эффективного управления большим количеством инсталляций Caché и Ensemble. EM позволяет удобно выполнять единообразные изменения конфигураций (например настройки безопасности веб-приложений, управление ролями и пользователями или маппинг глобалов) одновременно на нескольких серверах или группах серверов, что повышает упрощает администрирование и минимизирует ошибки.
Zen Mojo — фреймворк для быстрой разработки мобильных и веб-приложений с responsive design с использованием популярных JS-фреймворков(Dojo, jQuery и проч.). Выход релизов Zen Mojo не привязан к релизам Caché, и уже сегодня версия Zen Mojo 1.06 доступна для загрузки в WRC клиентам и партнерам InterSystems.
О Zen Mojo и Enterprise Manager будут отдельные подробные посты — следите за обновлениями.
Полный текст Release Notes можно найти здесь.