 Allegro CL • Packages/Pricing • Licensing Options AllegroCache • Download NFS for Windows Open Source Tools Pepito Semantic Technologies





|
Object Persistence in Lisp
AllegroCache is a high-performance, dynamic object caching database
system. It allows programmers to work directly with objects as if they
were in memory while in fact the object data is always stored
persistently. It supports a full transaction model with long and short
transactions, and meets the classic ACID requirements for a reliable
and robust database. It automatically maintains referential integrity
of complex data objects. AllegroCache provides 64-bit real-time data
caching on the application memory to achieve very high data access
throughput by applications over as large a data set as necessary.
AllegroCache Update
Building on the successful introduction of AllegroCache, initially
with the release of ACL 8.0, Franz continues to add customer driven
features to ensure their commercial advantage. Though it is included
with ACL, AllegroCache is a rapidly evolving product and not tied to
the ACL release cycle. You can easily insure you are working with
the latest version by evaluating a require update
form when you start ACL. The functionality in each new version is
documented in the AllegroCache
Reference Manual.
Some of the new features since the initial release include:
- 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
- Improved Back End Btrees -- Better performance and
efficiency
- Overall Performance Improvments
AllegroCache Features
- Persistent CLOS Objects in 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)
- 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
What people are saying about AllegroCache
"With AllegroCache, it's almost too easy to create
objects." ......John Foderaro
"For many tasks, using an RDBMS is like using a hammer when a
screwdriver is needed. If your application has to deal with persisting
and querying complex data structures, the combination of AllegroCache
and Allegro Prolog makes the job of managing your data a whole lot
easier." ...... Bill Clementson
"AllegroCache is the heart of our rule-based Department of
Defense solicitation selection system (winStoic). Configured in
Client/Server mode, AC processes several million EDI (Electronic Data
Interchange) segments every month and on a standard server. Its
unique ability to dynamically resolve changing schema has allowed us
to extend functionality, on live data, accelerating the introduction
of critical functionality from weeks using traditional DBMS systems to
hours. Because we interface with a half dozen real-time, web-based
services via XML and SOAP, ACÒ³ ability to work arbitrate numerous
asynchronous connections has obviated the need for thousands of lines
of cumbersome synchronization code. Last, because AC is built on top
of CLOS, its interface is simple and intuitive."
...... Glenn House, President 2Is Inc.
"AllegroCache perfectly closes the gap between CLOS and
object persistence. Following in the best traditions of Common Lisp
and CLOS, AllegroCache offers power and flexibility wrapped in a
simple and straightforward API. AllegroCache just feels right,
embodying another example of Christopher Alexander's "quality without
a name" which is sought after in software design and engineering
worlds, however Franz Inc. also puts a good name to this quality
product." ......Konstantin Zakharov
"We successfully integrated it inside PEPITo in less than a
day. At this stage, we can use AllegroCache just like any other data
source (excel, mysql, odbc) with the difference that AllegroCache
provides us with a real object-oriented database. It means that the
user can 'play' with the objects, perform actions on objects that have
a direct impact on the data, implement complex relationships between
objects, etc... The powerful 'rollback' mechanism provides the
possibility to try something, look at the result and rollback if it is
not satisfying." ..... Laurent Eschenauer. R and D
Engineer, PEPITe S.A.
"How I'd sum up AllegroCache: the database interface is so
simple it's almost invisible. What amazes me is how much power that
simple stuff has; you just program Lisp and don't really think about
it." ...... Byron Fast, Boomtree Inc.
"The Common Lisp community doesn't have a common story when
it comes to object persistence as an orthogonal feature to the
language. We don't even have a standard way to do object serialization
or industrial-grade B+trees as a native data structure. Franz decided
to explore a new object-oriented database design, AllegroCache, for
Lisp application developers. Several people have pointed out to us
that the majority of the IT industry is moving in the direction of
Object Relational Mappings on top of relational databases, and that
our object-oriented database might be the wrong thing at the wrong
time. While those concerns are not without merit, they overlook some
critical developments in the IT industry especially regarding the Lisp
community. First of all..." Jans Aasman and John
Foderaro (ILC 2005 paper, html)
AllegroCache White Paper
AllegroCache White Paper
AllegroCache Presentation
This presentation is a PowerPoint slide presentation that
introduces AllegroCache. If you have already seen a presentation, then
you can proceed to the next section to see the AllegroCache
Demonstration. This presentation requires Flash. After you start it,
press the F11 key (or equivalent on your system) to make the browser
window full screen.
AllegroCache Presentation 20
minutes, requires Flash
AllegroCache Demonstration
This is a recorded AllegroCache product demonstration given by Jans
Aasman, Franz's Director of Engineering. It is not meant to be a
comprehensive training class on AllegroCache, rather an informal
overview in under 25 mintues to get you started. Please refer to the
user documentation for all of the details. This demonstration requires
Flash. After you start it, press the F11 key (or equivalent on your
system) to make the browser window full screen.
AllegroCache Demonstration 24 minutes, requires
Flash
Get the files referred to in the demo here.
AllegroCache Documentation
Regarding the reference manual, AllegroCache is a rapidly evolving
product. Each version comes with an updated manual that describes the
functions in that version. When you update to a new version of
AllegroCache, look in your ACL directory for a subdirectory named
acache-x.y.z (where x.y.z is the version number). In that subdirectory,
there's a doc subdirectory containing the AllegroCache Reference
Manual for that version.
A more recent AllegroCache Reference Manual, version 2.1.5 can be
found here.
Latest version of AllegroCache
The latest versions of AllegroCache can be downloaded
here.
System Requirements:
To use AllegroCache, you will need to have Allegro CL 8.0 or greater
installed. If you do not have a current license, please email sales@franz.com or call (510)
452-2000.
© 2008 Franz Inc - Privacy Statement
[ Consulting Services
| Packages/Pricing
| Allegro NFS
| Certification Program
]
|