Download presentation
Presentation is loading. Please wait.
Published byReynard Bishop Modified over 9 years ago
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,.....
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.