Commit 685c1fb3 authored by unknown's avatar unknown
Browse files

ndb dd

  Make Dbtup::Extent_info use RWPool for dynamic memory


storage/ndb/src/kernel/blocks/backup/Backup.cpp:
  Use DLCFifoList as noOfElement() is _very_ slow
storage/ndb/src/kernel/blocks/backup/Backup.hpp:
  Use DLCFifoList as noOfElement() is _very_ slow
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  remove usage of DLHashTable::release(ptr, key)
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  remove usage of DLHashTable::release(ptr, key)
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
  Use RWPool for extent_info
storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp:
  Use RWPool for extent_info
storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
  Use RWPool for extent_info
storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
  Use RWPool for extent_info
storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp:
  Use RWPool for extent_info
storage/ndb/src/kernel/blocks/lgman.cpp:
  Fix assertion when using multiple undo files...
storage/ndb/src/kernel/vm/DLHashTable.hpp:
  Add template arg (pool) to DLHashTable
storage/ndb/src/kernel/vm/DLList.hpp:
  Add template arg (pool) to DLList
storage/ndb/src/kernel/vm/RWPool.cpp:
  Add debug printout
storage/ndb/src/kernel/vm/RWPool.hpp:
  Add #ifdef to WOPool
storage/ndb/src/kernel/vm/SLList.hpp:
  Add template arg (pool) to SLList
storage/ndb/src/kernel/vm/SimulatedBlock.hpp:
  Include pools
storage/ndb/src/kernel/vm/WOPool.hpp:
  Add #ifdef to WOPool
parent 89af4e7c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2675,7 +2675,7 @@ Backup::openFilesReply(Signal* signal,
  
  const Uint32 sz = 
    (sizeof(BackupFormat::CtlFile::TableList) >> 2) +
    ptr.p->tables.noOfElements() - 1;
    ptr.p->tables.count() - 1;
  
  Uint32 * dst;
  ndbrequire(sz < buf.getMaxWrite());
+2 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@

#include <SLList.hpp>
#include <DLFifoList.hpp>
#include <DLCFifoList.hpp>
#include <SignalCounter.hpp>
#include <blocks/mutexes.hpp>

@@ -439,7 +440,7 @@ public:
    Uint32 startGCP;
    Uint32 currGCP;
    Uint32 stopGCP;
    DLList<Table> tables;
    DLCFifoList<Table> tables;
    SLList<TriggerRecord> triggers;
    
    SLList<BackupFile> files; 
+2 −1
Original line number Diff line number Diff line
@@ -2366,8 +2366,9 @@ Dblqh::execREMOVE_MARKER_ORD(Signal* signal)
  jamEntry();
  
  CommitAckMarkerPtr removedPtr;
  m_commitAckMarkerHash.release(removedPtr, key);
  m_commitAckMarkerHash.remove(removedPtr, key);
  ndbrequire(removedPtr.i != RNIL);
  m_commitAckMarkerPool.release(removedPtr);
#ifdef MARKER_TRACE
  ndbout_c("Rem marker[%.8x %.8x]", key.transid1, key.transid2);
#endif
+2 −1
Original line number Diff line number Diff line
@@ -4785,13 +4785,14 @@ Dbtc::execTC_COMMIT_ACK(Signal* signal){
  key.transid2 = signal->theData[1];

  CommitAckMarkerPtr removedMarker;
  m_commitAckMarkerHash.release(removedMarker, key);
  m_commitAckMarkerHash.remove(removedMarker, key);
  if (removedMarker.i == RNIL) {
    jam();
    warningHandlerLab(signal, __LINE__);
    return;
  }//if
  sendRemoveMarkers(signal, removedMarker.p);
  m_commitAckMarkerPool.release(removedMarker);
}

void
+11 −6
Original line number Diff line number Diff line
@@ -496,6 +496,7 @@ typedef Ptr<Fragoperrec> FragoperrecPtr;

  struct Extent_info : public Extent_list_t
  {
    Uint32 m_magic;
    Uint32 m_first_page_no;
    Local_key m_key;
    Uint32 m_free_space;
@@ -518,8 +519,12 @@ typedef Ptr<Fragoperrec> FragoperrecPtr;
    }
  }; // 40 bytes

  typedef LocalDLList<Extent_info> Extent_list;

  typedef RecordPool<Extent_info, RWPool> Extent_info_pool;
  typedef DLListImpl<Extent_info_pool, Extent_info> Extent_info_list;
  typedef LocalDLListImpl<Extent_info_pool, Extent_info> Local_extent_info_list;
  typedef DLHashTableImpl<Extent_info_pool, Extent_info> Extent_info_hash;
  typedef SLListImpl<Extent_info_pool, Extent_info, Extent_list_t> Fragment_extent_list;
  typedef LocalSLListImpl<Extent_info_pool, Extent_info, Extent_list_t> Local_fragment_extent_list;
  struct Tablerec;
  struct Disk_alloc_info 
  {
@@ -564,7 +569,7 @@ typedef Ptr<Fragoperrec> FragoperrecPtr;
     * 
     */
    STATIC_CONST( SZ = EXTENT_SEARCH_MATRIX_SIZE );
    DLList<Extent_info>::Head m_free_extents[SZ];
    Extent_info_list::Head m_free_extents[SZ];
    Uint32 m_total_extent_free_space_thresholds[EXTENT_SEARCH_MATRIX_ROWS];
    Uint32 m_page_free_bits_map[EXTENT_SEARCH_MATRIX_COLS];

@@ -588,7 +593,7 @@ typedef Ptr<Fragoperrec> FragoperrecPtr;
      return EXTENT_SEARCH_MATRIX_COLS - 1;
    }

    SLList<Extent_info, Extent_list_t>::Head m_extent_list;
    Fragment_extent_list::Head m_extent_list;
  };
  
  void dump_disk_alloc(Disk_alloc_info&);
@@ -1009,9 +1014,9 @@ ArrayPool<TupTriggerData> c_triggerPool;
    };
  };
  
  ArrayPool<Extent_info> c_extent_pool;
  Extent_info_pool c_extent_pool;
  Extent_info_hash c_extent_hash;
  Page_request_pool c_page_request_pool;
  DLHashTable<Extent_info> c_extent_hash;

  typedef Ptr<Tablerec> TablerecPtr;

Loading