[complement-svn] SF.net SVN: complement:[1960] trunk/complement/explore/perf/DB/Berkeley
Status: Pre-Alpha
Brought to you by:
complement
|
From: <com...@us...> - 2008-08-14 18:25:34
|
Revision: 1960
http://complement.svn.sourceforge.net/complement/?rev=1960&view=rev
Author: complement
Date: 2008-08-14 18:25:31 +0000 (Thu, 14 Aug 2008)
Log Message:
-----------
BDB, test for C
Modified Paths:
--------------
trunk/complement/explore/perf/DB/Berkeley/Makefile
trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.cc
trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.h
trunk/complement/explore/perf/DB/Berkeley/suite.cc
Modified: trunk/complement/explore/perf/DB/Berkeley/Makefile
===================================================================
--- trunk/complement/explore/perf/DB/Berkeley/Makefile 2008-08-13 16:27:09 UTC (rev 1959)
+++ trunk/complement/explore/perf/DB/Berkeley/Makefile 2008-08-14 18:25:31 UTC (rev 1960)
@@ -1,4 +1,4 @@
-# -*- Makefile -*- Time-stamp: <08/07/31 15:43:19 yeti>
+# -*- Makefile -*- Time-stamp: <08/08/14 21:19:55 yeti>
SRCROOT := ../../..
Modified: trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.cc
===================================================================
--- trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.cc 2008-08-13 16:27:09 UTC (rev 1959)
+++ trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.cc 2008-08-14 18:25:31 UTC (rev 1960)
@@ -1,4 +1,4 @@
-// -*- C++ -*- Time-stamp: <08/08/13 13:28:22 yeti>
+// -*- C++ -*- Time-stamp: <08/08/14 21:19:44 yeti>
/*
* Copyright (c) 2008
@@ -13,6 +13,7 @@
#include <mt/thread>
#include <mt/mutex>
+#include <db.h>
#include <db_cxx.h>
#include <sys/stat.h>
@@ -20,6 +21,70 @@
int EXAM_IMPL(sleepycat_test::hash_open)
{
+ DB *DBref;
+ DB_ENV *DBenv;
+
+ int err = db_env_create( &DBenv, 0 );
+
+ if ( err ) {
+ return 1;
+ }
+
+ const char logDir[] = "./DB_logs";
+
+ mkdir( logDir, 0777 );
+
+ // DBenv->set_tmp_dir( DBenv, logDir );
+ DBenv->set_lg_dir( DBenv, logDir );
+ DBenv->set_flags( DBenv, DB_AUTO_COMMIT | DB_LOG_INMEMORY | DB_LOG_AUTOREMOVE, 1 );
+
+ err = DBenv->open( DBenv, ".", DB_INIT_TXN | DB_INIT_LOG | DB_INIT_MPOOL | DB_CREATE, 0 );
+
+ if ( err ) {
+ return 1;
+ }
+
+ err = db_create( &DBref, DBenv, 0 );
+
+ if ( err ) {
+ return 1;
+ }
+
+ // This should suffice for most users.
+
+ DBref->set_h_nelem( DBref, 30 );
+
+ // The BDB documentation says the fill factor should be
+ // (pagesize - 32) / (average_key_size + average_data_size + 8);
+ // For labels, average key size = sizeof(TId) = 16, average data size = 0,
+ // supposing 4K pages this gives us 169 1/3 for the fill factor.
+
+ DBref->set_h_ffactor( DBref, 150 );
+
+ err = DBref->open( DBref, 0, "tmp.db", 0, DB_HASH, DB_CREATE, 0664 );
+
+ if ( err ) {
+ return 1;
+ }
+
+ err = DBref->close( DBref, 0 );
+
+ DBenv->close( DBenv, 0 );
+
+ unlink( "tmp.db" );
+ unlink( "__db.001" );
+ unlink( "__db.002" );
+ unlink( "__db.003" );
+ unlink( "__db.004" );
+ unlink( "__db.005" );
+
+ rmdir( logDir );
+
+ return 0;
+}
+
+int EXAM_IMPL(sleepycat_test::hash_open_cxx)
+{
DbEnv env( 0 );
const char logDir[] = "./DB_logs";
Modified: trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.h
===================================================================
--- trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.h 2008-08-13 16:27:09 UTC (rev 1959)
+++ trunk/complement/explore/perf/DB/Berkeley/sc_perf_suite.h 2008-08-14 18:25:31 UTC (rev 1960)
@@ -1,4 +1,4 @@
-// -*- C++ -*- Time-stamp: <08/08/13 13:26:19 yeti>
+// -*- C++ -*- Time-stamp: <08/08/14 15:44:08 yeti>
/*
* Copyright (c) 2008
@@ -15,6 +15,7 @@
class sleepycat_test
{
public:
+ int EXAM_DECL(hash_open_cxx);
int EXAM_DECL(hash_open);
};
Modified: trunk/complement/explore/perf/DB/Berkeley/suite.cc
===================================================================
--- trunk/complement/explore/perf/DB/Berkeley/suite.cc 2008-08-13 16:27:09 UTC (rev 1959)
+++ trunk/complement/explore/perf/DB/Berkeley/suite.cc 2008-08-14 18:25:31 UTC (rev 1960)
@@ -1,4 +1,4 @@
-// -*- C++ -*- Time-stamp: <08/08/13 13:26:45 yeti>
+// -*- C++ -*- Time-stamp: <08/08/14 21:20:08 yeti>
/*
* Copyright (c) 2008
@@ -25,6 +25,7 @@
sleepycat_test st;
t.add( &sleepycat_test::hash_open, st, "Open DB with DB_HASH" );
+ t.add( &sleepycat_test::hash_open_cxx, st, "Open DB with DB_HASH, C++ interface" );
return t.girdle();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|