#At file:///home/cpowers/work/dev/dev-02/mysql/
2960 Christopher Powers 2009-01-14
Bug #35755, "Cannot create index on Falcon table(record memory exhausted)"
Revisions per code review
modified:
storage/falcon/Database.cpp
storage/falcon/Database.h
storage/falcon/ha_falcon.cpp
per-file messages:
storage/falcon/Database.cpp
Scavenge no longer commits system transactions.
No longer a need for 'signaled'.
storage/falcon/Database.h
Removed 'signaled'
storage/falcon/ha_falcon.cpp
Restored LOAD_AUTOCOMMIT_RECORDS to non-debug value
=== modified file 'storage/falcon/Database.cpp'
--- a/storage/falcon/Database.cpp 2009-01-15 04:12:42 +0000
+++ b/storage/falcon/Database.cpp 2009-01-15 05:58:30 +0000
@@ -1723,7 +1723,7 @@ void Database::validate(int optionMask)
Log::debug ("Database::validate: validation complete\n");
}
-void Database::scavenge(bool signaled)
+void Database::scavenge(void)
{
signalCardinality();
@@ -1756,7 +1756,7 @@ void Database::scavenge(bool signaled)
transactionManager->purgeTransactions();
// Scavenge the record cache
- scavengeRecords(signaled);
+ scavengeRecords();
// Scavenge expired licenses
@@ -1784,13 +1784,8 @@ void Database::scavenge(bool signaled)
backLog->reportStatistics();
}
-void Database::scavengeRecords(bool signaled)
+void Database::scavengeRecords(void)
{
- // Commit pending system transactions before proceeding
-
- if (!signaled && systemConnection->transaction && !syncSysDDL.isLocked())
- commitSystemTransaction();
-
Sync syncScavenger(&syncScavenge, "Database::scavengeRecords(Scavenge)");
syncScavenger.lock(Exclusive);
@@ -1919,22 +1914,18 @@ void Database::scavengerThreadMain(void
void Database::scavengerThreadMain(void)
{
- bool signaled = false;
-
Thread *thread = Thread::getThread("Database::scavengerThreadMain");
thread->sleep(1000);
while (!thread->shutdownInProgress)
{
- scavenge(signaled);
- signaled = false;
+ scavenge();
if (recordDataPool->activeMemory < recordScavengeThreshold)
{
INTERLOCKED_INCREMENT(scavengerThreadSleeping);
thread->sleep();
- signaled = scavengerThreadSignaled != 0;
scavengerThreadSignaled = 0;
INTERLOCKED_DECREMENT(scavengerThreadSleeping);
}
=== modified file 'storage/falcon/Database.h'
--- a/storage/falcon/Database.h 2009-01-15 04:12:42 +0000
+++ b/storage/falcon/Database.h 2009-01-15 05:58:30 +0000
@@ -132,7 +132,7 @@ public:
const char* fetchTemplate (JString applicationName, JString templateName, TemplateContext *context);
void licenseCheck();
void serverOperation (int op, Parameters *parameters);
- void scavengeRecords(bool signaled = false);
+ void scavengeRecords(void);
void pruneRecords(RecordScavenge* recordScavenge);
void retireRecords(RecordScavenge* recordScavenge);
int getMemorySize (const char *string);
@@ -159,7 +159,7 @@ public:
static void scavengerThreadMain(void * database);
void scavengerThreadMain(void);
void scavengerThreadWakeup(void);
- void scavenge(bool signaled = false);
+ void scavenge(void);
void validate (int optionMask);
Role* findRole(const char *schemaName, const char * roleName);
User* findUser (const char *account);
=== modified file 'storage/falcon/ha_falcon.cpp'
--- a/storage/falcon/ha_falcon.cpp 2009-01-15 04:12:42 +0000
+++ b/storage/falcon/ha_falcon.cpp 2009-01-15 05:58:30 +0000
@@ -67,7 +67,7 @@
#ifdef DEBUG_BACKLOG
static const uint LOAD_AUTOCOMMIT_RECORDS = 10000000;
#else
-static const uint LOAD_AUTOCOMMIT_RECORDS = 100000;
+static const uint LOAD_AUTOCOMMIT_RECORDS = 10000;
#endif
static const char falcon_hton_name[] = "Falcon";
| Thread |
|---|
| • bzr commit into mysql-6.0-falcon-team branch (cpowers:2960) Bug#35755 | Christopher Powers | 15 Jan |