List:Commits« Previous MessageNext Message »
From:jonas Date:May 1 2007 7:53pm
Subject:bk commit into 5.1 tree (jonas:1.2514)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of jonas. When jonas 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, 2007-05-01 21:53:18+02:00, jonas@stripped +1 -0
  Merge joreland@stripped:/home/bk/mysql-5.1-telco
  into  perch.ndb.mysql.com:/home/jonas/src/51-telco
  MERGE: 1.2512.1.2

  storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp@stripped, 2007-05-01 21:53:14+02:00, jonas@stripped +0 -0
    Auto merged
    MERGE: 1.75.1.1

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	jonas
# Host:	perch.ndb.mysql.com
# Root:	/home/jonas/src/51-telco/RESYNC

--- 1.76/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp	2007-05-01 21:53:23 +02:00
+++ 1.77/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp	2007-05-01 21:53:23 +02:00
@@ -32,6 +32,7 @@
 #include "AttributeOffset.hpp"
 #include "Undo_buffer.hpp"
 #include "tuppage.hpp"
+#include <DynArr256.hpp>
 #include <../pgman.hpp>
 #include <../tsman.hpp>
 
@@ -328,6 +329,7 @@
 #define ZFREE_EXTENT 11
 #define ZUNMAP_PAGES 12
 #define ZFREE_VAR_PAGES 13
+#define ZFREE_PAGES 14
 
 #define ZSCAN_PROCEDURE 0
 #define ZCOPY_PROCEDURE 2
@@ -698,13 +700,10 @@
   void dump_disk_alloc(Disk_alloc_info&);
 
 struct Fragrecord {
-  Uint32 nextStartRange;
-  Uint32 currentPageRange;
-  Uint32 rootPageRange;
   Uint32 noOfPages;
   Uint32 noOfVarPages;
-  Uint32 noOfPagesToGrow;
 
+  DynArr256::Head m_page_map;
   DLList<Page>::Head emptyPrimPage; // allocated pages (not init)
   DLFifoList<Page>::Head thFreeFirst;   // pages with atleast 1 free record
   SLList<Page>::Head m_empty_pages; // Empty pages not in logical/physical map
@@ -854,29 +853,6 @@
 };
 typedef Ptr<Operationrec> OperationrecPtr;
 
-          /* ****************************** PAGE RANGE RECORD ************************** */
-          /* PAGE RANGES AND BASE PAGE ID. EACH RANGE HAS A  CORRESPONDING BASE PAGE ID  */
-          /* THAT IS USED TO  CALCULATE REAL PAGE ID FROM A FRAGMENT PAGE ID AND A TABLE */
-          /* REFERENCE.                                                                  */
-          /* THE PAGE RANGES ARE ORGANISED IN A B-TREE FASHION WHERE THE VARIABLE TYPE   */
-          /* SPECIFIES IF A LEAF NODE HAS BEEN REACHED. IF A LEAF NODE HAS BEEN REACHED  */
-          /* THEN BASE_PAGE_ID IS THE BASE_PAGE_ID OF THE SET OF PAGES THAT WAS          */
-          /* ALLOCATED IN THAT RANGE. OTHERWISE BASE_PAGE_ID IS THE POINTER TO THE NEXT  */
-          /* PAGE_RANGE RECORD.                                                          */
-          /* *************************************************************************** */
-struct PageRange {
-  Uint32 startRange[4];                                  /* START OF RANGE                                   */
-  Uint32 endRange[4];                                    /* END OF THIS RANGE                                */
-  Uint32 basePageId[4];                                  /* BASE PAGE ID.                                    */
-/*----               VARIABLE BASE_PAGE_ID2 (4) 8 DS NEEDED WHEN SUPPORTING 40 BIT PAGE ID           -------*/
-  Uint8 type[4];                                        /* TYPE OF BASE PAGE ID                             */
-  Uint32 nextFree;                                       /* NEXT FREE PAGE RANGE RECORD                      */
-  Uint32 parentPtr;                                      /* THE PARENT TO THE PAGE RANGE REC IN THE B-TREE   */
-  Uint8 currentIndexPos;
-};
-typedef Ptr<PageRange> PageRangePtr;
-
-
   /* ************* TRIGGER DATA ************* */
   /* THIS RECORD FORMS LISTS OF ACTIVE       */
   /* TRIGGERS FOR EACH TABLE.                 */
@@ -2801,9 +2777,9 @@
                         Tablerec* regTabPtr,
                         Uint32 fragId);
 
-
-  void releaseFragment(Signal* signal, Uint32 tableId, Uint32);
+  void releaseFragment(Signal*, Uint32, Uint32);
   void drop_fragment_free_var_pages(Signal*);
+  void drop_fragment_free_pages(Signal*);
   void drop_fragment_free_extent(Signal*, TablerecPtr, FragrecordPtr, Uint32);
   void drop_fragment_free_extent_log_buffer_callback(Signal*, Uint32, Uint32);
   void drop_fragment_unmap_pages(Signal*, TablerecPtr, FragrecordPtr, Uint32);
@@ -2878,30 +2854,16 @@
 //
 // Public methods
   Uint32 getRealpid(Fragrecord* regFragPtr, Uint32 logicalPageId);
+  Uint32 getRealpidCheck(Fragrecord* regFragPtr, Uint32 logicalPageId);
   Uint32 getNoOfPages(Fragrecord* regFragPtr);
-  void initPageRangeSize(Uint32 size);
-  bool insertPageRangeTab(Fragrecord* regFragPtr,
-                          Uint32 startPageId,
-                          Uint32 noPages);
-  void releaseFragPages(Fragrecord* regFragPtr);
-  void initFragRange(Fragrecord* regFragPtr);
-  void initializePageRange();
   Uint32 getEmptyPage(Fragrecord* regFragPtr);
-  Uint32 allocFragPages(Fragrecord* regFragPtr, Uint32 noOfPagesAllocated);
+  Uint32 allocFragPage(Fragrecord* regFragPtr);
+  void releaseFragPages(Fragrecord* regFragPtr);
   Uint32 get_empty_var_page(Fragrecord* frag_ptr);
+  void init_page(Fragrecord*, PagePtr, Uint32 page_no);
   
 // Private methods
-  Uint32 leafPageRangeFull(Fragrecord* regFragPtr, PageRangePtr currPageRangePtr);
-  void releasePagerange(PageRangePtr regPRPtr);
-  void seizePagerange(PageRangePtr& regPageRangePtr);
   void errorHandler(Uint32 errorCode);
-  void allocMoreFragPages(Fragrecord* regFragPtr);
-
-// Private data
-  Uint32 cfirstfreerange;
-  PageRange *pageRange;
-  Uint32 c_noOfFreePageRanges;
-  Uint32 cnoOfPageRangeRec;
 
 //---------------------------------------------------------------
 // Variable Allocator
@@ -2991,6 +2953,7 @@
 
   HostBuffer *hostBuffer;
 
+  DynArr256Pool c_page_map_pool;
   ArrayPool<Operationrec> c_operation_pool;
 
   ArrayPool<Page> c_page_pool;
Thread
bk commit into 5.1 tree (jonas:1.2514)jonas1 May