[mapguide-commits] r5773 -
sandbox/adsk/2.3r/Server/src/Services/Resource
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Wed May 11 00:15:41 EDT 2011
Author: hubu
Date: 2011-05-10 21:15:41 -0700 (Tue, 10 May 2011)
New Revision: 5773
Modified:
sandbox/adsk/2.3r/Server/src/Services/Resource/DbEnvironment.cpp
sandbox/adsk/2.3r/Server/src/Services/Resource/DbEnvironment.h
Log:
Fix the DB_RUNRECOVERY on Linux under stress test.
Modified: sandbox/adsk/2.3r/Server/src/Services/Resource/DbEnvironment.cpp
===================================================================
--- sandbox/adsk/2.3r/Server/src/Services/Resource/DbEnvironment.cpp 2011-05-10 15:48:30 UTC (rev 5772)
+++ sandbox/adsk/2.3r/Server/src/Services/Resource/DbEnvironment.cpp 2011-05-11 04:15:41 UTC (rev 5773)
@@ -42,12 +42,23 @@
m_dbEnv.set_error_stream(&std::cerr);
#endif
- m_dbEnv.set_cachesize(0, MG_CACHE_SIZE, 1);
- m_dbEnv.set_lg_bsize(MG_LOG_BUF_SIZE);
+ // Set the cache size based on the repository type
+ if(MgRepositoryType::Session == repositoryType)
+ {
+ // Session repository
+ m_dbEnv.set_cachesize(0, MG_SESSION_CACHE_SIZE, 1);
+ m_dbEnv.set_lg_bsize(MG_SESSION_LOG_BUF_SIZE);
+ }
+ else
+ {
+ // Library repository
+ m_dbEnv.set_cachesize(0, MG_LIBRARY_CACHE_SIZE, 1);
+ m_dbEnv.set_lg_bsize(MG_LIBRARY_LOG_BUF_SIZE);
+ }
+
m_dbEnv.set_timeout(MG_DB_ENV_TIMEOUT, DB_SET_LOCK_TIMEOUT);
m_dbEnv.set_timeout(MG_DB_ENV_TIMEOUT, DB_SET_TXN_TIMEOUT);
m_dbEnv.set_tx_max(MG_MAX_TRANSACTIONS);
- m_dbEnv.set_tx_max(40); // Set maximum number of allowed transactions. Default is 20
u_int32_t containerFlags = DB_CREATE|DB_THREAD|DBXML_NO_INDEX_NODES;
u_int32_t environmentFlags = DB_CREATE|DB_THREAD|DB_INIT_MPOOL;
Modified: sandbox/adsk/2.3r/Server/src/Services/Resource/DbEnvironment.h
===================================================================
--- sandbox/adsk/2.3r/Server/src/Services/Resource/DbEnvironment.h 2011-05-10 15:48:30 UTC (rev 5772)
+++ sandbox/adsk/2.3r/Server/src/Services/Resource/DbEnvironment.h 2011-05-11 04:15:41 UTC (rev 5773)
@@ -22,17 +22,19 @@
// All sizes must be in powers-of-two.
// TODO: Determine the best sizes to improve the Server performance.
-static const u_int32_t MG_KB = 1024;
-static const u_int32_t MG_MB = 1048576; // 1024^2
-static const u_int32_t MG_CACHE_SIZE = 32 * MG_MB;
-static const u_int32_t MG_DB_PAGE_SIZE = 32 * MG_KB;
-static const u_int32_t MG_DBXML_PAGE_SIZE = 32 * MG_KB;
-static const u_int32_t MG_LOG_BUF_SIZE = 12 * MG_MB;
-static const u_int32_t MG_MAX_TRANSACTIONS = 1000;
-static const u_int32_t MG_SESS_DB_PAGE_SIZE = 2 * MG_KB;
+static const u_int32_t MG_KB = 1024;
+static const u_int32_t MG_MB = 1048576; // 1024^2
+static const u_int32_t MG_LIBRARY_CACHE_SIZE = 32 * MG_MB;
+static const u_int32_t MG_SESSION_CACHE_SIZE = 2 * MG_MB;
+static const u_int32_t MG_DB_PAGE_SIZE = 32 * MG_KB;
+static const u_int32_t MG_DBXML_PAGE_SIZE = 32 * MG_KB;
+static const u_int32_t MG_LIBRARY_LOG_BUF_SIZE = 12 * MG_MB;
+static const u_int32_t MG_SESSION_LOG_BUF_SIZE = 1 * MG_MB;
+static const u_int32_t MG_MAX_TRANSACTIONS = 1000;
+static const u_int32_t MG_SESS_DB_PAGE_SIZE = 2 * MG_KB;
static const u_int32_t MG_SESS_DBXML_PAGE_SIZE = 512;
// Set lock and transaction timeout to 0.2 seconds
-static const u_int32_t MG_DB_ENV_TIMEOUT = 200000;
+static const u_int32_t MG_DB_ENV_TIMEOUT = 200000;
class MgDatabase;
More information about the mapguide-commits
mailing list