InfinityDB
Encyclopedia
InfinityDB, included in the InfinityDB Developer’s Kit, is an all-Java embedded database
Embedded Database
An embedded database system is a database management system which is tightly integrated with an application software that requires access to stored data, such that the database system is “hidden” from the application’s end-user and requires little or no ongoing maintenance...

 engine that is deployed in hand-held devices, on servers, on workstations, and in distributed settings. Programmers use the Infinity Item Space to gain direct access to the Infinity B-Tree, allowing them to superimpose the most performance and space efficient data model for their specific application. The Infinity Database Engine employs the patented, Lockless, Concurrent B-Tree architecture that affords high performance for multi-threaded client programs.

InfinityDB provides embedded, unattended operation by minimizing its database size, eliminating its need for administrative intervention, and by eliminating a log via the lockless b-tree method. The database size is minimized through four types of compression
Data compression
In computer science and information theory, data compression, source coding or bit-rate reduction is the process of encoding information using fewer bits than the original representation would use....

 (prefix, suffix, Zlib, and UTF 8). All data is stored in the Infinity B-Tree with data items of variable length. Though the Infinity Database Engine can function in the smallest environment that provides random access storage, it can be scaled to large settings because it imposes no limits on the number of items, database size or size of JVM memory.

InfinityDB is fully ACID-compliant, using an Optimistic protocol, with locks at fine or coarse granularity.

Relational Data

Direct engine-level access via simple or composite keys can store and retrieve in one access operation variable-length records with variable-length values. Values can be Java primitives, Dates, Strings, small char or byte arrays, byte strings or composites of these. Higher-level structures that combine the simple or composite values include multi-record groups for unlimited-size records, Character Long Objects, Binary Long Objects, unlimited sparse arrays, unlimited sets of values, graphs, trees, or full-text indexes. There is no limit to the number of attributes overall or the number of attributes per record. Demonstration of these is given in example code and documentation.

Entity-Attribute-Value Data Model

The Infinity Item-Space accommodates the optional use of the Entity-Attribute-Value model
Entity-Attribute-Value model
Entity–attribute–value model is a data model to describe entities where the number of attributes that can be used to describe them is potentially vast, but the number that will actually apply to a given entity is relatively modest. In mathematics, this model is known as a sparse matrix...

, in which a triple can be considered a 'statement' or 'Item'. Triples can be multi-valued. The concept of a relational index is replaced by an 'inversion' of an Entity-Attribute-Value triple in which a stored Item has the entity and value reversed and the attribute replaced by an 'inverse' attribute. This approach allows applications to present users with any number of query-free, intuitive navigation paths.

Performance

InfinityDB reaches 100K random or sequential insertions, deletions, or retrievals per second for in-cache operations (at 3 GHz). Data compression ranges from one to approximately tenfold. Practical databases up to 250GB have been built.

History

Roger L. Deran designed and developed the Infinity Database Engine over 20 years and holds the Lockless Concurrent B*Tree Patent. The Infinity Database Engine was first deployed in 8088 Assembly Language in the ROSCOR Sports Video Editor that was licensed to NFL teams in the 1980s. Lexicon purchased the RSVE in 1989, and greatly expanded its deployment to all types of professional and college sports.

Uses of the all-JAVA InfinityDB, marketed by Boiler Bay Inc. since 2002, include: consolidation of pharmaceutical and medical data; collection, description, consolidation, and sharing of ornithological data; representation of taxonomies of various types; programming environment tools such as source code repository navigation; text indexers; email consolidation systems; and distributed industrial data collection systems.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK