AllegroCache - Object-Prevalence++
Thursday, September 16, 2004
I've previously (see here, here and here) discussed Object Prevalence as an alternative (or supplement) to using an RDBMS. I recently chatted with Jans Aasman (head of engineering for Franz) regarding their initiatives in this area. For some time, of course, Franz has offered AllegroStore, a persistent object-oriented database management system (ODBMS) as part of their Enterprise Allegro CL product. However, AllegroStore is built on top of the ObjectStore commercial ODBMS product and it didn't always meet the performance or technical requirements of customers. Therefore, Franz decided to develop it's own object persistence product, tentatively named AllegroCache, written almost entirely in CL. Some of the features of the product are:
- high-performance, dynamic object caching system with a relational database providing a persistent store backend
- allows programmers to work directly with objects as if they were in memory while in fact the object data is always stored persistently
- supports a full transaction model with long and short transactions, and meets the classic ACID requirements for a database
- maintains referential integrity of complex data objects
- provides 64-bit real-time data caching on the application server layer to achieve very high data access throughput by applications over as large a data set as necessary
- support for CL, Java, Python and more
- object class schema can be changed at runtime, and all affected object instances in the cache or in the persistent store will be automatically and lazily updated to reflect the new class schema
- has a high-performance unobtrusive garbage collector to manage memory allocation and reclamation automatically
- supports access by multiple application threads concurrently
- will handle transaction isolation and data integrity across multiple threads automatically and transparently, relieving application developers from the headache of coordinating data locking and change reconciliation among multiple threads
- designed to operate over the whole network with applications running on clusters of processors
- has built-in AI inference engines, including Allegro Prolog and LISA - other inference engines can be added as well
When I asked him about the types of applications they are most interested in testing AllegroCache with (and, subsequently targeting as application domains most likely to benefit from AllegroCache), Jans said that:
"Franz is interested in applications with large sets of data, preferably tens of millions of objects that take more than 4GB of data, with many different types of objects where objects point to other objects. And where it is nearly impossible to solve your problems with SQL but where you need complex queries and interesting search and graph matching algorithms."Anyone (regardless of whether they are a current Franz customer or not) interested in becoming a beta tester (or providing input into the requirements for the product) should contact Jans Aasman at Franz. He indicated that Franz has already signed up a number of customers as initial beta testers including:
- A banking company for a fraud-detection system
- A bioinformatics research organization to manage bioinformatics data
- An organization interested in doing genealogical research
- A company interested in managing a large RDF data base

