Варламов
- 1 year ago
- 0
- 0
InfinityDB является встраиваемой системой управления базами данных , написанной на языке Java , которая размещается в портативных устройствах, серверах, рабочих станциях и в распределенных системах. Проект основан на запатентованной открытой параллельной архитектуре B-дерева , которая позволяет достичь высокой производительности без риска сбоев . Данные хранятся в встроенном файле БД и возвращаются из него с помощью InfnityDB API , что позволяет получить прямой доступ к элементам переменной длины. Клиенты базы данных могут создать традиционные отношения, а также специализированные модели, которые непосредственно удовлетворяют потребности зависимого приложения. Нет никаких ограничений на количество элементов, размер базы данных или размер Java Virtual Machine , таким образом, InfinityDB может функционировать в маленькой среде, которая обеспечивает оперативную память, а также может масштабироваться к большим системам. Традиционные отношения и специализированные модели могут быть направлены к одному и тому же файлу базы данных. InfinityDB может быть оптимизирована для стандартных отношений, а также всех других типов данных, что позволяет клиентским приложениям работать со скоростью как минимум одного миллиона операций в секунду в виртуальной системе с 8 ядрами.
Прямой доступ на уровне ядра через простые или составные ключи может сохранять и извлекать в одной операции записи переменной длины со значениями переменной длины. Значения могут быть примитивными типами данных Java: строки, небольшие символьные или байтовые массивы, байтовые строки. Высокоуровневые структуры, которые комбинируют простые или составные значения, включают в себя группы для неограниченных по размеру записей, большие символьные объекты (CLOB’s), большие двоичные объекты ( BLOB ), неограниченные разреженные массивы , неограниченные наборы значений, графов, деревьев или полнотекстовых индексов. Многопоточный доступ поддерживается на одном ядре с внутренними мерами защиты, и на многоядерном процессоре с полностью параллельной многопоточной обработкой на множестве ядер. Нет предела числу атрибутов в целом или числу атрибутов за запись. Документация базы данных содержит примеры кода, иллюстрирующие это. База данных может представлять реляционные а также специализированные структуры данных одновременно, не требуя явного обновления схемы при расширении и изменении структуры.
Пространство элементов в InfinityDB имеет опцию для использования модели («Сущность-атрибут-значение»), в которой эту тройку можно считать 'оператором' или 'элементом'. Тройки могут быть многозначным. Понятие реляционного индекса заменено 'инверсией' тройки Entity-Attribute-Value, в котором у сохраненного элемента есть объект, инвертированное значение и атрибут, замененный 'обратным' атрибутом. Этот подход позволяет приложениям предоставлять пользователям любое число интуитивных навигационных путей без запроса.
Каждый экземпляр InfinityDB хранит данные в одном файле базы данных и не требует дополнительной регистрации или отката файлов какого-либо типа. Согласованность базы данных гарантируется функцией Commit, которая может вызываться так часто, как того требует приложение. В случае сбоя питания или другой неисправности оборудования, база данных гарантированно будет соответствовать статусу завершения последнего Commit’а. InfinityDB минимизирует размер своего файла базы данных с помощью четырёх типов сжатия данных ( префиксный код , suffix, Zlib и UTF-8 ).
Особенности InfinityDB Version 1.0:
Особенности InfinityDB Version 2.0:
Особенности InfinityDB Version 3.0:
Роджер Л. Дерэн спроектировал и разработал механизм InfinityDB в конце 1980-х и имеет патент США 5283894. Механизм InfinityDB был впервые реализован на Intel 8088 на языке ассемблере в спортивном редактор видео ROSCOR (RSVE), который был лицензирован для команды NFL в 1980 году. Lexicon купил RSVE в 1989 году, и значительно расширил размещение на все типы профессиональных и спортивных колледжей.
Использование all-JAVA InfinityDB, выпускаемого фирмой Boiler Bay Inc. с 2002, включает в себя: