[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. |