Author: toad
Date: 2008-05-20 14:52:30 +0000 (Tue, 20 May 2008)
New Revision: 19966

Modified:
   branches/db4o/freenet/src/freenet/node/Node.java
Log:
Embedded client/server for transactions.

Modified: branches/db4o/freenet/src/freenet/node/Node.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/Node.java    2008-05-20 12:49:52 UTC 
(rev 19965)
+++ branches/db4o/freenet/src/freenet/node/Node.java    2008-05-20 14:52:30 UTC 
(rev 19966)
@@ -29,6 +29,7 @@

 import com.db4o.Db4o;
 import com.db4o.ObjectContainer;
+import com.db4o.ObjectServer;
 import com.sleepycat.je.DatabaseException;
 import com.sleepycat.je.Environment;
 import com.sleepycat.je.EnvironmentConfig;
@@ -223,8 +224,12 @@
        /** db4o database for node and client layer.
         * Other databases can be created for the datastore (since its usage 
         * patterns and content are completely different), or for plugins (for 
-        * security reasons). */
-       final ObjectContainer db;
+        * security reasons).
+        * 
+        * This is an internal server, specific parts of the code can create
+        * ObjectContainer's from it. Be careful to refresh objects on any 
+        * long-lived container! */
+       final ObjectServer dbServer;

        /** Stats */
        public final NodeStats nodeStats;
@@ -708,12 +713,9 @@

                /* FIXME: this may throw if e.g. we ran out of disk space last 
time. 
                 * We need to back it up and auto-recover. */
-               /* For now, just a single transaction. 
-                * Switch to client-server mode later if we need it. 
-                * Clients have local caching, and need an explicit refresh on 
local 
-                * objects to get updates... so if we use client-server mode, 
we will 
-                * need to be careful. */
-               db = Db4o.openFile(new File(nodeDir, "node.db4o").toString());
+               /* Client-server mode. Refresh objects if you have a long-lived 
container! */
+               dbServer = Db4o.openServer(new File(nodeDir, 
"node.db4o").toString(), 0);
+               
                System.err.println("Opened database");

                // Boot ID
@@ -915,7 +917,7 @@

                shutdownHook.addLateJob(new Thread() {
                        public void run() {
-                               db.close();
+                               dbServer.close();
                        }
                });



Reply via email to