Database Tools
AllegroCache - Object
Persistence in Lisp
The enabling technology behind Allegro Common Lisp's persistent
objects is a high-performance, scalable, dynamic object-caching
database. It allows programmers to work directly with objects as if
they were in memory while in fact the object data is always stored on
disk. It supports fully ACID-compliant transaction mode with both
long and short transactions. It automatically maintains referential
integrity of complex object networks. AllegroCache provides 64-bit
real-time data caching on the application memory to achieve very high
data access throughput over as large a data set as required./p
- Persistent CLOS Objects in all Allegro Common Lisp -- Class
definitions are stored as first class objects in the database
- Dynamic Schema Evolution -- Redefine classes on the fly,
persistent objects are lazily updated when accessed
- Standalone & Client Server -- Single user on local disk or
multiple clients talking to single server over sockets
- Native lisp btrees
-- Comparable in speed with BerkeleyDB, with more control
- Transactional model
-- All ACID features, commit/rollback, and optimistic concurrency
- Supports databases with billions of objects (and Terabytes of
Data)
- Bulk Loading -- Improved performance adding objects to the
database
- Transaction Logging -- Restore databases after power
failure or disk crash
- Expression Cursors -- Iterate over a set of instances that
satisfy a predicate over multiple slots of an instance
- Range Queries -- Retrieve objects with slots that match a
range of values
- Convenient macros to loop over classes, maps and sets
- Indexed slots -- A mapping from slot-values to objects,
retrieve objects and object ids (oid)
- Maps
-- Transactionally safe persistent hashtables
- Sets
-- Persistent large collections of objects
- Supports most common datatypes -- Including unsigned-byte 8
arrays, maps and sets
- Object ID's unique for the lifetime of the database
-- User accessible
- Dump the database into XML files
- Restore database from the XML dump
- User controlled caching -- For the size of the btrees and
the total number of objects stored in the cache
Do More with the Data
The dynamic, object-oriented nature of Lisp makes it an ideal
development language to handle disparate data types in today's
applications. The Allegro Common Lisp family of products also
provides reliable, high-performance and scalable connections to most
other popular databases.
Allegro Oracle Direct Connect
Provides direct, high-performance access to Oracle databases
(versqion 8 or higher) using the Oracle C Interface (OCI) libraries
from Oracle, without needing ODBC.
- Allows many connections to the same or different databases
- Connections can be made in blocking or non-blocking modes
- Requires Oracle Client Libraries be installed (free from
Oracle)
Allegro MySQL Direct Connect
Provides direct, high-performance access to MySQL databases without
needing ODBC.
- Speaks the same client protocol used in all other languages that
work with the MySQL server
- Access to the network data buffers, when data is returned by the
MySQL server
- No need to allocate space for intermediate forms of data (as
needed in a multi-level interface)
- Has a set of macros to make it easy to create queries at
runtime
Allegro ODBC
Provides a universal interface between Lisp applications and
relational databases such as SQL Server, Access and Sybase.
- Ensures portability of database application using Microsoft's
ODBC
- Concurrently accesses multiple, heterogeneous databases
- Allows Lisp code in the middle of a query to better customize
requests
- Minimizes allocation of Lisp objects needed to hold database
results
- Parameterizes inserts in cached SQL for faster processing
- Supports SQL transactions
- Requires ODBC drivers that support either the V2.0 or the V3.0
ODBC definition
NDBM Database Interface
An interface to the simple collection of dabatase tools provided by
Unix and similar operating systems.
- Provides an interface to the Unix ndbm library
- Not recommended for complex database requirements
- Not available on Microsoft Windows