Update of /project/elephant/cvsroot/elephant
In directory clnet:/tmp/cvs-serv20360
Modified Files:
INSTALL TODO TUTORIAL ele-bdb.asd ele-clsql.asd
elephant-tests.asd
Log Message:
Remove all references to sleepycat; change to bdb db-bdb or
berkeley-db; passes all test for BDB and SQLite on Allegro/Mac OS/32-bit
--- /project/elephant/cvsroot/elephant/INSTALL 2006/11/11 06:27:37 1.18
+++ /project/elephant/cvsroot/elephant/INSTALL 2006/11/11 18:41:10 1.19
@@ -91,19 +91,14 @@
config.sexp
-to point to your local distribution of the Berkeley DB libraries
-
-Darwin / OS X
----------------
-You need to have the developer tools installed. In the Makefile and
-ele-bdb.lib there are commented-out lines showing settings that some
-users have used for OS X; if you are using that I assume you will
-have to comment out the appropriate lines and uncomment those examples.
+Which contains an alist providing string paths pointing to the root
+of the Berkeley DB distribution :berkeley-db-root, the library to load
+:berkeley-db-lib and the pthreads library if you're running linux :pthread-lib.
For Win32 (directions courtesy of Bill Clementson):
---------------------------------------------------
-Create an MSVC dll project and add src/db-bdb/libsleepycat.c,
-src/db-bdb/libsleepycat.def and the Berkeley DB libdb43.lib files
+Create an MSVC dll project and add src/db-bdb/libberkeley-db.c,
+src/db-bdb/libberkeley-db.def and the Berkeley DB libdb43.lib files
to the project (should be in the build_win32/release folder)
Add the Berkeley DB dbinc include files directory and the
@@ -114,7 +109,7 @@
Build the Elephant DLL file
Since you've statically included libdb43.lib inside
-libsleepycat.c, it may or may not be necessary to load
+libberkeley-db.c, it may or may not be necessary to load
libdb43.dll into Lisp (see below.)
@@ -140,7 +135,7 @@
To test the load process explicitly the following asdf files are
provided:
-if you are using Sleepycat / Berkeley DB, type:
+if you are using Berkeley DB, type:
(asdf:operate 'asdf:load-op :ele-bdb)
if you are using CL-SQL, type:
--- /project/elephant/cvsroot/elephant/TODO 2006/11/11 15:33:33 1.29
+++ /project/elephant/cvsroot/elephant/TODO 2006/11/11 18:41:10 1.30
@@ -3,8 +3,8 @@
Ongoing release plan notes:
-0.6.1 - performance, safety and portability (end of Summer?)
------------------------------------------------------------
+0.6.1 - performance, safety and portability
+--------------------------------------------
Bugs or Observations:
x 64-bit support (from Marco)
@@ -12,16 +12,14 @@
x MCL 1.1 unicode support; rationalize other lisp support for unicode
Stability:
-- Review all the NOTE comments in the code
- Remove build gensym warnings in sleepycat
-- Remove sleepycat name. Change sleepycat to db-bdb to reflect oracle ownership and avoid
- confusion for new users
- Delete persistent slot values from the slot store with remove-kv to ensure that
there's no data left lying around if you define then redefine a class and add
back a persistent slot name that you thought was deleted and it gets the old
value by default.
- Cleaner failure modes if operations are performed without repository or without
transaction or auto-commit (Both)
+- Review all the NOTE comments in the code
Store variables:
- Think through default *store-controller* vs. explicit parameter passing
@@ -96,6 +94,8 @@
stay around - probably indefinitely unless we GC (no, we'll resolve this with a
stop-and-copy GC - need to make migration bookkeeping more efficient)
x MCL type-declaration compatibility
+x Remove sleepycat name. Change sleepycat to db-bdb to reflect oracle ownership and avoid
+ confusion for new users
0.6.2 - Advanded work, low-hanging fruit (Fall '06)
--------------------------------------------------
--- /project/elephant/cvsroot/elephant/TUTORIAL 2006/02/15 01:54:07 1.7
+++ /project/elephant/cvsroot/elephant/TUTORIAL 2006/11/11 18:41:10 1.8
@@ -3,7 +3,7 @@
========
--------------------------------
-What is Sleepycat / Berkeley DB?
+What is Berkeley DB?
--------------------------------
When someone says "database," most people think of SQL
@@ -14,7 +14,7 @@
many features. While you don't need to understand Sleepycat
to use Elephant, reading the docs will certainly help you.
-http://www.sleepycat.com
+http://www.oracle.com/database/berkeley-db.html
---------------
Getting Started
@@ -27,7 +27,7 @@
Assuming you've managed to install Elephant properly,
-* if you are using Sleepycat / Berkeley DB, type:
+* if you are using Berkeley DB, type:
(asdf:operate 'asdf:load-op :ele-bdb)
* or if you are using CL-SQL, type:
@@ -56,7 +56,7 @@
The store controller holds the handles to the database
environment and tables, and some other bookkeeping. If for
some reason you need to run recovery on the database (see
-sleepycat docs) you can specify that with the :recover and
+Berkeley DB docs) you can specify that with the :recover and
:recover-fatal keys.
Alternatively,
@@ -250,7 +250,7 @@
Note that the database is read every time you access a slot.
This is a feature, not a bug, especially in concurrent
situations: you want the most recent commits, right?
-(Sleepycat will give isolation inside of transactions,
+(Berkeley DB will give isolation inside of transactions,
though.) In particular, if your slot value is not an
immediate value, reading will cons the value. Gets are not
an expensive operation (I can do a million reads in 30
@@ -315,7 +315,7 @@
The btrees class are to hash-tables as persistent-objects
are to ordinary objects. btrees have a hash-table-like
interface, but store their keys and values directy in a
-Sleepycat btree. Btrees may be persisted simply by their
+BDB btree. Btrees may be persisted simply by their
OID. Hence they have all the nice properties of persistent
objects: identity, fast serialization / deserialization, no
merge conflicts.....
@@ -345,13 +345,13 @@
Threading
---------
-Sleepycat plays well with threads and processes. The store
+Berkeley DB plays well with threads and processes. The store
controller is thread-safe by default, that is, can be shared
amongst threads. Transactions may not be shared amongst
threads except serially. One thing which is NOT thread and
process safe is recovery, which should be run when no one is
else is talking to the database environment. Consult the
-Sleepycat docs for more information.
+Berkeley DB docs for more information.
Elephant uses some specials to hold parameters and buffers.
If you're using a natively threaded lisp, you can initialize
@@ -391,12 +391,12 @@
* (db-env-set-flags (controller-environment *store-controller*) 1
:txn-nosync t)
-or look at other flags in the sleepycat docs. This will
+or look at other flags in the Berkeley DB docs. This will
greatly increase your throughput at the cost of some
durability; I get around a 100x improvement. This can be
recovered with judicious use of checkpointing and
replication, though this is currently not supported by
-Elephant -- see the sleepycat docs.
+Elephant -- see the Berkeley DB docs.
The serializer is definitely fast on fixnums, strings, and
persistent things. It is fairly fast but consing with
--- /project/elephant/cvsroot/elephant/ele-bdb.asd 2006/11/11 06:27:37 1.11
+++ /project/elephant/cvsroot/elephant/ele-bdb.asd 2006/11/11 18:41:10 1.12
@@ -45,8 +45,8 @@
(defclass bdb-c-source (elephant-c-source) ())
(defmethod compiler-options ((compiler (eql :gcc)) (c bdb-c-source) &key &allow-other-keys)
- (let* ((include (merge-pathnames (get-config-option :sleepycat-root c) "include"))
- (lib (merge-pathnames (get-config-option :sleepycat-root c) "lib")))
+ (let* ((include (merge-pathnames (get-config-option :berkeley-db-root c) "include"))
+ (lib (merge-pathnames (get-config-option :berkeley-db-root c) "lib")))
(append (list (format nil "-L~A" lib) (format nil "-I~A" include))
(call-next-method)
(list "-ldb"))))
@@ -55,7 +55,7 @@
(remove-if #'(lambda (x) (null (car x)))
(list
(cons (get-config-option :pthread-lib c) "pthread")
- (cons (get-config-option :sleepycat-lib c) "sleepycat"))))
+ (cons (get-config-option :berkeley-db-lib c) "berkeley-db"))))
;;
;; System definition
@@ -75,8 +75,8 @@
((:module :db-bdb
:components
((:file "package")
- (:bdb-c-source "libsleepycat")
- (:file "sleepycat")
+ (:bdb-c-source "libberkeley-db")
+ (:file "berkeley-db")
(:file "bdb-controller")
(:file "bdb-transactions")
(:file "bdb-collections"))
--- /project/elephant/cvsroot/elephant/ele-clsql.asd 2006/02/22 20:18:51 1.7
+++ /project/elephant/cvsroot/elephant/ele-clsql.asd 2006/11/11 18:41:10 1.8
@@ -53,7 +53,8 @@
:components
((:module :db-clsql
:components
- ((:file "sql-controller")
+ ((:file "package")
+ (:file "sql-controller")
(:file "sql-transaction")
(:file "sql-collections"))
:serial t))))
--- /project/elephant/cvsroot/elephant/elephant-tests.asd 2006/02/19 04:52:58 1.6
+++ /project/elephant/cvsroot/elephant/elephant-tests.asd 2006/11/11 18:41:10 1.7
@@ -74,6 +74,6 @@
:components
((:module :tests
:components
- ((:file "testsleepycat")))))
+ ((:file "testbdb")))))