Всем привет! Состоялся очередной выпуск новой версии Cache под номером 2016.2. Изменений не так много, но все они важные. Как всегда, вначале публикуем ссылку на полный список изменений (на английском языке).


Итак.


Поддержка Atelier — новой IDE на основе Eclipse


Это первый выпуск Cache, в котором добавлена серверная поддержка новой интегрированной среды разработки Atelier.


Atelier совмещает в себе сильные стороны популярной IDE Eclipse и СУБД Cache. Он поддерживает экспорт кода в UDL, контроль версий “из коробки”, отладку, автообновление и совместим с большинством Studio Add-Ins. Atelier распространяется отдельно от дистрибутивов Cache и Ensemble.


На нашем обучающем портале на данный момент доступно два курса по Atelier:



Рекомендуется к ознакомлению.


Поддержка OAuth 2.0 и OpenID Connect


Начиная с этого выпуска, Cache поддерживает OAuth 2.0 и OpenId Connect Core. Cache может выступать в качестве клиента, сервера ресурсов или сервера авторизации. Подробнее можно узнать в разделе Using OAuth 2.0 and OpenID Connect with Cache документации, а также в статье на нашем Developer Community.


Поддержка SQL/JSON


SQL-синтаксис был расширен для частичной поддержки стандарта SQL/JSON, что позволяет получать результаты запросов в формате JSON. Поддерживаемые функции:


  • JSON_OBJECT — строит JSON-объект для каждой полученной строки.
  • JSON_ARRAY — строит JSON-массив для каждой полученной строки.

Улучшения в SQL


В этом выпуске представлены следующие улучшения производительности SQL:


  • %Parallel — Улучшение производительности путем разбиения запросов на порции, которые могут исполняться параллельно на многопроцессорных системах. В этом выпуске %Parallel получил следующие улучшения:


    • Снижение потребления ресурсов при подготовке запроса к параллельному исполнению.
    • Динамическое разбиение запросов на порции, основанное на числе доступных физических потоков.
    • Увеличение числа типов запросов SELECT, которые могут быть параллелизованы. Например, теперь Cache может разбивать на порции запросы с конструкциями IN (?, ?, ?) или %INLIST().


В результате вышеуказанных изменений, стало возможным использование %Parallel с большинством запросов SELECT. Если запрос поддается параллелизации, и Cache доступно несколько физических потоков, то производительность исполнения запроса будет улучшена. Если запрос нельзя разбить на порции, или доступен только один физический поток, то Cache распознает эту ситуацию и не станет разбивать запрос, экономя ресурсы.


  • Улучшена производительность обхода списочных коллекций.
  • Фиксированные планы — возможность “заморозки” плана запроса во время изменения индексов или других метаданных.

Остальные изменения


Из остальных важных изменений:


  • Новый REST API для доступа к файлам исходного кода, хранящимся в Cache. Данный API был разработан для поддержки IDE Atelier, но он также может быть использован для создания сторонних IDE, аналогичных Atelier. Более подробную информацию можно найти в главе Accessing Cache Source Code Files Using REST документации.
  • Утилита DataCheck теперь работает более эффективно благодаря параллельной обработке. Интерфейс ^DATACHECK стал более удобным.
  • Текущий выпуск Cache использует более быстрые механизмы синхронизации памяти в некоторых критических сценариях использования. Тесты пакетной загрузки данных показывают прирост производительности более чем на 10% на Linux x86-64. Эти улучшения актуальны для следующих платформ:


    • Apple Mac OS X for x86–64
    • IBM AIX for Power System-64
    • Microsoft Windows for x86–32, x86–64
    • Linux for x86–32, x86–64
    • Solaris for x86–64, SPARC-64


Спасибо, до новых релизов!

Поделиться с друзьями
-->

Комментарии (7)


  1. ZOXEXIVO
    01.12.2016 18:26
    +2

    Нельзя было выбрать название без "e"?


    1. morisson
      01.12.2016 21:36

      Хороший вопрос. Причем создатели СУБД не имеют в алфавите буквы e и других умляутов. О чем думал маркетолог в момент «прихода идеи» можно только догадываться.


  1. Siemargl
    02.12.2016 00:02

    Была отличная низкоуровневая и быстрая иерархическая СУБД (считаем SQL за язык высокого уровня) с объектной надстройкой. За счет низкоуровневости, на нишевых задачах имела громадную фору по скорости.

    В угоду рынку, решили стать как все:

    — выпустили Ателье, глючное донельзя, судя по отзывам

    — убили свой внутренний Web-сервер, который единственный мог нормально использовать объектные (и уникальные) возможности своего языка Cache Object Script

    — вместо объектной модели, решили доприделать SQL, который к иерархической СУБД как сбоку бантик и гробит всю скорость

    Я уже молчу по ценник.

    Отличный релиз.


    1. adaptun
      02.12.2016 10:25

      Позволю себе вступиться за Cache.

      1) В Atelier есть ошибки и ещё много, что нужно доделывать (https://community.intersystems.com/post/atelier-10-release). Всё равно это шаг в правильном направлении, потому что база для Atelier — Eclipse — открытая, расширяемая, мультиплатформенная IDE, для которой уже существует множество плагинов, которые теперь можно использовать и для работы с Cache ObjectScript.

      2) Этот пункт я не очень понял. Cache поставляется с собственным веб-сервером — урезанной сборкой Apache. Как CSP Gateway мешает использовать уникальные возможности Cache ObjectScript — непонятно.

      3) SQL в Cache не «вместо», а «вместе с» объектной моделью. Идеология в том, чтобы использовать тот взгляд на данные, который удобней в данном конкретном случае. Если быстродействия SQL и объектов не хватает всегда можно использовать прямой доступ к глобалам.

      Возможность использовать Cache как низкоуровневую и быструю иерархическую СУБД никуда не делась.


      1. Siemargl
        02.12.2016 11:44

        2) Речь шла о Zen, развитие которого отсутствует. То есть я широко выразился — не совсем убили, а наполовину.

        Можно еще добавить минорный пункт
        4) Закрытие бесплатной ветки GlobalsDB

        Возможность использовать Cache как низкоуровневую и быструю иерархическую СУБД никуда не делась
        Но использовать ООСУБД как key/value или как SQL-хранилище это как забивать гвозди электронным микроскопом.

        Единственное, я упустил, что ObjectScript еще можно использовать в хранимых процедурах.


        1. intersystems
          02.12.2016 14:37

          2) Речь шла о Zen, развитие которого отсутствует. То есть я широко выразился — не совсем убили, а наполовину.
          Zen был классный для 2007 года( когда он появился).
          С тех пор в Web UI появились вещи попрогрессивнее и грех их не использовать.
          Zen поддерживается, но не развивается, да.

          4) Закрытие бесплатной ветки GlobalsDB

          Это большая жаль, да.
          Но использовать ООСУБД как key/value или как SQL-хранилище это как забивать гвозди электронным микроскопом.

          Спорное утверждение. У вас что-то не получилось в подходе «ООСУБД вместе с key/value»? На самом деле с этой концепцией действительно очень несложно начать использовать микроскоп в качестве молотка. Т.е. неплохо бы знать, как это готовить и результаты могут быть весьма впечатляющи.


    1. intersystems
      02.12.2016 10:27

      Была отличная низкоуровневая и быстрая иерархическая СУБД (считаем SQL за язык высокого уровня) с объектной надстройкой. За счет низкоуровневости, на нишевых задачах имела громадную фору по скорости.

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

      Ателье зарелизился только вчера — все «глюки» до этого относились к фазе открытого бета-тестирования.
      Ну и если вы апологет прошлой IDE Студии, она остается. А Ателье это всего лишь «продвинутый» плагин к Eclipse, что дает кросплатформенность (Студия только под Windows), возможность использования сотен других плагинов Eclipse, а также есть открытое REST-API, что «технически» позволяет подключить любые другие популярные IDE для разработки на Cache ObjectScript (COS).
      — вместо объектной модели, решили доприделать SQL, который к иерархической СУБД как сбоку бантик и гробит всю скорость

      Что значит «вместо»? Все на месте. Хотите объектный доступ — пожалуйста, хотите SQL доступ к тем же данным — на здоровье. Хотите низкоуровневый доступ к глобалам для тех же данных (они же многоуровневые Key-Value структурам) — и это все есть. Но у всего есть плюсы-минусы и конкретная бизнес-задача, поэтому разработчики вольны переключаться между разными видами доступа к данным, когда это необходимо, и поэтому задача СУБД дать эту возможность мультимодельности и эта возможность есть и с каждой версией улучшается.