anardb

Atomic, consistent, isolated, durable multi-process safe Lisp object serialisation

Introduction

Anardb provides persistent classes, which can have slots indexed in hash-tables, and the ability to perform ACID transactions on them from multiple processes simultaneously.

It requires UN*X filesystem semantics and has been tested on Allegro x86 but should be portable to SBCL, etc.

Anardb has not been deployed in production and it is likely that there are bugs.

Contact

Email John Fremlin at MSI. His address is jf@[the domain without www].

View or edit the Cliki entry.

Using it

Start Lisp. Get asdf-install.

      CL-USER> (asdf-install:install 'anardb)
      CL-USER> (asdf:operate 'asdf:load-op 'anardb)
    
CL-USER> (anardb:defdbclass lisp-company () ((name :index t) (location :index t)))
#<STANDARD-CLASS LISP-COMPANY>
CL-USER> (make-instance 'lisp-company :name "MSI" :location "Tokyo")
#<#<LISP-COMPANY @ #x1001160112> NAME: "MSI" LOCATION: "Tokyo">
CL-USER> (find-lisp-company :location "Tokyo")
(#<#<LISP-COMPANY @ #x1001160112> NAME: "MSI" LOCATION: "Tokyo">)
T
CL-USER> (find-lisp-company :location "Osaka")
NIL
NIL

The API is documented.

Downloads

Downloads

Git development tree access

git clone http://cl-www.msi.co.jp/projects/anardb/anardb.git