DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

InfinityDB


InfinityDB is an embedded database engine based on a B+Tree written in Java. It supports relational data and non-tabular or custom structures. InfinityDB is appropriate for embedded hardware platforms, text indexing engines, distributed industrial data collection systems, and heterogeneous data environments.

Country of Origin
US
Start Year
2002
Project Type
Commercial
Written in
Java
Supported Languages
Java
Operating System
All OS with Java VM
License
Proprietary

Database Entry

InfinityDB


InfinityDB is an embedded database engine based on a B+Tree written in Java. It supports relational data and non-tabular or custom structures. InfinityDB is appropriate for embedded hardware platforms, text indexing engines, distributed industrial data collection systems, and heterogeneous data environments.

History


The Infinity Database Engine was first written by Roger L. Deran in the Intel 8088 assembly language in the 1980s. It was then re-written to be entirely in Java in 2002 and now marketed by Boiler Bay Inc.

Compression[04][05]


InfinityDB supports compression for both in-memory and on disk data. It uses ZLib for compressing common substrings and small values via Huffman coding. Furthermore, it also supports prefix and suffix compression to remove common-prefixes in keys and common suffixes in upper tree levels. Other compression methods, including variable-length concatenations of primitives and variable-length encoded Java primitives, are used as well.

Concurrency Control[06]


InfinityDB 1.0 only executes one global transaction at a time. Any data store modification in the system will be visible to all threads. No lock is used and one global transaction is effected all the time.

InfinityDB 2.0 added support for multi-threaded transactions using optimistic concurrency control. If one transaction of a particular thread has held one lock and another transaction of another thread requests this lock. The existing locks of the requester are all released, the transaction is reset to the not-in-progress state and changes are rolled back. InfinityDB does not use pessimistic locking to avoid deadlocks.

Data Model[07][05]


InfinityDB supports a rich data representation space. ItemSpace is the lowest-level data model containing a set of Items. The basic data model can be used to define huge spare arrays, matrix, any mixture of trees, graphs, key/value maps, key/value maps or user-defined structures.

Indexes[08]


InfinityDB is based on its own proprietary lock-free, concurrent B+tree.

Isolation Levels[06][04]


InfinityDB 1.0 transactionality provides no isolation. For InfinityDB 2.0, it supports Serializable and Read Committed transaction isolation modes.

Logging[06]


InfinityDB uses a copy-on-write approach for updating the database, thus it does not require a log.

Storage Architecture[05]


InfinityDB stores and compresses data on disk and in memory.

System Architecture


InfinityDB is an embedded database engine written in Java.

Citations

8 sources
  1. InfinityDB Embedded – Boiler Bay Software boilerbay.com
  2. Documents – Boiler Bay Software boilerbay.com
  3. InfinityDB - Wikipedia wikipedia.org
  4. InfinityDB Programming Guide boilerbay.com
  5. Boiler Bay Software – InfinityDB Java NoSQL Database boilerbay.com
  6. ACID Transactionality boilerbay.com
  7. InfinityDB Programming Guide boilerbay.com
  8. TheDesignOfTheInfinityDatabaseEngine.PDF boilerbay.com
Revision #21 Last Updated: