
|
 |
Transactionality
|
 |
| |
Products > Features > Transactionality |
|
 |
|
|
 |
InfinityDB 1.0 transactionality is at an 'ACD' level,
providing atomicity, consistency, and durability,
but no isolation, while InfinityDB 2.0 compatibly
adds full 'ACID' level by including
isolation.
In all cases internal integrity and durability
are guaranteed through
power-down, user interrupt, application crash,
or any other non-media failure, through a unique patented
copy-on-write structure in a single file.
There is no startup recovery phase.
There is no possibility
of resource limitation failures from 'rollback segment',
log, or temporary space.
There is no use of temporary disk space - all data goes
directly into its final storage location.
There are never internal locks on blocks or
other resources that can cause deadlock.
Character-and Binary-Long-Objects and
all other data types
have full transactional semantics.
-
ACD transactions have no size limit.
Nevertheless, commit is immediate. There is no
performance penalty for large transactions.
There is single, global ACD transaction in progress at all times
Thus there is no need for a special 'bulk
load' or 'bulk delete' or special handling ofr huge queries.
-
ACID transactions are limited only by memory for
locks and deltas. Both are accessible in O(log(n))
time, and are packed compressed in internal BTrees.
Optimistic locks are set invisibly at
the finest possible lock
granularity -
the equivalent of table, row, value, or index_range levels.
There are SERIALIZABLE and READ_CONSISTENT isolation levels.
A no-wait-for-durable commit
is optional for high performance.
|
| |