List:Commits« Previous MessageNext Message »
From:klewis Date:March 27 2008 6:09am
Subject:bk commit into 6.0 tree (klewis:1.2609)
View as plain text  
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)klewis27 Mar