Presentation is loading. Please wait.

Presentation is loading. Please wait.

Elephant: Easy Persistence No ORMs at all Very easy to use APIs: btree, persistent sets, and CLOS integration Dynamic index creation on slots Functional.

Similar presentations


Presentation on theme: "Elephant: Easy Persistence No ORMs at all Very easy to use APIs: btree, persistent sets, and CLOS integration Dynamic index creation on slots Functional."— Presentation transcript:

1 Elephant: Easy Persistence No ORMs at all Very easy to use APIs: btree, persistent sets, and CLOS integration Dynamic index creation on slots Functional indexes

2 (defpclass friend () ((name :accessor name :initarg :name) (birthday :initarg :birthday)) (:index t)) => # (make-instance 'friend :name "Carlos" :birthday (encode-birthday '(1 1 1972))) (make-instance 'friend :name "Adriana" :birthday (encode-birthday '(24 4 1980))) (make-instance 'friend :name "Zaid" :birthday (encode-birthday '(14 8 1976))) NOW SOMEONE TRIPS OVER THE POWER CORD... Restart your LISP and do: (get-instances-by-class 'friends) => (# # # ) (mapclass #'(format t " name: ~A birthdate: ~A~%" (name friend) (birthday friend)) 'friend) name: Carlos birthdate: (1 1 1972) name: Adriana birthdate: (24 4 1980) name: Zaid birthdate: (14 8 1976) => (# # # ) Persistent Classes

3 PSET Class Indexing Persistent Slots BTree SerializerMemutils/UFFI MOP User API Data Store Interface and Utilities db-bdbdb-postmoderndb-clsqldb-lisp BerkeleyDBPostgreSQLSQLite DCM User API Internal Ready to integrate TBD 3rd party

4 Multi-platfom Supported by LISP: SBCL, ACL, LispWorks, OpenMCL Different Oses: Linux, Mac, Windows Works on 64 bit architectures Repository flexibility

5 Late binding of repository decisions Multiple Repositories (3 tested, but more should be possible via CL-SQL) Tested migration between repositories Repository usage and migration flexible enough that engineering decisions about repos are independent of Elephant

6 Repositories BDB: fast, not free for a website unless open-source Postgres: slower, liberal license, very solid and well-supported SQLite3: fast, good for protyping Start on X, move to Y

7 Indexing decisions changeable Don't optimize prematurely...index a slot when you need to Functional indexes provide lots of power

8 The Future Schema changes (changing a persistent classes slots) should be improved Pure-lisp solution would allow prototyping (and maybe more) with even less installation hassle Improving the serializer improves performance on every repository Better postgres usage with postmodern Query languages, Prevalence,.....


Download ppt "Elephant: Easy Persistence No ORMs at all Very easy to use APIs: btree, persistent sets, and CLOS integration Dynamic index creation on slots Functional."

Similar presentations


Ads by Google