c-treeACE

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 14:31, 30 января 2019.

c-treeACE
ACE-tile-color.png
Sqlexplorer1.gif
c-treeACE SQL Explorer
Разработчики: FairCom Corporation
Выпущена: 1984
Постоянный выпуск: V11.5 / Ноябрь 2017
Написана на: C, C++
Операционная система:

Кросс-платформенное программное обеспечение:

Тип ПО: RDBMS, NoSQL, SQL
Лицензия: Freemium registerware
Веб-сайт faircom.com

c-treeACE - это подсистема хранения базы данных, разработанная FairCom Corporation.[Источник 1] Разработчики программного обеспечения обычно внедряют движок c-treeACE в приложения, которые они создают, а затем развертывают приложение и движок вместе в качестве интегрированного решения. Последнее издание - c-treeACE V11.5 выпущено в ноябре 2017 года.[Источник 2]

Обзор

В своём ядре c-treeACE использует ориентированную на запись структуру индексированного последовательного доступа (ISAM), предлагающую высокоскоростные механизмы индексирования файлов. Разработчики могут использовать эти методы прямого доступа для разработки структур данных и индексов, которые тесно связаны с потребностями их приложения. Эта парадигма иногда упоминается как база данных для приложений или встроенная база данных из-за тесно связанной природы приложения и базы данных.

Характер c-treeACE позволяет использовать её в ряде продуктов, включая: встроенные системы, которые требуют ограничений дискового пространства и количества используемой памяти, а также незаметной работы; shrink-wrap продукты разработанные ISV, требующие кросс-платформенной поддержки, минимального обслуживания и массового развертывания; корпоративные системы, которые зависят от производительности и которым требуется более точное управление операциями с базами данных, чем предлагает традиционная корпоративная база данных.

Доступны две версии продукта. c-treeACE Express свободно доступен для разработки на веб-сайте FairCom и поддерживает только архитектуру клиент/сервер. Библиотеки на стороне клиента предварительно скомпилированы, что упрощает их использование для оценки. c-treeACE Professional лицензируется отдельно и поддерживает все архитектуры, включает полный исходный код для клиентских библиотек и большую часть исходного кода для сервера.

c-treeACE - одна из немногих баз данных, которые специализируются на том, чтобы блокировать доступ к данным в устаревшей архитектуре через современные API, и минимизировать время, ресурсы и риски, связанные с проектами модернизации.[Источник 3]

c-treeACE сочетает в себе преимущества NoSQL, такие как высокая производительность, низкая латентность и точное управление доступом к данным, с гибкостью интерфейсов SQL.

История

Продукт был первоначально разработан доктором Уильямом Фэйрманом и выпущен в качестве «обработчика файлов c-tree» в 1984 году. Название возникло из-за того, что c-tree было реализацией дерева B+, написанного для тогда растущего микрокомпьютерного рынка на языке программирования C.

Архитектура клиент/сервер была введена в 1987 году. В то время версия клиент/сервер поддерживала только API ISAM. C-tree DB и SQL API были представлены позже, в 2003 году.

В 1990 году продукт подвергся переименованию с выпуском версии c-tree Plus 6, а затем снова в 2008 году с выпуском версии «c-treeACE» (Advanced Core Engine) версии 9. Вместе с изменением имени в 2008 году, состоялся релиз «c-treeACE Express».

В настоящее время c-treeACE охватывает более 100 стран на четырех континентах, включая использование 43% компаний из списка Fortune 100.[Источник 4]

Мультимодельный подход

В уникальном мультимодельном подходе c-treeACE движки NoSQL и SQL дополняют друг друга, работая вместе или по отдельности, в зависимости от того, что необходимо для разработки.

Динамические данные

Объем, скорость и разнообразие (обычно называемые «3 V» - Volume, Velocity, Variety) данных, собираемых сегодня, находятся на рекордно высоком уровне, и, по прогнозам, эти атрибуты будут только расти экспоненциально[Источник 5]. Поскольку наши компьютерные системы способны переваривать, анализировать и принимать разумные решения на основе этого потока данных, продолжают улучшаться, становится очевидным, что вам потребуется база данных, способная идти в ногу. Независимо от того, откуда поступают данные - системные журналы, датчики машины, финансовые данные, информация о здравоохранении или другие - база данных c-treeACE может идти в ногу с динамическими потребностями в данных.

Динамические Запросы

Пока 3 V данных увеличиваются, другим новшеством является то, что данные больше не хранятся в закрытых хранилищах. Практически все отраслевые сегменты нуждаются в методах реального времени для использования этих ценных данных для интеграции с другими частями предприятия, бизнес-аналитики (BI), управления, веб-доступа и мобильного доступа и так далее.

Динамические данные + Динамические запросы = c-treeACE

Во многих системах баз данных процесс ETL (извлечение, преобразование, загрузка) необходим для получения реляционного доступа к традиционно нереляционным данным. ETL создает две проблемы: (1) теперь у вас есть две копии данных для обслуживания и; (2) теперь у вас есть реляционный доступ к «устаревшим» данным. Кроме того, некоторые решения ограничены доступом только для чтения к экспортированным данным SQL.

SQL является естественным выбором для внешней интеграции. С c-treeACE приложения остаются такими же, а требования схемы могут «следовать данным», позволяя данным NoSQL оживать в SQL. Благодаря многосхемным данным и данным подзаписей, поддержке FILESET и преобразованию типов «на лету» с помощью собственных типов SDK, c‑treeACE обеспечивает расширенный доступ практически ко всем формам существующих данных приложения, будь то схема, полусхема или без схемы ,

Увеличенная скорость

c‑treeACE был спроектирован с нуля для обеспечения максимально быстрых операций с базой данных[Источник 6]. Для достижения еще большей производительности FairCom дает возможность опытным разработчикам приложений точно контролировать свои собственные операции с базами данных.

Расширенная индексация

Задача: вам нужны надежные возможности индексирования, но вы не можете жертвовать производительностью (см. Рисунок 1).
Рисунок 1 – Расширенная индексация

Благодаря стандартным функциям индексирования, предоставляемым c-treeACE и другими продуктами СУБД, операции добавления, удаления и обновления вызывают вставку ключа и удаление каждого индекса, связанного с файлом данных. Однако эти операции с индексами могут вызвать ощутимую потерю производительности, особенно когда задействованы многочисленные индексы. Для некоторых приложений падение производительности не оказывает существенного влияния, и стандартных функций индексации достаточно.

Критически важные приложения не могут позволить себе жертвовать производительностью. Чтобы удовлетворить требования этих приложений, c-treeACE предлагает расширенный процесс индексации, который мы называем отложенной индексацией. Задерживая выбранные операции с индексами, приложения могут очень быстро обновлять файлы с большим количеством индексов. Атрибут «отложенная индексация», указанный при создании нового индекса, задерживает операции вставки / удаления ключа для этого файла индекса (или нескольких файлов индекса). Операции NoSQL, таким образом, позволяют избежать затрат на непосредственное обновление этих отложенных индексов. При включенном отложенном индексировании фоновый поток выполняет операции вставки и удаления ключей в файлах отложенного индекса асинхронно.

Кроме того, необязательная функция обратного вызова может быть зарегистрирована для файла, который вызывается в качестве альтернативы или в дополнение к выполнению операций вставки / удаления ключа для дополнительного управления и функциональности.

Регистрация отложенных транзакций

Задача: вам нужны ACID-совместимые транзакции, но вы не можете перенести снижение производительности, связанное с регистрацией транзакций, на диск после каждой фиксации. Вам нужны блестящие характеристики и гарантия ACID(см. Рисунок 2).
Рисунок 2 – Регистрация отложенных транзакций

Для полного соответствия OLTP ACID журналы транзакций c-treeACE синхронизируются на диск с каждой операцией фиксации, обеспечивая абсолютную целостность данных с полным восстановлением. Однако такая целостность достигается за счет снижения производительности. Многие приложения могут извлечь выгоду из «расслабленного» режима записи журнала транзакций.

Чтобы удовлетворить эту потребность, доступен расширенный режим транзакций, в котором c-treeACE позволяет сохранять обновления журнала транзакций в кэше в своем буфере журнала транзакций в памяти, а также в кэше файловой системы после фиксации транзакции. Задача состоит в том, чтобы избежать попадания обновлений индекса и данных на диск до записи транзакции. c‑treeACE может задерживать записи журнала транзакций в постоянное хранилище, одновременно гарантируя, что эти записи журнала транзакций для данной записи транзакции будут записаны на диск до того, как любые обновления файлов данных, связанные с этой транзакцией, будут записаны в кэш файловой системы или в постоянное хранилище. Результатом является невероятно высокая производительность даже при самых высоких требованиях к постоянным транзакциям.

Особенности

c-treeACE предлагает поддержку следующих функций:

  • ACID - совместимые транзакции
  • Файлы на диске и памяти, управляемые на уровне файлов
  • Конфигурируемые размеры данных и индексов
  • Автоматическое аварийное восстановление
  • Data Camouflage
  • Разделение файлов
  • Realtime/Hot backups
  • API репликации
  • Хранимые процедуры, триггеры и пользовательские функции
  • Concurrent SQL и доступ к ISAM ориентированный на записи
  • Графические административные инструменты и утилиты
  • Immediate consistency

API

c-treeACE имеет многоуровневую архитектуру системы с различными интерфейсами прикладного программирования (API), доступными разработчику на каждом уровне. Нижние слои имеют проприетарные API-интерфейсы, которые обеспечивают более прямой контроль над обработкой данных и индексов из-за большей сложности, тогда как более высокие уровни предлагают больше стандартных API-интерфейсов, но дают менее точный контроль. Разработчики программного обеспечения могут использовать один API для приложения или одновременно использовать несколько API.

Основа c-treeACE - движок ISAM. Разработчики могут использовать собственный C API для непосредственного доступа к движку. Поскольку ISAM API можно использовать для создания приложений с нереляционными структурами данных, c-treeACE может быть включен как часть классов баз данных NoSQL.[Источник 7] Поскольку программное обеспечение также может использоваться для создания баз данных, которые на самом деле являются реляционными/SQL, NoSQL будет ссылаться на базу данных, предлагающую «Not Only SQL», а не такую, которая полностью исключает SQL.

Следующий слой API - это то, что FairCom называет слоем c-treeDB. Интерфейсы на этом уровне включают C и C++ API, компоненты [[VCL (Visual Component Library)|VCL] для использования с Delphi и C++Builder и компоненты .NET Framework.

Наконец, существует дополнительный SQL- уровень, который даёт SQL-92 совместимый доступу к движку базы данных. На этом уровне есть несколько вариантов API, включающих поставщика данных ADO.NET, драйвер JDBC 4 типа, драйвер ODBC, интерфейс PHP, драйвер DbExpress для Delphi и C++Builder. Хранимые процедуры, написанные на Java для кросс-платформенной переносимости, включены на уровне SQL.

Архитектуры

Рисунок 3 – Общая архитектура c-tree

c-treeACE включает в себя несколько различных архитектур или операционных моделей, из которых разработчики могут выбирать (см. Рисунок 3).

Модель клиент/сервер

Модель клиент/сервер c-treeACE использует типичную архитектуру базы данных клиент/сервер. Библиотеки на стороне клиента скомпилированы в приложение и затем обмениваются данными с серверным компонентом (идентифицированным как сервер c-treeACE на языке FairCom). Пакет c-treeACE Express, свободно предоставляемый FairCom для разработки через веб-сайт, поддерживает только эту модель. Для серверного компонента FairCom предлагает лицензии как для обоих серверов ISAM (поддерживающих API ISAM и c-treeDB), так и для SQL-серверов (поддерживающих все API, включая SQL).

Встроенный сервер

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

Автономный

В автономных моделях отсутствует отдельный серверный процесс, с которым взаимодействуют приложения, вместо этого автономная библиотека создается с использованием c-treeACE и связана с приложением. Операции управления данными выполняются через один из ориентированных на запись API, которые затем используют собственные нативные библиотеки.

Как однопользовательские, так и многопользовательские библиотеки могут быть построены с помощью c-treeACE. Многопользовательского режим - это режим совместного доступа, в которой операционная система обеспечивает блокировку, а не серверный процесс. Конкуренция за ресурсы может стать проблемой при использовании автономной многопользовательской модели из-за требований конкуренции и увеличения количества сетевых операций.

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

Гибридный

Существует гибридная модель, которую FairCom называет LOCLIB, она позволяет клиенту работать с локальным хранилищем данных как через отдельную библиотеку, так и через модель клиент/сервер.

Платформы

c-treeACE поддерживает следующие операционные системы:[Источник 8]

Источники

  1. FairCom c-treeACE Aims To Bridge Both SQL and NoSQL // Adrian Binstock, Dr.Dobb's Journal. [2017]. Дата обновления: 14.11.2012. URL: http://www.drdobbs.com/database/faircom-c-treeace-aims-to-bridge-both-sq/240134948 (дата обращения: 21.01.2019).
  2. FairCom releases latest version of c-treeACE database software // SD Times. [2017]. Дата обновления: 09.11.2017. URL: https://sdtimes.com/sd-times-news-digest-googles-voice-experiments-cdata-software-releases-drivers-redis-testplant-adds-api-testing (дата обращения: 21.01.2019).
  3. Do I need NoSQL, SQL or both? // Desire Athow, TechRadar Pro. [2017]. Дата обновления: 22.05.2014. URL: http://www.techradar.com/news/world-of-tech/do-i-need-nosql-sql-or-both--1249594 (дата обращения: 21.01.2019).
  4. FairCom Corperation // Faircom. [2017]. Дата обновления: 03.11.2017. URL: http://www.faircom.com/company (дата обращения: 21.01.2019).
  5. No+SQL: Multimodel Synergy // FairCom Corporation. [2019]. URL: https://www.faircom.com/products/c-treeace/multimodel (дата обращения: 29.01.2019).
  6. Solutions for Every Performance Challenge // FairCom Corporation. [2019]. URL: https://www.faircom.com/products/c-treeace/performance (дата обращения: 29.01.2019).
  7. FairCom c-treeACE Aims To Bridge Both SQL and NoSQL // Adrian Binstock, Dr.Dobb's Journal. [2017]. Дата обновления: 14.11.2012. URL: http://www.drdobbs.com/database/faircom-c-treeace-aims-to-bridge-both-sq/240134948 (дата обращения: 21.01.2019).
  8. Do I need NoSQL, SQL or both? // Desire Athow, TechRadar Pro. [2017]. Дата обновления: 22.05.2014. URL: http://www.techradar.com/news/world-of-tech/do-i-need-nosql-sql-or-both--1249594 (дата обращения: 21.01.2019).