Below is the list of changes that have just been committed into a local
6.0 repository of klewis. When klewis does a push these changes
will be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2008-03-27 01:09:29-05:00, klewis@klewis-mysql. +15 -0
Delete page precedence code
storage/falcon/BDB.cpp@stripped, 2008-03-27 01:08:48-05:00, klewis@klewis-mysql. +0 -28
Delete page precedence code
storage/falcon/BDB.h@stripped, 2008-03-27 01:08:51-05:00, klewis@klewis-mysql. +0 -4
Delete page precedence code
storage/falcon/Cache.cpp@stripped, 2008-03-27 01:08:55-05:00, klewis@klewis-mysql. +30 -216
Delete page precedence code
storage/falcon/Cache.h@stripped, 2008-03-27 01:08:57-05:00, klewis@klewis-mysql. +0 -4
Delete page precedence code
storage/falcon/Dbb.cpp@stripped, 2008-03-27 01:09:00-05:00, klewis@klewis-mysql. +0 -4
Delete page precedence code
storage/falcon/Dbb.h@stripped, 2008-03-27 01:09:02-05:00, klewis@klewis-mysql. +0 -1
Delete page precedence code
storage/falcon/IO.cpp@stripped, 2008-03-27 01:09:04-05:00, klewis@klewis-mysql. +0 -1
Delete page precedence code
storage/falcon/IOx.h@stripped, 2008-03-27 01:09:06-05:00, klewis@klewis-mysql. +7 -8
Delete page precedence code
storage/falcon/Index2Page.cpp@stripped, 2008-03-27 01:09:08-05:00, klewis@klewis-mysql. +0 -1
Delete page precedence code
storage/falcon/Index2RootPage.cpp@stripped, 2008-03-27 01:09:10-05:00, klewis@klewis-mysql. +0 -13
Delete page precedence code
storage/falcon/IndexPage.cpp@stripped, 2008-03-27 01:09:12-05:00, klewis@klewis-mysql. +0 -1
Delete page precedence code
storage/falcon/IndexRootPage.cpp@stripped, 2008-03-27 01:09:14-05:00, klewis@klewis-mysql. +0 -4
Delete page precedence code
storage/falcon/PagePrecedence.cpp@stripped, 2008-03-27 01:09:16-05:00, klewis@klewis-mysql. +2 -0
Delete page precedence code
storage/falcon/PagePrecedence.h@stripped, 2008-03-27 01:09:18-05:00, klewis@klewis-mysql. +2 -0
Delete page precedence code
storage/falcon/Section.cpp@stripped, 2008-03-27 01:09:20-05:00, klewis@klewis-mysql. +0 -5
Delete page precedence code
diff -Nrup a/storage/falcon/BDB.cpp b/storage/falcon/BDB.cpp
--- a/storage/falcon/BDB.cpp 2008-03-11 10:16:31 -05:00
+++ b/storage/falcon/BDB.cpp 2008-03-27 01:08:48 -05:00
@@ -21,7 +21,6 @@
#include "BDB.h"
#include "Cache.h"
#include "Interlock.h"
-#include "PagePrecedence.h"
#include "PageWriter.h"
#include "Thread.h"
#include "SQLError.h"
@@ -53,7 +52,6 @@ Bdb::Bdb()
pageNumber = -1;
useCount = 0;
age = 0;
- higher = lower = NULL;
markingThread = NULL;
priorDirty = nextDirty = NULL;
flushIt = false;
@@ -69,13 +67,6 @@ Bdb::Bdb()
Bdb::~Bdb()
{
- PagePrecedence *precedence;
-
- while ( (precedence = higher) )
- cache->clearPrecedence (precedence);
-
- while ( (precedence = lower) )
- cache->clearPrecedence (precedence);
}
@@ -169,25 +160,6 @@ void Bdb::decrementUseCount()
{
ASSERT (useCount > 0);
INTERLOCKED_DECREMENT (useCount);
-}
-
-/***
-void Bdb::setPrecedence(int32 priorPage)
-{
- cache->setPrecedence (this, priorPage);
-}
-***/
-
-bool Bdb::isHigher(Bdb *bdb)
-{
- if (this == bdb)
- return true;
-
- for (PagePrecedence *prec = higher; prec; prec = prec->nextHigh)
- if (prec->higher->isHigher (bdb))
- return true;
-
- return false;
}
void Bdb::setWriter()
diff -Nrup a/storage/falcon/BDB.h b/storage/falcon/BDB.h
--- a/storage/falcon/BDB.h 2007-11-24 14:10:30 -06:00
+++ b/storage/falcon/BDB.h 2008-03-27 01:08:51 -05:00
@@ -60,7 +60,6 @@ static const int BDB_write_pending = 16;
class Page;
class Cache;
-class PagePrecedence;
class Dbb;
class Thread;
@@ -68,7 +67,6 @@ class Bdb
{
public:
void setWriter();
- bool isHigher (Bdb *bdb);
void decrementUseCount();
void incrementUseCount();
void downGrade (LockType lockType);
@@ -101,8 +99,6 @@ public:
Bdb *nextDirty;
Bdb *priorDirty;
Bdb *ioThreadNext;
- PagePrecedence *higher;
- PagePrecedence *lower;
Thread *markingThread;
SyncObject syncObject;
SyncObject syncWrite;
diff -Nrup a/storage/falcon/Cache.cpp b/storage/falcon/Cache.cpp
--- a/storage/falcon/Cache.cpp 2008-03-11 10:16:31 -05:00
+++ b/storage/falcon/Cache.cpp 2008-03-27 01:08:55 -05:00
@@ -30,7 +30,6 @@
#include "Log.h"
#include "LogLock.h"
#include "Stream.h"
-#include "PagePrecedence.h"
#include "PageWriter.h"
#include "SQLError.h"
#include "Thread.h"
@@ -73,9 +72,9 @@ Cache::Cache(Database *db, int pageSz, i
lastDirty = NULL;
numberDirtyPages = 0;
pageWriter = NULL;
- freePrecedence = NULL;
hashTable = new Bdb* [hashSz];
memset (hashTable, 0, sizeof (Bdb*) * hashSize);
+
uint64 n = ((uint64) pageSize * numberBuffers + cacheHunkSize - 1) / cacheHunkSize;
numberHunks = (int) n;
bufferHunks = new char* [numberHunks];
@@ -91,14 +90,14 @@ Cache::Cache(Database *db, int pageSz, i
flushing = false;
try
- {
+ {
bdbs = new Bdb [numberBuffers];
endBdbs = bdbs + numberBuffers;
int remaining = 0;
int hunk = 0;
int allocated = 0;
char *stuff = NULL;
-
+
for (Bdb *bdb = bdbs; bdb < endBdbs; ++bdb, --remaining)
{
if (remaining == 0)
@@ -108,7 +107,7 @@ Cache::Cache(Database *db, int pageSz, i
stuff = (char*) (((UIPTR) stuff + pageSize - 1) / pageSize * pageSize);
allocated += remaining;
}
-
+
bdb->cache = this;
bufferQueue.append(bdb);
bdb->buffer = (Page*) stuff;
@@ -118,15 +117,15 @@ Cache::Cache(Database *db, int pageSz, i
catch(...)
{
delete [] bdbs;
-
+
for (int n = 0; n < numberHunks; ++n)
delete [] bufferHunks[n];
-
+
delete [] bufferHunks;
-
+
throw;
}
-
+
validateCache();
for (int n = 0; n < numberIoThreads; ++n)
@@ -142,20 +141,14 @@ Cache::~Cache()
delete [] bdbs;
delete [] ioThreads;
delete flushBitmap;
-
+
if (bufferHunks)
{
for (int n = 0; n < numberHunks; ++n)
delete [] bufferHunks[n];
-
+
delete[] bufferHunks;
}
-
- for (PagePrecedence *precedence; (precedence = freePrecedence);)
- {
- freePrecedence = precedence->nextHigh;
- delete precedence;
- }
}
Bdb* Cache::probePage(Dbb *dbb, int32 pageNumber)
@@ -405,73 +398,16 @@ Bdb* Cache::findBuffer(Dbb *dbb, int pag
Bdb *bdb;
- // Find a candidate BDB. If there are higher precedence pages, they must be written first
+ // Find a candidate BDB.
for (;;)
{
for (bdb = bufferQueue.last; bdb; bdb = bdb->prior)
- {
- if (bdb->higher)
- {
- sync.lock(Shared);
-
- if (bdb->higher)
- {
- Bdb *candidate;
-
- for (candidate = bdb; candidate->higher; candidate = candidate->higher->higher)
- ;
-
- if (candidate->useCount == 0)
- {
- bdb = candidate;
- sync.unlock();
-
- break;
- }
- }
-
- sync.unlock();
- }
- else if (bdb->useCount == 0)
+ if (bdb->useCount == 0)
break;
- }
if (!bdb)
throw SQLError(RUNTIME_ERROR, "buffer pool is exhausted\n");
- /*** the following is for debugging, if necessary
- {
- for (bdb = bufferQueue.last; bdb; bdb = bdb->prior)
- {
- if (bdb->higher)
- {
- sync.lock(Shared);
-
- if (bdb->higher)
- {
- Bdb *candidate;
-
- for (candidate = bdb; candidate->higher; candidate = candidate->higher->higher)
- ;
-
- if (candidate->useCount == 0)
- {
- bdb = candidate;
- sync.unlock();
-
- break;
- }
-
- sync.unlock();
- }
- }
- else if (bdb->useCount == 0)
- break;
- }
-
- throw SQLError(RUNTIME_ERROR, "buffer pool is exhausted\n");
- }
- ***/
if (!(bdb->flags & BDB_dirty))
break;
@@ -479,11 +415,6 @@ Bdb* Cache::findBuffer(Dbb *dbb, int pag
writePage (bdb, WRITE_TYPE_REUSE);
}
- ASSERT(bdb->higher == NULL);
-
- for (PagePrecedence *precedence; (precedence = bdb->lower);)
- clearPrecedence (bdb->lower);
-
/* Unlink its old incarnation from the page/hash table */
if (bdb->pageNumber >= 0)
@@ -565,36 +496,29 @@ void Cache::markClean(Bdb *bdb)
bdb->nextDirty = NULL;
bdb->priorDirty = NULL;
- PagePrecedence *precedence;
-
- while ( (precedence = bdb->lower) )
- clearPrecedence (bdb->lower);
-
- while ( (precedence = bdb->higher) )
- clearPrecedence (bdb->higher);
}
void Cache::writePage(Bdb *bdb, int type)
{
Sync writer(&bdb->syncWrite, "Cache::writePage");
writer.lock(Exclusive);
-
+
if (!(bdb->flags & BDB_dirty))
{
//Log::debug("Cache::writePage: page %d not dirty\n", bdb->pageNumber);
markClean (bdb);
-
+
return;
}
-
+
ASSERT(!(bdb->flags & BDB_write_pending));
Dbb *dbb = bdb->dbb;
ASSERT(database);
markClean (bdb);
// time_t start = database->timestamp;
Priority priority(database->ioScheduler);
- priority.schedule(PRIORITY_MEDIUM);
-
+ priority.schedule(PRIORITY_MEDIUM);
+
try
{
dbb->writePage(bdb, type);
@@ -602,20 +526,20 @@ void Cache::writePage(Bdb *bdb, int type
catch (SQLException& exception)
{
priority.finished();
-
+
if (exception.getSqlcode() != DEVICE_FULL)
throw;
-
+
database->setIOError(&exception);
Thread *thread = Thread::getThread("Cache::writePage");
-
+
for (bool error = true; error;)
{
if (thread->shutdownInProgress)
return;
-
+
thread->sleep(1000);
-
+
try
{
priority.schedule(PRIORITY_MEDIUM);
@@ -626,28 +550,28 @@ void Cache::writePage(Bdb *bdb, int type
catch (SQLException& exception2)
{
priority.finished();
-
+
if (exception2.getSqlcode() != DEVICE_FULL)
throw;
}
}
}
-
+
priority.finished();
-
+
/***
time_t delta = database->timestamp - start;
if (delta > 1)
Log::debug("Page %d took %d seconds to write\n", bdb->pageNumber, delta);
***/
-
-#ifdef STOP_PAGE
+
+#ifdef STOP_PAGE
if (bdb->pageNumber == STOP_PAGE)
Log::debug("writing page %d/%d\n", bdb->pageNumber, dbb->tableSpaceId);
#endif
-
+
bdb->flags &= ~BDB_dirty;
if (pageWriter && (bdb->flags & BDB_writer))
@@ -674,9 +598,6 @@ void Cache::analyze(Stream *stream)
int dirty = 0;
int dirtyList = 0;
int total = 0;
- int maxChain = 0;
- int totalChain = 0;
- int freeCount = 0;
Bdb *bdb;
for (bdb = bdbs; bdb < endBdbs; ++bdb)
@@ -688,24 +609,13 @@ void Cache::analyze(Stream *stream)
if (bdb->useCount)
++inUse;
-
- int chain = 0;
-
- for (PagePrecedence *precedence = bdb->higher; precedence; precedence = precedence->nextHigh)
- ++chain;
-
- totalChain += chain;
- maxChain = MAX(chain, maxChain);
}
for (bdb = firstDirty; bdb; bdb = bdb->nextDirty)
++dirtyList;
- for (PagePrecedence *precedence = freePrecedence; precedence; precedence = precedence->nextHigh)
- ++freeCount;
-
- stream->format ("Cache: %d pages, %d in use, %d dirty, %d in dirty chain\nMax chain %d, total chain %d, free %d\n",
- total, inUse, dirty, dirtyList, maxChain, totalChain, freeCount);
+ stream->format ("Cache: %d pages, %d in use, %d dirty, %d in dirty chain\n",
+ total, inUse, dirty, dirtyList);
}
void Cache::validateUnique(Bdb *target)
@@ -714,102 +624,6 @@ void Cache::validateUnique(Bdb *target)
for (Bdb *bdb = hashTable [slot]; bdb; bdb = bdb->hash)
ASSERT (bdb == target || !(bdb->pageNumber == target->pageNumber && bdb->dbb == target->dbb));
-}
-
-void Cache::setPrecedence(Bdb *lower, int32 highPageNumber)
-{
- Sync sync (&syncDirty, "Cache::setPrecedence");
- sync.lock (Shared);
- int slot = highPageNumber % hashSize;
- Bdb *higher;
- PagePrecedence *precedence;
- int count = 0;
-
- for (precedence = lower->higher; precedence; precedence = precedence->nextHigh, ++count)
- if (precedence->higher->pageNumber == highPageNumber)
- return;
-
- /***
- if (count == 100)
- {
- LogLock logLock;
- Log::debug("Long precedence chain:\n");
- dbb->printPage(lower);
-
- for (precedence = lower->higher; precedence; precedence = precedence->nextHigh, ++count)
- dbb->printPage(precedence->higher->pageNumber);
- }
- ***/
-
- for (higher = hashTable [slot]; higher; higher = higher->hash)
- if (higher->pageNumber == highPageNumber && higher->dbb == lower->dbb)
- break;
-
- if (!higher)
- return;
-
- sync.unlock();
- sync.lock(Exclusive);
-
- for (higher = hashTable [slot]; higher; higher = higher->hash)
- if (higher->pageNumber == highPageNumber && higher->dbb == lower->dbb)
- break;
-
- if (!higher || !(higher->flags & BDB_dirty))
- return;
-
- // Make sure we're not creating a cycle. If so, write some pages now!
-
- while (higher->isHigher(lower))
- {
- Bdb *bdb = lower;
-
- while (bdb->higher)
- bdb = bdb->higher->higher;
-
- writePage (bdb, WRITE_TYPE_PRECEDENCE);
- }
-
- if ( (precedence = freePrecedence) )
- {
- freePrecedence = precedence->nextHigh;
- precedence->setPrecedence(lower, higher);
- }
- else
- new PagePrecedence(lower, higher);
-}
-
-void Cache::clearPrecedence(PagePrecedence *precedence)
-{
- Sync sync (&syncDirty, "Cache::setPrecedence");
- sync.lock (Exclusive);
- PagePrecedence **ptr;
- Bdb *bdb = precedence->higher;
- int hits = 0;
-
- for (ptr = &bdb->lower; *ptr; ptr = &(*ptr)->nextLow)
- if (*ptr == precedence)
- {
- ++hits;
- *ptr = precedence->nextLow;
- break;
- }
-
- ASSERT (hits == 1);
- bdb = precedence->lower;
-
- for (ptr = &bdb->higher; *ptr; ptr = &(*ptr)->nextHigh)
- if (*ptr == precedence)
- {
- ++hits;
- *ptr = precedence->nextHigh;
- break;
- }
-
- ASSERT (hits == 2);
- //delete precedence;
- precedence->nextHigh = freePrecedence;
- freePrecedence = precedence;
}
void Cache::freePage(Dbb *dbb, int32 pageNumber)
diff -Nrup a/storage/falcon/Cache.h b/storage/falcon/Cache.h
--- a/storage/falcon/Cache.h 2008-03-11 10:16:31 -05:00
+++ b/storage/falcon/Cache.h 2008-03-27 01:08:57 -05:00
@@ -30,7 +30,6 @@
class Bdb;
class Dbb;
-class PagePrecedence;
class PageWriter;
class Stream;
class Sync;
@@ -48,8 +47,6 @@ public:
bool hasDirtyPages (Dbb *dbb);
void flush (Dbb *dbb);
void freePage (Dbb *dbb, int32 pageNumber);
- void clearPrecedence (PagePrecedence *precedence);
- void setPrecedence (Bdb *lower, int32 highPageNumber);
void validateUnique (Bdb *bdb);
void analyze (Stream *stream);
void writePage (Bdb *bdb, int type);
@@ -102,7 +99,6 @@ protected:
SyncObject syncDirty;
SyncObject syncThreads;
SyncObject syncWait;
- PagePrecedence *freePrecedence;
time_t flushStart;
int flushPages;
int physicalWrites;
diff -Nrup a/storage/falcon/Dbb.cpp b/storage/falcon/Dbb.cpp
--- a/storage/falcon/Dbb.cpp 2008-03-12 07:15:13 -05:00
+++ b/storage/falcon/Dbb.cpp 2008-03-27 01:09:00 -05:00
@@ -1221,10 +1221,6 @@ void Dbb::validateCache(void)
cache->validate();
}
-void Dbb::setPrecedence(Bdb *lower, int32 higherPageNumber)
-{
- cache->setPrecedence(lower, higherPageNumber);
-}
void Dbb::redoRecordLocatorPage(int sectionId, int sequence, int32 pageNumber, bool isPostFlush)
{
diff -Nrup a/storage/falcon/Dbb.h b/storage/falcon/Dbb.h
--- a/storage/falcon/Dbb.h 2008-03-12 07:15:13 -05:00
+++ b/storage/falcon/Dbb.h 2008-03-27 01:09:02 -05:00
@@ -110,7 +110,6 @@ public:
Dbb (Dbb *dbb, int tableSpaceId);
virtual ~Dbb();
- void setPrecedence (Bdb *lower, int32 higherPageNumber);
void createSection(int32 sectionId, TransId transId);
void dropDatabase();
void enableSerialLog();
diff -Nrup a/storage/falcon/IO.cpp b/storage/falcon/IO.cpp
--- a/storage/falcon/IO.cpp 2008-03-24 22:54:35 -05:00
+++ b/storage/falcon/IO.cpp 2008-03-27 01:09:04 -05:00
@@ -631,7 +631,6 @@ void IO::reportWrites(void)
(const char*) fileName,
writeTypes[WRITE_TYPE_FORCE],
writeTypes[WRITE_TYPE_FLUSH],
- writeTypes[WRITE_TYPE_PRECEDENCE],
writeTypes[WRITE_TYPE_REUSE],
writeTypes[WRITE_TYPE_PAGE_WRITER]);
diff -Nrup a/storage/falcon/IOx.h b/storage/falcon/IOx.h
--- a/storage/falcon/IOx.h 2008-03-11 10:16:31 -05:00
+++ b/storage/falcon/IOx.h 2008-03-27 01:09:06 -05:00
@@ -29,19 +29,18 @@
static const int WRITE_TYPE_FORCE = 0;
-static const int WRITE_TYPE_PRECEDENCE = 1;
-static const int WRITE_TYPE_REUSE = 2;
-static const int WRITE_TYPE_SHUTDOWN = 3;
-static const int WRITE_TYPE_PAGE_WRITER = 4;
-static const int WRITE_TYPE_CLONE = 5;
-static const int WRITE_TYPE_FLUSH = 6;
-static const int WRITE_TYPE_MAX = 7;
+static const int WRITE_TYPE_REUSE = 1;
+static const int WRITE_TYPE_SHUTDOWN = 2;
+static const int WRITE_TYPE_PAGE_WRITER = 3;
+static const int WRITE_TYPE_CLONE = 4;
+static const int WRITE_TYPE_FLUSH = 5;
+static const int WRITE_TYPE_MAX = 6;
class Bdb;
class Hdr;
class Dbb;
-class IO
+class IO
{
public:
IO();
diff -Nrup a/storage/falcon/Index2Page.cpp b/storage/falcon/Index2Page.cpp
--- a/storage/falcon/Index2Page.cpp 2008-02-26 14:18:18 -06:00
+++ b/storage/falcon/Index2Page.cpp 2008-03-27 01:09:08 -05:00
@@ -896,7 +896,6 @@ Bdb* Index2Page::splitPage(Dbb *dbb, Bdb
Bdb *nextBdb = dbb->fetchPage (split->nextPage, PAGE_btree, Exclusive);
BDB_HISTORY(bdb);
Index2Page *next = (Index2Page*) nextBdb->buffer;
- dbb->setPrecedence(bdb, splitBdb->pageNumber);
nextBdb->mark(transId);
next->priorPage = splitBdb->pageNumber;
nextBdb->release(REL_HISTORY);
diff -Nrup a/storage/falcon/Index2RootPage.cpp b/storage/falcon/Index2RootPage.cpp
--- a/storage/falcon/Index2RootPage.cpp 2008-02-25 16:27:01 -06:00
+++ b/storage/falcon/Index2RootPage.cpp 2008-03-27 01:09:10 -05:00
@@ -522,17 +522,6 @@ bool Index2RootPage::splitIndexPage(Dbb
Index2Page::logIndexPage(splitBdb, transId);
Index2Page::logIndexPage(leftBdb, transId);
- /***
- bdb->release();
- dbb->setPrecedence(bdb, splitBdb->pageNumber);
- dbb->setPrecedence(parentBdb, bdb->pageNumber);
- splitBdb->release();
- parentBdb->release();
- setIndexRoot(dbb, indexId, pageNumber, transId);
- ***/
-
- dbb->setPrecedence(leftBdb, splitBdb->pageNumber);
- dbb->setPrecedence(bdb, leftBdb->pageNumber);
splitBdb->release(REL_HISTORY);
leftBdb->release(REL_HISTORY);
bdb->release(REL_HISTORY);
@@ -566,7 +555,6 @@ bool Index2RootPage::splitIndexPage(Dbb
if (result == NodeAdded || result == Duplicate)
{
- dbb->setPrecedence(bdb, splitPageNumber);
splitBdb = dbb->fetchPage (splitPageNumber, PAGE_btree, Exclusive);
BDB_HISTORY(splitBdb);
splitBdb->mark (transId);
@@ -843,7 +831,6 @@ void Index2RootPage::setIndexRoot(Dbb* d
int slot = indexId % dbb->pagesPerSection;
Bdb *bdb = Section::getSectionPage (dbb, INDEX_ROOT, sequence, Exclusive, transId);
BDB_HISTORY(bdb);
- dbb->setPrecedence(bdb, pageNumber);
bdb->mark(transId);
SectionPage *sections = (SectionPage*) bdb->buffer;
sections->pages[slot] = pageNumber;
diff -Nrup a/storage/falcon/IndexPage.cpp b/storage/falcon/IndexPage.cpp
--- a/storage/falcon/IndexPage.cpp 2008-03-24 22:54:37 -05:00
+++ b/storage/falcon/IndexPage.cpp 2008-03-27 01:09:12 -05:00
@@ -1217,7 +1217,6 @@ Bdb* IndexPage::splitPage(Dbb *dbb, Bdb
Bdb *nextBdb = dbb->fetchPage (split->nextPage, PAGE_btree, Exclusive);
BDB_HISTORY(bdb);
IndexPage *next = (IndexPage*) nextBdb->buffer;
- dbb->setPrecedence(bdb, splitBdb->pageNumber);
nextBdb->mark(transId);
next->priorPage = splitBdb->pageNumber;
nextBdb->release(REL_HISTORY);
diff -Nrup a/storage/falcon/IndexRootPage.cpp b/storage/falcon/IndexRootPage.cpp
--- a/storage/falcon/IndexRootPage.cpp 2008-03-24 22:54:41 -05:00
+++ b/storage/falcon/IndexRootPage.cpp 2008-03-27 01:09:14 -05:00
@@ -574,8 +574,6 @@ bool IndexRootPage::splitIndexPage(Dbb *
page->printPage(splitPage, 0, false, false);
}
- dbb->setPrecedence(leftBdb, splitBdb->pageNumber);
- dbb->setPrecedence(bdb, leftBdb->pageNumber);
splitBdb->release(REL_HISTORY);
leftBdb->release(REL_HISTORY);
bdb->release(REL_HISTORY);
@@ -608,7 +606,6 @@ bool IndexRootPage::splitIndexPage(Dbb *
if (result == NodeAdded || result == Duplicate)
{
- dbb->setPrecedence(bdb, splitPageNumber);
splitBdb = dbb->fetchPage (splitPageNumber, PAGE_btree, Exclusive);
BDB_HISTORY(splitBdb);
splitBdb->mark (transId);
@@ -906,7 +903,6 @@ void IndexRootPage::setIndexRoot(Dbb* db
int slot = indexId % dbb->pagesPerSection;
Bdb *bdb = Section::getSectionPage (dbb, INDEX_ROOT, sequence, Exclusive, transId);
BDB_HISTORY(bdb);
- dbb->setPrecedence(bdb, pageNumber);
bdb->mark(transId);
SectionPage *sections = (SectionPage*) bdb->buffer;
sections->pages[slot] = pageNumber;
diff -Nrup a/storage/falcon/PagePrecedence.cpp b/storage/falcon/PagePrecedence.cpp
--- a/storage/falcon/PagePrecedence.cpp 2007-09-20 10:42:09 -05:00
+++ b/storage/falcon/PagePrecedence.cpp 2008-03-27 01:09:16 -05:00
@@ -1,3 +1,4 @@
+#ifdef USE_PRECEDENCE
/* Copyright (C) 2006 MySQL AB
This program is free software; you can redistribute it and/or modify
@@ -44,3 +45,4 @@ void PagePrecedence::setPrecedence(Bdb*
nextLow = higher->lower;
higher->lower = this;
}
+#endif /* USE_PRECEDENCE */
diff -Nrup a/storage/falcon/PagePrecedence.h b/storage/falcon/PagePrecedence.h
--- a/storage/falcon/PagePrecedence.h 2007-09-20 10:42:09 -05:00
+++ b/storage/falcon/PagePrecedence.h 2008-03-27 01:09:18 -05:00
@@ -1,3 +1,4 @@
+#ifdef USE_PRECEDENCE
/* Copyright (C) 2006 MySQL AB
This program is free software; you can redistribute it and/or modify
@@ -41,3 +42,4 @@ public:
};
#endif // !defined(AFX_PAGEPRECEDENCE_H__A8C8A877_7EC4_497A_BC51_1D335EFDBB3B__INCLUDED_)
+#endif /* USE_PRECEDENCE */
diff -Nrup a/storage/falcon/Section.cpp b/storage/falcon/Section.cpp
--- a/storage/falcon/Section.cpp 2008-03-24 22:54:43 -05:00
+++ b/storage/falcon/Section.cpp 2008-03-27 01:09:20 -05:00
@@ -136,7 +136,6 @@ int32 Section::createSection(Dbb * dbb,
page->section = id;
sectionBdb->release(REL_HISTORY);
- dbb->setPrecedence(sectionsBdb, sectionPageNumber);
sectionsBdb->mark(transId);
sections->pages [slot] = sectionPageNumber;
dbb->nextSection = (sectionSkipped) ? sectionSkipped : (id + 1);
@@ -280,7 +279,6 @@ Bdb* Section::getSectionPage(Dbb *dbb, i
newPage->sequence = sequence;
newPage->level = page->level - 1;
- dbb->setPrecedence(bdb, newPageNumber);
bdb->mark(transId);
page->pages [slot] = newPageNumber;
int32 parentPage = bdb->pageNumber;
@@ -372,7 +370,6 @@ int32 Section::insertStub(TransId transI
Bdb *newBdb = dbb->allocPage(PAGE_record_locator, transId);
BDB_HISTORY(newBdb);
- dbb->setPrecedence(bdb, newBdb->pageNumber);
bdb->mark(transId);
pages->pages[indexSlot] = newBdb->pageNumber;
bdb->release(REL_HISTORY);
@@ -571,7 +568,6 @@ void Section::updateRecord(int32 recordN
locatorPage->setIndexSlot(line, index->page, index->line, spaceAvailable);
VALIDATE_SPACE_SLOTS(locatorPage);
dataBdb->release(REL_HISTORY);
- dbb->setPrecedence(bdb, index->page);
bdb->release(REL_HISTORY);
return;
@@ -588,7 +584,6 @@ void Section::updateRecord(int32 recordN
if (stream)
{
storeRecord(locatorPage, bdb->pageNumber, index, stream, transId, earlyWrite);
- dbb->setPrecedence(bdb, index->page);
}
bdb->release(REL_HISTORY);
| Thread |
|---|
| • bk commit into 6.0 tree (klewis:1.2609) | klewis | 27 Mar |