2755 Kevin Lewis 2008-07-24
Code Cleanup.
Make sure all SyncObjects are named correctly.
Make sure all instances of Sync have a unique name.
Rename some SyncObject variables for consistency.
Comment SerialLog::getPageState since it is not used.
Replace the variable name 'where' with 'location'
since it is a reserved word.
If TransactionManager::committedTransactions is locked
while TransactionManager::activeTransactions is locked,
committedTransactions must be locked first.
modified:
storage/falcon/BDB.cpp
storage/falcon/BDB.h
storage/falcon/Cache.cpp
storage/falcon/CollationManager.cpp
storage/falcon/CompiledStatement.cpp
storage/falcon/Connection.cpp
storage/falcon/DatabaseCopy.cpp
storage/falcon/Dbb.cpp
storage/falcon/Dbb.h
storage/falcon/DeferredIndex.cpp
storage/falcon/IO.cpp
storage/falcon/Index.cpp
storage/falcon/Inversion.cpp
storage/falcon/RecoveryObjects.cpp
storage/falcon/Repository.cpp
storage/falcon/RepositoryManager.cpp
storage/falcon/RepositoryVolume.cpp
storage/falcon/ResultSet.cpp
storage/falcon/Role.cpp
storage/falcon/SRLPrepare.cpp
storage/falcon/SRLRollback.cpp
storage/falcon/Scheduler.cpp
storage/falcon/SectorBuffer.cpp
storage/falcon/SectorCache.cpp
storage/falcon/SequenceManager.cpp
storage/falcon/SerialLog.cpp
storage/falcon/SerialLog.h
storage/falcon/Server.cpp
storage/falcon/Statement.cpp
storage/falcon/StorageDatabase.cpp
storage/falcon/StorageDatabase.h
storage/falcon/StorageHandler.cpp
storage/falcon/SymbolManager.cpp
storage/falcon/Sync.cpp
storage/falcon/Sync.h
storage/falcon/SyncObject.cpp
storage/falcon/SyncObject.h
storage/falcon/Table.cpp
storage/falcon/TableSpaceManager.cpp
storage/falcon/Thread.cpp
storage/falcon/Threads.cpp
storage/falcon/Transaction.cpp
storage/falcon/Transaction.h
storage/falcon/TransactionManager.cpp
=== modified file 'storage/falcon/BDB.cpp'
--- a/storage/falcon/BDB.cpp 2008-05-08 20:37:28 +0000
+++ b/storage/falcon/BDB.cpp 2008-07-24 08:45:03 +0000
@@ -57,8 +57,11 @@ Bdb::Bdb()
priorDirty = nextDirty = NULL;
flushIt = false;
dbb = NULL;
+ syncObject.setName("Bdb::syncObject");
+ syncWrite.setName("Bdb::syncWrite");
#ifdef COLLECT_BDB_HISTORY
+ syncHistory.setName("Bdb::syncHistory");
lockType = None;
initCount = 0;
historyCount = 0;
@@ -203,7 +206,7 @@ void Bdb::initHistory()
void Bdb::addHistory(int delta, const char *file, int line)
{
- Sync sync (&historySyncObject, "Bdb::addHistory");
+ Sync sync (&syncHistory, "Bdb::addHistory");
sync.lock (Exclusive);
unsigned int historyOffset = historyCount++ % MAX_BDB_HISTORY;
=== modified file 'storage/falcon/BDB.h'
--- a/storage/falcon/BDB.h 2008-05-10 04:18:41 +0000
+++ b/storage/falcon/BDB.h 2008-07-24 08:45:03 +0000
@@ -103,7 +103,7 @@ public:
volatile INTERLOCK_TYPE useCount;
#ifdef COLLECT_BDB_HISTORY
- SyncObject historySyncObject;
+ SyncObject syncHistory;
uint initCount;
uint historyCount;
struct bdb_history history[MAX_BDB_HISTORY];
=== modified file 'storage/falcon/Cache.cpp'
--- a/storage/falcon/Cache.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/Cache.cpp 2008-07-24 08:45:03 +0000
@@ -89,9 +89,12 @@ Cache::Cache(Database *db, int pageSz, i
bufferHunks = new char* [numberHunks];
memset(bufferHunks, 0, numberHunks * sizeof(char*));
syncObject.setName("Cache::syncObject");
- syncDirty.setName("Cache::syncDirty");
syncFlush.setName("Cache::syncFlush");
+ syncDirty.setName("Cache::syncDirty");
+ syncThreads.setName("Cache::syncThreads");
syncWait.setName("Cache::syncWait");
+ bufferQueue.syncObject.setName("Cache::bufferQueue.syncObject");
+
flushBitmap = new Bitmap;
numberIoThreads = falcon_io_threads;
ioThreads = new Thread*[numberIoThreads];
@@ -597,7 +600,7 @@ void Cache::writePage(Bdb *bdb, int type
if (dbb->shadows)
{
- Sync sync (&dbb->cloneSyncObject, "Cache::writePage(2)");
+ Sync sync (&dbb->syncClone, "Cache::writePage(2)");
sync.lock (Shared);
for (DatabaseCopy *shadow = dbb->shadows; shadow; shadow = shadow->next)
@@ -667,7 +670,7 @@ void Cache::flush(Dbb *dbb)
{
//Sync sync (&syncDirty, "Cache::flush(1)");
//sync.lock (Exclusive);
- Sync sync (&syncObject, "Cache::flush(2)");
+ Sync sync (&syncObject, "Cache::flush(3)");
sync.lock (Shared);
for (Bdb *bdb = bdbs; bdb < endBdbs; ++bdb)
=== modified file 'storage/falcon/CollationManager.cpp'
--- a/storage/falcon/CollationManager.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/CollationManager.cpp 2008-07-24 08:45:03 +0000
@@ -42,6 +42,7 @@ CollationManager::CollationManager()
{
memset(hashTable, 0, sizeof(hashTable));
add(&collationCaseless);
+ syncObject.setName("CollationManager::syncObject");
}
CollationManager::~CollationManager()
=== modified file 'storage/falcon/CompiledStatement.cpp'
--- a/storage/falcon/CompiledStatement.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/CompiledStatement.cpp 2008-07-24 08:45:03 +0000
@@ -96,6 +96,7 @@ CompiledStatement::CompiledStatement(Con
firstInstance = lastInstance = NULL;
select = NULL;
parse = NULL;
+ syncObject.setName("CompiledStatement::syncObject");
}
CompiledStatement::~CompiledStatement()
=== modified file 'storage/falcon/Connection.cpp'
--- a/storage/falcon/Connection.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/Connection.cpp 2008-07-24 08:45:03 +0000
@@ -89,7 +89,7 @@ static Server *server;
static bool panicShutdown;
static Registry registry;
-static SyncObject databaseList;
+static SyncObject syncDatabaseList;
static const char *ddl [] = {
"grant all on system.sequences to %s",
@@ -169,6 +169,9 @@ void Connection::init(Configuration *con
isolationLevel = TRANSACTION_CONSISTENT_READ;
mySqlThreadId = 0;
currentStatement = NULL;
+ syncObject.setName("Connection::syncObject");
+ syncResultSets.setName("Connection::syncResultSets");
+ syncDatabaseList.setName("Connection::syncDatabaseList");
}
Connection::~Connection()
@@ -968,7 +971,7 @@ void Connection::createDatabase(const ch
const char *password = parameters->findValue ("password", "");
char dbFileName [1024];
const char *dbFile = registry.findDatabase (dbName, sizeof (dbFileName), dbFileName);
- Sync sync (&databaseList, "Connection::createDatabase(1)");
+ Sync sync (&syncDatabaseList, "Connection::createDatabase(1)");
sync.lock (Exclusive);
if (dbFile)
@@ -1027,7 +1030,10 @@ Database* Connection::createDatabase(con
if (database)
throw SQLEXCEPTION (CONNECTION_ERROR, "database is already open");
- Sync sync (&databaseList, "Connection::createDatabase(2)");
+ if (!firstDatabase)
+ syncDatabaseList.setName("Connection::syncDatabaseList");
+
+ Sync sync (&syncDatabaseList, "Connection::createDatabase(2)");
sync.lock (Exclusive);
#ifndef STORAGE_ENGINE
@@ -1617,7 +1623,7 @@ ResultList* Connection::findResultList(i
Database* Connection::getDatabase(const char* dbName, const char* dbFileName, Threads* threads)
{
- Sync sync (&databaseList, "Connection::getDatabase");
+ Sync sync (&syncDatabaseList, "Connection::getDatabase");
sync.lock (Shared);
Database *db;
@@ -1665,7 +1671,7 @@ void Connection::dropDatabase()
if (!database)
throw SQLEXCEPTION (CONNECTION_ERROR, "database isn't open");
- Sync sync (&databaseList, "Connection::dropDatabase");
+ Sync sync (&syncDatabaseList, "Connection::dropDatabase");
sync.lock (Exclusive);
unlink(database);
detachDatabase();
=== modified file 'storage/falcon/DatabaseCopy.cpp'
--- a/storage/falcon/DatabaseCopy.cpp 2007-09-20 15:44:25 +0000
+++ b/storage/falcon/DatabaseCopy.cpp 2008-07-24 08:45:03 +0000
@@ -31,6 +31,7 @@ DatabaseCopy::DatabaseCopy(Dbb *db)
rewrittenPages = NULL;
highWater = 0;
atEnd = false;
+ syncObject.setName("DatabaseCopy::syncObject");
}
DatabaseCopy::~DatabaseCopy(void)
=== modified file 'storage/falcon/Dbb.cpp'
--- a/storage/falcon/Dbb.cpp 2008-07-17 13:52:17 +0000
+++ b/storage/falcon/Dbb.cpp 2008-07-24 08:45:03 +0000
@@ -89,6 +89,8 @@ Dbb::Dbb(Database *dbase)
tableSpaceSectionId = 0;
tableSpaceId = 0;
noLog = false;
+ syncClone.setName("Dbb::syncClone");
+ syncSequences.setName("Dbb::syncSequences");
}
@@ -749,7 +751,7 @@ Bdb* Dbb::getSequencePage(int sequenceId
else
***/
{
- Sync sync(&sequencesSyncObject, "Dbb::getSequencePage");
+ Sync sync(&syncSequences, "Dbb::getSequencePage");
sync.lock(Shared);
int sequencePageSequence = sequenceId / sequencesPerPage;
int32 sequencePageNumber = sequencePages.get(sequencePageSequence);
@@ -970,7 +972,7 @@ void Dbb::cloneFile(Database *database,
/***
void Dbb::cloneFile(DatabaseClone *shadow, bool isShadow)
{
- Sync sync (&cloneSyncObject, "Dbb::cloneFile(2)");
+ Sync sync (&syncClone, "Dbb::cloneFile(2)");
sync.lock (Exclusive);
shadow->next = shadows;
shadows = shadow;
@@ -1023,7 +1025,7 @@ void Dbb::cloneFile(DatabaseClone *shado
bool Dbb::deleteShadow(DatabaseCopy *shadow)
{
- Sync sync (&cloneSyncObject, "Dbb::deleteShadow");
+ Sync sync (&syncClone, "Dbb::deleteShadow");
sync.lock (Exclusive);
for (DatabaseCopy **ptr = &shadows; *ptr; ptr = &(*ptr)->next)
@@ -1352,7 +1354,7 @@ void Dbb::upgradeSequenceSection(void)
void Dbb::addShadow(DatabaseCopy* shadow)
{
- Sync sync (&cloneSyncObject, "Dbb::addShadow");
+ Sync sync (&syncClone, "Dbb::addShadow");
sync.lock (Exclusive);
shadow->next = shadows;
shadows = shadow;
=== modified file 'storage/falcon/Dbb.h'
--- a/storage/falcon/Dbb.h 2008-07-17 13:52:17 +0000
+++ b/storage/falcon/Dbb.h 2008-07-24 08:45:03 +0000
@@ -61,11 +61,11 @@ static const int FillLevels = 5;
struct SectionAnalysis
{
- int32 recordLocatorPages;
- int32 dataPages;
- int32 overflowPages;
- int32 spaceAvailable;
- int32 records;
+ int32 recordLocatorPages;
+ int32 dataPages;
+ int32 overflowPages;
+ int32 spaceAvailable;
+ int32 records;
};
struct IndexAnalysis
@@ -214,8 +214,8 @@ public:
HdrState priorState;
Inversion *inversion;
DatabaseCopy *shadows;
- SyncObject cloneSyncObject;
- SyncObject sequencesSyncObject;
+ SyncObject syncClone;
+ SyncObject syncSequences;
SerialLog *serialLog;
JString logRoot;
SparseArray<int32, 100> sequencePages;
=== modified file 'storage/falcon/DeferredIndex.cpp'
--- a/storage/falcon/DeferredIndex.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/DeferredIndex.cpp 2008-07-24 08:45:03 +0000
@@ -60,6 +60,7 @@ DeferredIndex::DeferredIndex(Index *idx,
haveMinValue = true;
haveMaxValue = true;
window = NULL;
+ syncObject.setName("DeferredIndex::syncObject");
}
DeferredIndex::~DeferredIndex(void)
=== modified file 'storage/falcon/IO.cpp'
--- a/storage/falcon/IO.cpp 2008-07-17 13:52:17 +0000
+++ b/storage/falcon/IO.cpp 2008-07-24 08:45:03 +0000
@@ -133,6 +133,7 @@ IO::IO()
forceFsync = true;
fatalError = false;
memset(writeTypes, 0, sizeof(writeTypes));
+ syncObject.setName("IO::syncObject");
}
IO::~IO()
=== modified file 'storage/falcon/Index.cpp'
--- a/storage/falcon/Index.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/Index.cpp 2008-07-24 08:45:03 +0000
@@ -107,6 +107,10 @@ void Index::init(Table *tbl, const char
DIHashTable = NULL;
DIHashTableCounts = 0;
DIHashTableSlotsUsed = 0;
+
+ syncDIHash.setName("Index::syncDIHash");
+ syncUnique.setName("Index::syncUnique");
+ deferredIndexes.syncObject.setName("Index::deferredIndexes.syncObject");
}
Index::~Index()
=== modified file 'storage/falcon/Inversion.cpp'
--- a/storage/falcon/Inversion.cpp 2008-02-26 20:18:33 +0000
+++ b/storage/falcon/Inversion.cpp 2008-07-24 08:45:03 +0000
@@ -61,6 +61,7 @@ Inversion::Inversion(Dbb *db)
runs = 0;
inserting = true;
state = 0;
+ syncObject.setName("Inversion::syncObject");
}
Inversion::~Inversion()
=== modified file 'storage/falcon/RecoveryObjects.cpp'
--- a/storage/falcon/RecoveryObjects.cpp 2008-07-18 21:24:52 +0000
+++ b/storage/falcon/RecoveryObjects.cpp 2008-07-24 08:45:03 +0000
@@ -40,6 +40,8 @@ RecoveryObjects::RecoveryObjects(SerialL
{
serialLog = log;
memset(recoveryObjects, 0, sizeof(recoveryObjects));
+ for (int n = 0; n < RPG_HASH_SIZE; n++)
+ syncArray[n].setName("RecoveryObjects::syncArray");
}
RecoveryObjects::~RecoveryObjects()
@@ -103,10 +105,10 @@ static inline RecoveryPage * findInHashB
for (RecoveryPage *object = head ; object; object = object->collision)
if (object->objectNumber == objectNumber && object->tableSpaceId == tableSpaceId)
return object;
+
return NULL;
}
-
RecoveryPage* RecoveryObjects::findRecoveryObject(int objectNumber, int tableSpaceId)
{
int slot = objectNumber % RPG_HASH_SIZE;
=== modified file 'storage/falcon/Repository.cpp'
--- a/storage/falcon/Repository.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/Repository.cpp 2008-07-24 08:45:03 +0000
@@ -61,6 +61,7 @@ Repository::Repository(const char *repos
setRollover (rollovers);
memset (volumes, 0, sizeof (volumes));
+ syncObject.setName("Repository::syncObject");
}
Repository::~Repository()
=== modified file 'storage/falcon/RepositoryManager.cpp'
--- a/storage/falcon/RepositoryManager.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/RepositoryManager.cpp 2008-07-24 08:45:03 +0000
@@ -46,6 +46,7 @@ RepositoryManager::RepositoryManager(Dat
{
database = db;
memset (repositories, 0, sizeof (repositories));
+ syncObject.setName("RepositoryManager::syncObject");
}
RepositoryManager::~RepositoryManager()
=== modified file 'storage/falcon/RepositoryVolume.cpp'
--- a/storage/falcon/RepositoryVolume.cpp 2008-07-17 13:52:17 +0000
+++ b/storage/falcon/RepositoryVolume.cpp 2008-07-24 08:45:03 +0000
@@ -75,6 +75,7 @@ RepositoryVolume::RepositoryVolume(Repos
lastAccess = 0;
rootPage = 0;
section = NULL;
+ syncObject.setName("RepositoryVolume::syncObject");
}
RepositoryVolume::~RepositoryVolume()
=== modified file 'storage/falcon/ResultSet.cpp'
--- a/storage/falcon/ResultSet.cpp 2007-09-20 15:44:25 +0000
+++ b/storage/falcon/ResultSet.cpp 2008-07-24 08:45:03 +0000
@@ -96,6 +96,7 @@ void ResultSet::init(int count)
javaStatementCount = 0;
connection = NULL;
database = NULL;
+ syncObject.setName("ResultSet::syncObject");
}
ResultSet::~ResultSet()
=== modified file 'storage/falcon/Role.cpp'
--- a/storage/falcon/Role.cpp 2008-03-03 18:40:17 +0000
+++ b/storage/falcon/Role.cpp 2008-07-24 08:45:03 +0000
@@ -44,6 +44,7 @@ Role::Role(Database *db, const char* rol
setName (roleSchema, roleName);
useCount = 1;
memset (privileges, 0, sizeof (privileges));
+ syncObject.setName("Role::syncObject");
}
Role::~Role()
=== modified file 'storage/falcon/SRLPrepare.cpp'
--- a/storage/falcon/SRLPrepare.cpp 2007-12-02 20:17:29 +0000
+++ b/storage/falcon/SRLPrepare.cpp 2008-07-24 08:45:03 +0000
@@ -43,7 +43,7 @@ SRLPrepare::~SRLPrepare()
void SRLPrepare::append(TransId transId, int xidLength, const UCHAR *xid)
{
- START_RECORD(srlPrepare, "");
+ START_RECORD(srlPrepare, "SRLPrepare::append");
putInt(transId);
putInt(xidLength);
putData(xidLength, xid);
=== modified file 'storage/falcon/SRLRollback.cpp'
--- a/storage/falcon/SRLRollback.cpp 2007-09-20 15:44:25 +0000
+++ b/storage/falcon/SRLRollback.cpp 2008-07-24 08:45:03 +0000
@@ -40,7 +40,7 @@ SRLRollback::~SRLRollback()
void SRLRollback::append(TransId transId, bool updateTransaction)
{
- START_RECORD(srlRollback, "");
+ START_RECORD(srlRollback, "SRLRollback::append");
putInt(transId);
uint64 commitBlockNumber = log->nextBlockNumber;
SerialLogTransaction *transaction = log->findTransaction(transId);
=== modified file 'storage/falcon/Scheduler.cpp'
--- a/storage/falcon/Scheduler.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/Scheduler.cpp 2008-07-24 08:45:03 +0000
@@ -66,6 +66,7 @@ Scheduler::Scheduler(Database *db)
events = NULL;
useCount = 1;
thread = NULL;
+ syncObject.setName("Scheduler::syncObject");
}
Scheduler::~Scheduler()
=== modified file 'storage/falcon/SectorBuffer.cpp'
--- a/storage/falcon/SectorBuffer.cpp 2008-07-10 19:00:14 +0000
+++ b/storage/falcon/SectorBuffer.cpp 2008-07-24 08:45:03 +0000
@@ -25,6 +25,7 @@ SectorBuffer::SectorBuffer()
{
activeLength = 0;
sectorNumber = -1;
+ syncObject.setName("SectorBuffer::syncObject");
}
SectorBuffer::~SectorBuffer(void)
=== modified file 'storage/falcon/SectorCache.cpp'
--- a/storage/falcon/SectorCache.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/SectorCache.cpp 2008-07-24 08:45:03 +0000
@@ -46,6 +46,8 @@ SectorCache::SectorCache(int numBuffers,
buffer->cache = this;
buffer->buffer = p;
}
+
+ syncObject.setName("SectorCache::syncObject");
}
SectorCache::~SectorCache(void)
=== modified file 'storage/falcon/SequenceManager.cpp'
--- a/storage/falcon/SequenceManager.cpp 2008-03-03 18:40:17 +0000
+++ b/storage/falcon/SequenceManager.cpp 2008-07-24 08:45:03 +0000
@@ -54,6 +54,7 @@ SequenceManager::SequenceManager(Databas
{
database = db;
memset (sequences, 0, sizeof (sequences));
+ syncObject.setName("SequenceManager::syncObject");
}
SequenceManager::~SequenceManager()
=== modified file 'storage/falcon/SerialLog.cpp'
--- a/storage/falcon/SerialLog.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/SerialLog.cpp 2008-07-24 08:45:03 +0000
@@ -125,7 +125,9 @@ SerialLog::SerialLog(Database *db, JStri
syncIndexes.setName("SerialLog::syncIndexes");
syncGopher.setName("SerialLog::syncGopher");
syncUpdateStall.setName("SerialLog::syncUpdateStall");
- pending.syncObject.setName("SerialLog::pending transactions");
+ pending.syncObject.setName("SerialLog::pending.syncObject");
+ inactions.syncObject.setName("SerialLog::inactions.syncObject");
+ running.syncObject.setName("SerialLog::running.syncObject");
gophers = NULL;
wantToSerializeGophers = 0;
serializeGophers = 0;
@@ -1292,11 +1294,12 @@ bool SerialLog::indexInUse(int indexId,
TableSpaceInfo *info = getTableSpaceInfo(tableSpaceId);
return info->indexUseVector.get(indexId) > 0;
}
-
+/*
int SerialLog::getPageState(int32 pageNumber, int tableSpaceId)
{
return recoveryPages->getCurrentState(pageNumber, tableSpaceId);
}
+*/
void SerialLog::redoFreePage(int32 pageNumber, int tableSpaceId)
{
=== modified file 'storage/falcon/SerialLog.h'
--- a/storage/falcon/SerialLog.h 2008-07-09 19:23:23 +0000
+++ b/storage/falcon/SerialLog.h 2008-07-24 08:45:03 +0000
@@ -132,7 +132,7 @@ public:
bool bumpSectionIncarnation (int sectionId, int tableSpaceId, int state);
bool bumpPageIncarnation (int32 pageNumber, int tableSpaceId, int state);
- int getPageState(int32 pageNumber, int tableSpaceId);
+// int getPageState(int32 pageNumber, int tableSpaceId);
void redoFreePage(int32 pageNumber, int tableSpaceId);
bool indexInUse(int indexId, int tableSpaceId);
=== modified file 'storage/falcon/Server.cpp'
--- a/storage/falcon/Server.cpp 2007-09-20 15:44:25 +0000
+++ b/storage/falcon/Server.cpp 2008-07-24 08:45:03 +0000
@@ -72,6 +72,7 @@ Server::Server(Server *server, Protocol
protocol = proto;
threads = NULL;
+ syncObject.setName("Server::syncObject");
}
Server::Server(int requestedPort, const char *configFileName)
=== modified file 'storage/falcon/Statement.cpp'
--- a/storage/falcon/Statement.cpp 2008-07-17 13:52:17 +0000
+++ b/storage/falcon/Statement.cpp 2008-07-24 08:45:03 +0000
@@ -144,6 +144,7 @@ Statement::Statement(Connection *pConnec
special = false;
active = false;
memset (&stats, 0, sizeof (stats));
+ syncObject.setName("Statement::syncObject");
}
Statement::~Statement()
=== modified file 'storage/falcon/StorageDatabase.cpp'
--- a/storage/falcon/StorageDatabase.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/StorageDatabase.cpp 2008-07-24 08:45:03 +0000
@@ -100,6 +100,8 @@ StorageDatabase::StorageDatabase(Storage
//SyncTest syncTest;
//syncTest.test();
}
+ syncObject.setName("StorageDatabase::syncObject");
+ syncTrace.setName("StorageDatabase::syncTrace");
}
StorageDatabase::~StorageDatabase(void)
@@ -1206,7 +1208,7 @@ void StorageDatabase::clearTransactions(
{
#ifdef TRACE_TRANSACTIONS
- Sync sync(&traceSyncObject, "StorageDatabase::clearTransactions");
+ Sync sync(&syncTrace, "StorageDatabase::clearTransactions");
sync.lock(Exclusive);
Statement *statement = masterConnection->createStatement();
statement->execute(traceTable);
@@ -1224,7 +1226,7 @@ void StorageDatabase::traceTransaction(i
{
try
{
- Sync sync(&traceSyncObject, "StorageDatabase::traceTransaction");
+ Sync sync(&syncTrace, "StorageDatabase::traceTransaction");
sync.lock(Exclusive);
char buffer [10000];
int length = stream->getSegment(0, sizeof(buffer) - 1, buffer);
=== modified file 'storage/falcon/StorageDatabase.h'
--- a/storage/falcon/StorageDatabase.h 2008-07-09 04:38:02 +0000
+++ b/storage/falcon/StorageDatabase.h 2008-07-24 08:45:03 +0000
@@ -111,7 +111,7 @@ public:
StorageDatabase *next;
StorageHandler *storageHandler;
SyncObject syncObject;
- SyncObject traceSyncObject;
+ SyncObject syncTrace;
User *user;
PreparedStatement *lookupIndexAlias;
PreparedStatement *insertTrace;
=== modified file 'storage/falcon/StorageHandler.cpp'
--- a/storage/falcon/StorageHandler.cpp 2008-07-18 08:15:54 +0000
+++ b/storage/falcon/StorageHandler.cpp 2008-07-24 08:45:03 +0000
@@ -37,8 +37,6 @@
#include "Dbb.h"
#include "Database.h"
#include "TableSpaceManager.h"
-
-
#define DICTIONARY_ACCOUNT "mysql"
#define DICTIONARY_PW "mysql"
@@ -125,6 +123,9 @@ StorageHandler::StorageHandler(int lockS
databaseList = NULL;
defaultDatabase = NULL;
initialized = false;
+ syncObject.setName("StorageHandler::syncObject");
+ hashSyncObject.setName("StorageHandler::hashSyncObject");
+ dictionarySyncObject.setName("StorageHandler::dictionarySyncObject");
}
StorageHandler::~StorageHandler(void)
=== modified file 'storage/falcon/SymbolManager.cpp'
--- a/storage/falcon/SymbolManager.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/SymbolManager.cpp 2008-07-24 08:45:03 +0000
@@ -55,6 +55,7 @@ SymbolManager::SymbolManager()
sections->next = NULL;
next = sections->space;
memset (hashTable, 0, sizeof (hashTable));
+ syncObject.setName("SymbolManager::syncObject");
}
SymbolManager::~SymbolManager()
=== modified file 'storage/falcon/Sync.cpp'
--- a/storage/falcon/Sync.cpp 2007-10-31 20:06:07 +0000
+++ b/storage/falcon/Sync.cpp 2008-07-24 08:45:03 +0000
@@ -37,7 +37,7 @@ Sync::Sync(SynchronizationObject *obj, c
ASSERT (obj);
state = None;
syncObject = obj;
- where = fromWhere;
+ location = fromWhere;
prior = NULL;
marked = NULL;
}
@@ -70,7 +70,7 @@ void Sync::lock(LockType type, int timeo
/***
void Sync::lock(LockType type, const char *fromWhere)
{
- where = fromWhere;
+ location = fromWhere;
lock(type);
}
***/
@@ -110,7 +110,7 @@ void Sync::findLocks(LinkedList &threads
void Sync::print(const char *label)
{
LOG_DEBUG ("%s %s state %d (%d) syncObject %p\n",
- label, where, state, request, syncObject);
+ label, location, state, request, syncObject);
}
void Sync::mark(const char* text)
=== modified file 'storage/falcon/Sync.h'
--- a/storage/falcon/Sync.h 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/Sync.h 2008-07-24 08:45:03 +0000
@@ -31,7 +31,7 @@ class LinkedList;
class Sync
{
public:
- Sync(SynchronizationObject *obj, const char *where);
+ Sync(SynchronizationObject *obj, const char *location);
virtual ~Sync();
void print (const char* label);
@@ -40,14 +40,14 @@ public:
//void print(int level);
void setObject (SynchronizationObject *obj);
void unlock();
- void lock (LockType type);
+ void lock(LockType type);
void lock(LockType type, int timeout);
SynchronizationObject *syncObject;
LockType state;
LockType request;
Sync *prior;
- const char *where;
+ const char *location;
const char *marked;
void mark(const char* text);
};
=== modified file 'storage/falcon/SyncObject.cpp'
--- a/storage/falcon/SyncObject.cpp 2008-07-08 16:01:41 +0000
+++ b/storage/falcon/SyncObject.cpp 2008-07-24 08:45:03 +0000
@@ -117,7 +117,7 @@ SyncObject::SyncObject()
exclusiveCount = 0;
waitCount = 0;
queueLength = 0;
- where = NULL;
+ location = NULL;
name = NULL;
objectId = INTERLOCKED_INCREMENT(nextSyncObjectId);
@@ -146,7 +146,7 @@ void SyncObject::lock(Sync *sync, LockTy
#ifdef TRACE_SYNC_OBJECTS
if (sync)
- where = sync->where;
+ location = sync->location;
#endif
// Shared case
@@ -313,7 +313,7 @@ void SyncObject::lock(Sync *sync, LockTy
#ifdef TRACE_SYNC_OBJECTS
if (sync)
- where = sync->where;
+ location = sync->location;
#endif
if (type == Shared)
@@ -979,7 +979,7 @@ void SyncObject::frequentStaller(Thread
Sync *lockPending = thread->lockPending;
if (sync)
- LOG_DEBUG("Frequent stall from %s\n", sync->where);
+ LOG_DEBUG("Frequent stall from %s\n", sync->location);
else
LOG_DEBUG("Frequent stall from unknown\n");
@@ -995,9 +995,9 @@ void SyncObject::analyze(Stream* stream)
stream->format("Where\tShares\tExclusives\tWaits\tAverage Queue\n");
for (int n = 1; n < MAX_SYNC_OBJECTS; ++n)
- if ( (syncObject = syncObjects[n]) && syncObject->where)
+ if ( (syncObject = syncObjects[n]) && syncObject->location)
stream->format("%s\t%d\t%d\t%d\t%d\t\n",
- syncObject->where,
+ syncObject->location,
syncObject->sharedCount,
syncObject->exclusiveCount,
syncObject->waitCount,
@@ -1019,7 +1019,7 @@ void SyncObject::dump(void)
for (int n = 1; n < MAX_SYNC_OBJECTS; ++n)
if ( (syncObject = syncObjects[n]) )
{
- const char *name = (syncObject->name) ? syncObject->name : syncObject->where;
+ const char *name = (syncObject->name) ? syncObject->name : syncObject->location;
if (name)
fprintf(out, "%s\t%d\t%d\t%d\t%d\t\n",
@@ -1044,10 +1044,10 @@ void SyncObject::getSyncInfo(InfoTable*
SyncObject *syncObject;
for (int index = 1; index < MAX_SYNC_OBJECTS; ++index)
- if ( (syncObject = syncObjects[index]) && syncObject->where)
+ if ( (syncObject = syncObjects[index]) && syncObject->location)
{
int n = 0;
- infoTable->putString(n++, syncObject->where);
+ infoTable->putString(n++, syncObject->location);
infoTable->putInt(n++, syncObject->sharedCount);
infoTable->putInt(n++, syncObject->exclusiveCount);
infoTable->putInt(n++, syncObject->waitCount);
=== modified file 'storage/falcon/SyncObject.h'
--- a/storage/falcon/SyncObject.h 2008-06-19 15:09:45 +0000
+++ b/storage/falcon/SyncObject.h 2008-07-24 08:45:03 +0000
@@ -108,7 +108,7 @@ protected:
int exclusiveCount;
int waitCount;
int queueLength;
- const char* where;
+ const char* location;
char* name;
#endif
};
=== modified file 'storage/falcon/Table.cpp'
--- a/storage/falcon/Table.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/Table.cpp 2008-07-24 08:45:03 +0000
@@ -396,10 +396,10 @@ Format* Table::getFormat(int version)
if (format->version == version)
return format;
- Sync syncObj(&syncObject, "Table::getFormat");
+ Sync syncObj(&syncObject, "Table::getFormat(1)");
syncObj.lock(Exclusive);
- Sync syncDDL(&database->syncSysDDL, "Table::getFormat");
+ Sync syncDDL(&database->syncSysDDL, "Table::getFormat(2)");
syncDDL.lock(Shared);
PStatement statement = database->prepareStatement(
@@ -836,6 +836,8 @@ void Table::init(int id, const char *sch
syncTriggers.setName("Table::syncTriggers");
syncScavenge.setName("Table::syncScavenge");
syncAlter.setName("Table::syncAlter");
+ for (int n = 0; n < SYNC_VERSIONS_SIZE; n++)
+ syncPriorVersions[n].setName("Table::syncPriorVersions");
}
Record* Table::fetch(int32 recordNumber)
=== modified file 'storage/falcon/TableSpaceManager.cpp'
--- a/storage/falcon/TableSpaceManager.cpp 2008-07-18 08:15:54 +0000
+++ b/storage/falcon/TableSpaceManager.cpp 2008-07-24 08:45:03 +0000
@@ -59,6 +59,7 @@ TableSpaceManager::TableSpaceManager(Dat
memset(idHash, 0, sizeof(nameHash));
tableSpaces = NULL;
pendingDrops = 0;
+ syncObject.setName("TableSpaceManager::syncObject");
}
TableSpaceManager::~TableSpaceManager()
=== modified file 'storage/falcon/Thread.cpp'
--- a/storage/falcon/Thread.cpp 2008-06-19 15:09:45 +0000
+++ b/storage/falcon/Thread.cpp 2008-07-24 08:45:03 +0000
@@ -310,7 +310,7 @@ void Thread::validateLocks()
{
LOG_DEBUG ("thread %d has active locks:\n", thread->threadId);
for (Sync *sync = thread->locks; sync; sync = sync->prior)
- LOG_DEBUG (" %s\n", sync->where);
+ LOG_DEBUG (" %s\n", sync->location);
}
}
@@ -381,7 +381,7 @@ void Thread::setLock(Sync *sync)
ASSERT (sync->request == Shared || sync->request == Exclusive);
sync->prior = locks;
locks = sync;
- where = locks->where;
+ where = locks->location;
}
void Thread::clearLock(Sync *sync)
@@ -396,7 +396,7 @@ void Thread::clearLock(Sync *sync)
if ( (locks = sync->prior) )
{
ASSERT (locks->state == Shared || locks->state == Exclusive);
- where = locks->where;
+ where = locks->location;
}
}
@@ -467,8 +467,8 @@ void Thread::print(const char *label)
const char* Thread::getWhere()
{
- if (lockPending && lockPending->where)
- return lockPending->where;
+ if (lockPending && lockPending->location)
+ return lockPending->location;
return "";
}
=== modified file 'storage/falcon/Threads.cpp'
--- a/storage/falcon/Threads.cpp 2007-09-20 15:44:25 +0000
+++ b/storage/falcon/Threads.cpp 2008-07-24 08:45:03 +0000
@@ -46,6 +46,7 @@ Threads::Threads(Threads *parentThreads,
threadsActive = 0;
firstPending = NULL;
lastPending = NULL;
+ syncObject.setName("Threads::syncObject");
}
Threads::~Threads()
=== modified file 'storage/falcon/Transaction.cpp'
--- a/storage/falcon/Transaction.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/Transaction.cpp 2008-07-24 08:45:03 +0000
@@ -290,11 +290,11 @@ void Transaction::commit()
releaseDependencies();
database->flushInversion(this);
- Sync syncActiveTransactions(&transactionManager->activeTransactions.syncObject, "Transaction::commit(2)");
- syncActiveTransactions.lock(Exclusive);
- Sync syncCommitted(&transactionManager->committedTransactions.syncObject, "Transaction::commit(3)");
+ Sync syncCommitted(&transactionManager->committedTransactions.syncObject, "Transaction::commit(2)");
syncCommitted.lock(Exclusive);
+ Sync syncActiveTransactions(&transactionManager->activeTransactions.syncObject, "Transaction::commit(3)");
+ syncActiveTransactions.lock(Exclusive);
transactionManager->activeTransactions.remove(this);
syncActiveTransactions.unlock();
@@ -982,7 +982,7 @@ State Transaction::waitForTransaction(Tr
TransactionManager *transactionManager = database->transactionManager;
Sync syncActiveTransactions(&transactionManager->activeTransactions.syncObject,
- "Transaction::waitForTransaction");
+ "Transaction::waitForTransaction(1)");
syncActiveTransactions.lock(Shared);
if (!transaction)
@@ -1058,7 +1058,7 @@ void Transaction::waitForTransaction()
}
***/
- Sync sync(&syncActive, "Transaction::waitForTransaction");
+ Sync sync(&syncActive, "Transaction::waitForTransaction(2)");
sync.lock(Shared, falcon_lock_wait_timeout * 1000);
}
=== modified file 'storage/falcon/Transaction.h'
--- a/storage/falcon/Transaction.h 2008-06-16 15:39:33 +0000
+++ b/storage/falcon/Transaction.h 2008-07-24 08:45:03 +0000
@@ -168,9 +168,9 @@ public:
bool writePending;
bool pendingPageWrites;
bool hasLocks;
+ SyncObject syncObject;
SyncObject syncActive;
SyncObject syncIndexes;
- SyncObject syncObject;
SyncObject syncSavepoints;
uint64 totalRecordData; // total bytes of record data for this transaction (unchilled + thawed)
uint32 totalRecords; // total record count
=== modified file 'storage/falcon/TransactionManager.cpp'
--- a/storage/falcon/TransactionManager.cpp 2008-07-15 18:57:27 +0000
+++ b/storage/falcon/TransactionManager.cpp 2008-07-24 08:45:03 +0000
@@ -52,6 +52,8 @@ TransactionManager::TransactionManager(D
rolledBackTransaction->state = RolledBack;
rolledBackTransaction->inList = false;
syncObject.setName("TransactionManager::syncObject");
+ activeTransactions.syncObject.setName("TransactionManager::activeTransactions");
+ committedTransactions.syncObject.setName("TransactionManager::committedTransactions");
}
TransactionManager::~TransactionManager(void)