Infinity Database
Engine™ B-Tree
Data Store Component for Embedded
Systems http://www.boilerbay.com/infinitydb
The Infinity Database Engine™ B-Tree is the most compact means available to store relational data using pure Java, both in terms of bytecode count and disk or flash memory usage. It is also safe, fast, concurrent, simple, flexible, and proven.
Most Compact all-Java Data Store
Ř
Occupies only 165 KB
bytecode, with the minimal core 125 KB.
Ř
100% Pure Java.
v
On-disk Data Compression
Ř
Uses UTF-8 over ZLib and
packs B-Tree cells into variable-length units instead of fixed-length blocks,
avoiding almost all wasted space, and actually increasing disk I/O speed
threefold due to the compaction. Such compaction has only recently become
practical because CPU speed has increased faster than disk I/O speed.
Ř
Long, variable-length
entries; common prefix compression; and common suffix compression minimize the
amount of data that must be stored.
In-memory cell cache uses prefix/suffix compression as well.
Ř
Denser cells means that
the OS file cache is better utilized.
Ř
No fragmentation loss in
'extents', 'segments', 'clusters', ‘areas,’ or 'blocks.'
Ř
All free space is
reclaimed immediately and completely after catastrophes such as power failure,
user interrupt, program crash and so on.
Ř
Unlimited size and
number of databases, relations and rows; no wasted space. Null attributes take
no space. Relations and attributes can be added dynamically without schema
change, taking space only when and as used.
Atomic
Global Commit and Integrity Guarantee
Ř
Guarantees database
internal integrity and application-level consistency through catastrophe.
Ř
Reliability comparable
to far larger and more complex transaction-based systems that employ logging,
without the possibility of deadlocks, forced rollbacks, log overflow, or dirty
shutdown with slow restart recovery from the log.
Ř
Code is simplified
because forced rollback cannot occur; application may rollback if desired.
High Performance and Concurrency
Ř
In-cache performance is
a blazing 60K searches or 30K modifications per second per GHz.
Ř
On-disk performance is
100% concurrent, since there are no page locks at all. (see US Patent
5,283,894.) Threads whose working sets are in the cache are not delayed by
those which need data from disk. On-disk operations overlap.
Ř
No SQL parsing or
optimization delay on each query. Direct Btree access is used.
Predictable Memory Usage
Ř
Avoids catastrophic
out-of-memory errors by using a fixed-size cell cache and no large, temporary
allocations. Conversely, JDBC and Object-Relational mappings bring large,
variable row sets and Object sets into memory, taking serious risks.
Ř
Accessing BLOB's and
CLOB's requires no temporary space -- some systems even bring long objects
entirely into memory.
Low Cost of Ownership
Ř
Accommodates a
single-file model that eliminates ‘flat’, ‘index’, and log files.
Ř
User Transparency -
storage technology invisible to user; no user training or knowledge required.
Ř
Requires no DBA – no
installation, configuration, or config files. No need for monitoring of log,
segment, or extent sizes.
Ř
Trivial API – essential
methods are: create(), open(), insert(), delete(), next(), and commit().
Ř
No SQL – Engine is for
use as a transparent component, not an RDBMS replacement. JDBC is not used.
§
No Syntax Portability
Problems
§
Simple Schema Upgrade –
no nonportable ‘ALTER TABLE’, no version-dependent script proliferation, no DBA
needed to run upgrade scripts.
§
No Unpredictable,
Variable CPU or Disk Usage when joins are complex or ad-hoc.
Ř
Applications can easily
maintain and extend database at runtime.
Ř
Self-Contained – no
dependency on other libraries, platforms, or other technologies.
Ř
No Wasted Licensing Fees
for unused DBMS capability.
Proven Technology
Ř
As the data storage
layer of the BoilerBase Email ® Indexer and Categorizer the Infinity Database Engine has been in
the field since 1999.
Simple Programming and Flexible Data
Representation
Ř
Refer to http://www.boilerbay.com/infinitydb/ItemSpaceDataStructures.htm for details about how relational, text, LOB’s, or multiple/composite
values can be easily stored and extended.
Ř The API is simpler than that of any other data store and can be learned completely in a few hours.
Boiler
Bay licenses the Infinity Database Engine™, and provides customization and
consulting services.
Boiler Bay is currently seeking partnerships with embedded and small-system tool vendors. Please visit our site http://www.boilerbay.com/infinity.db and write to us at rlderan@boilerbay.com.