MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:jonas Date:December 7 2006 2:25pm
Subject:bk commit into 5.1 tree (jonas:1.2348)
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, 2006-12-07 15:25:40+01:00, jonas@stripped +8 -0
  Merge perch.ndb.mysql.com:/home/jonas/src/51-work
  into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
  MERGE: 1.2303.71.23

  storage/ndb/include/mgmapi/mgmapi_config_parameters.h@stripped, 2006-12-07 15:25:36+01:00, jonas@stripped +0 -0
    Auto merged
    MERGE: 1.28.1.1

  storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp@stripped, 2006-12-07 15:25:37+01:00, jonas@stripped +0 -0
    Auto merged
    MERGE: 1.77.1.2

  storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp@stripped, 2006-12-07 15:25:37+01:00, jonas@stripped +0 -0
    Auto merged
    MERGE: 1.125.1.3

  storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp@stripped, 2006-12-07 15:25:37+01:00, jonas@stripped +0 -0
    Auto merged
    MERGE: 1.16.1.1

  storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp@stripped, 2006-12-07 15:25:37+01:00, jonas@stripped +0 -0
    Auto merged
    MERGE: 1.45.1.2

  storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp@stripped, 2006-12-07 15:25:37+01:00, jonas@stripped +0 -0
    Auto merged
    MERGE: 1.32.1.2

  storage/ndb/src/kernel/blocks/lgman.cpp@stripped, 2006-12-07 15:25:36+01:00, jonas@stripped +0 -0
    Auto merged
    MERGE: 1.19.1.1

  storage/ndb/src/mgmsrv/ConfigInfo.cpp@stripped, 2006-12-07 15:25:37+01:00, jonas@stripped +0 -0
    Auto merged
    MERGE: 1.90.2.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/mysql-5.1-new-ndb/RESYNC

--- 1.18/storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp	2006-12-07 15:25:45 +01:00
+++ 1.19/storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp	2006-12-07 15:25:45 +01:00
@@ -68,6 +68,26 @@
   return out;
 }
 
+#if NOT_YET_FREE_EXTENT
+static
+inline
+bool
+check_free(const Dbtup::Extent_info* extP)
+{
+  Uint32 res = 0;
+  for (Uint32 i = 1; i<MAX_FREE_LIST; i++)
+    res += extP->m_free_page_count[i];
+  return res;
+}
+#error "Code for deallocting extents when they get empty"
+#error "This code is not yet complete"
+#endif
+
+#if NOT_YET_UNDO_ALLOC_EXTENT
+#error "This is needed for deallocting extents when they get empty"
+#error "This code is not complete yet"
+#endif
+
 void 
 Dbtup::dump_disk_alloc(Dbtup::Disk_alloc_info & alloc)
 {
@@ -444,23 +464,71 @@
       /**
        * We need to alloc an extent
        */
+#if NOT_YET_UNDO_ALLOC_EXTENT
+      Uint32 logfile_group_id = fragPtr.p->m_logfile_group_id;
+
+      err = c_lgman->alloc_log_space(logfile_group_id,
+				     sizeof(Disk_undo::AllocExtent)>>2);
+      if(unlikely(err))
+      {
+	return -err;
+      }
+#endif
+
       if (!c_extent_pool.seize(ext))
       {
+	jam();
 	//XXX
 	err= 2;
+#if NOT_YET_UNDO_ALLOC_EXTENT
+	c_lgman->free_log_space(logfile_group_id, 
+				sizeof(Disk_undo::AllocExtent)>>2);
+#endif
 	c_page_request_pool.release(req);
 	ndbout_c("no free extent info");
 	return -err;
       }
-
+      
       if ((err= tsman.alloc_extent(&ext.p->m_key)) < 0)
       {
+	jam();
+#if NOT_YET_UNDO_ALLOC_EXTENT
+	c_lgman->free_log_space(logfile_group_id, 
+				sizeof(Disk_undo::AllocExtent)>>2);
+#endif
 	c_extent_pool.release(ext);
 	c_page_request_pool.release(req);
 	return err;
       }
 
       int pages= err;
+#if NOT_YET_UNDO_ALLOC_EXTENT
+      {
+	/**
+	 * Do something here
+	 */
+	{
+	  Callback cb;
+	  cb.m_callbackData= ext.i;
+	  cb.m_callbackFunction = 
+	    safe_cast(&Dbtup::disk_page_alloc_extent_log_buffer_callback);
+	  Uint32 sz= sizeof(Disk_undo::AllocExtent)>>2;
+	  
+	  Logfile_client lgman(this, c_lgman, logfile_group_id);
+	  int res= lgman.get_log_buffer(signal, sz, &cb);
+	  switch(res){
+	  case 0:
+	    break;
+	  case -1:
+	    ndbrequire("NOT YET IMPLEMENTED" == 0);
+	    break;
+	  default:
+	    execute(signal, cb, res);	    
+	  }
+	}
+      }
+#endif
+      
       ndbout << "allocated " << pages << " pages: " << ext.p->m_key << endl;
       ext.p->m_first_page_no = ext.p->m_key.m_page_no;
       bzero(ext.p->m_free_page_count, sizeof(ext.p->m_free_page_count));
@@ -1016,6 +1084,12 @@
   
   extentPtr.p->m_free_space += sz;
   update_extent_pos(alloc, extentPtr);
+#if NOT_YET_FREE_EXTENT
+  if (check_free(extentPtr.p) == 0)
+  {
+    ndbout_c("free: extent is free");
+  }
+#endif
 }
 
 void
@@ -1118,14 +1192,56 @@
 
   extentPtr.p->m_free_space += sz;
   update_extent_pos(alloc, extentPtr);
+#if NOT_YET_FREE_EXTENT
+  if (check_free(extentPtr.p) == 0)
+  {
+    ndbout_c("abort: extent is free");
+  }
+#endif
+}
+
+#if NOT_YET_UNDO_ALLOC_EXTENT
+void
+Dbtup::disk_page_alloc_extent_log_buffer_callback(Signal* signal,
+						  Uint32 extentPtrI,
+						  Uint32 unused)
+{
+  Ptr<Extent_info> extentPtr;
+  c_extent_pool.getPtr(extentPtr, extentPtrI);
+
+  Local_key key = extentPtr.p->m_key;
+  Tablespace_client2 tsman(signal, c_tsman, &key);
+
+  Ptr<Tablerec> tabPtr;
+  tabPtr.i= tsman.m_table_id;
+  ptrCheckGuard(tabPtr, cnoOfTablerec, tablerec);
+  
+  Ptr<Fragrecord> fragPtr;
+  getFragmentrec(fragPtr, tsman.m_fragment_id, tabPtr.p);
+
+  Logfile_client lgman(this, c_lgman, fragPtr.p->m_logfile_group_id);
+
+  Disk_undo::AllocExtent alloc;
+  alloc.m_table = tabPtr.i;
+  alloc.m_fragment = tsman.m_fragment_id;
+  alloc.m_page_no = key.m_page_no;
+  alloc.m_file_no = key.m_file_no;
+  alloc.m_type_length = (Disk_undo::UNDO_ALLOC_EXTENT<<16)|(sizeof(alloc)>> 2);
+  
+  Logfile_client::Change c[1] = {{ &alloc, sizeof(alloc) >> 2 } };
+  
+  Uint64 lsn= lgman.add_entry(c, 1);
+  
+  tsman.update_lsn(&key, lsn);
 }
+#endif
 
 Uint64
 Dbtup::disk_page_undo_alloc(Page* page, const Local_key* key,
 			    Uint32 sz, Uint32 gci, Uint32 logfile_group_id)
 {
-  Logfile_client lsman(this, c_lgman, logfile_group_id);
-
+  Logfile_client lgman(this, c_lgman, logfile_group_id);
+  
   Disk_undo::Alloc alloc;
   alloc.m_type_length= (Disk_undo::UNDO_ALLOC << 16) | (sizeof(alloc) >> 2);
   alloc.m_page_no = key->m_page_no;
@@ -1133,7 +1249,7 @@
   
   Logfile_client::Change c[1] = {{ &alloc, sizeof(alloc) >> 2 } };
   
-  Uint64 lsn= lsman.add_entry(c, 1);
+  Uint64 lsn= lgman.add_entry(c, 1);
   m_pgman.update_lsn(* key, lsn);
 
   return lsn;
@@ -1144,7 +1260,7 @@
 			     const Uint32* src, Uint32 sz,
 			     Uint32 gci, Uint32 logfile_group_id)
 {
-  Logfile_client lsman(this, c_lgman, logfile_group_id);
+  Logfile_client lgman(this, c_lgman, logfile_group_id);
 
   Disk_undo::Update update;
   update.m_page_no = key->m_page_no;
@@ -1162,7 +1278,7 @@
 
   ndbassert(4*(3 + sz + 1) == (sizeof(update) + 4*sz - 4));
     
-  Uint64 lsn= lsman.add_entry(c, 3);
+  Uint64 lsn= lgman.add_entry(c, 3);
   m_pgman.update_lsn(* key, lsn);
 
   return lsn;
@@ -1173,7 +1289,7 @@
 			   const Uint32* src, Uint32 sz,
 			   Uint32 gci, Uint32 logfile_group_id)
 {
-  Logfile_client lsman(this, c_lgman, logfile_group_id);
+  Logfile_client lgman(this, c_lgman, logfile_group_id);
 
   Disk_undo::Free free;
   free.m_page_no = key->m_page_no;
@@ -1191,7 +1307,7 @@
   
   ndbassert(4*(3 + sz + 1) == (sizeof(free) + 4*sz - 4));
   
-  Uint64 lsn= lsman.add_entry(c, 3);
+  Uint64 lsn= lgman.add_entry(c, 3);
   m_pgman.update_lsn(* key, lsn);
 
   return lsn;
@@ -1221,7 +1337,7 @@
     ndbrequire(len == 3);
     Uint32 tableId = ptr[1] >> 16;
     Uint32 fragId = ptr[1] & 0xFFFF;
-    disk_restart_undo_lcp(tableId, fragId);
+    disk_restart_undo_lcp(tableId, fragId, Fragrecord::UC_LCP);
     disk_restart_undo_next(signal);
     return;
   }
@@ -1260,10 +1376,20 @@
     ptrCheckGuard(tabPtr, cnoOfTablerec, tablerec);
     for(Uint32 i = 0; i<MAX_FRAG_PER_NODE; i++)
       if (tabPtr.p->fragrec[i] != RNIL)
-	disk_restart_undo_lcp(tabPtr.i, tabPtr.p->fragid[i]);
+	disk_restart_undo_lcp(tabPtr.i, tabPtr.p->fragid[i], 
+			      Fragrecord::UC_CREATE);
     disk_restart_undo_next(signal);
     return;
   }
+  case File_formats::Undofile::UNDO_TUP_DROP:
+    jam();
+  case File_formats::Undofile::UNDO_TUP_ALLOC_EXTENT:
+    jam();
+  case File_formats::Undofile::UNDO_TUP_FREE_EXTENT:
+    jam();
+    disk_restart_undo_next(signal);
+    return;
+
   case File_formats::Undofile::UNDO_END:
     f_undo_done = true;
     return;
@@ -1297,7 +1423,7 @@
 }
 
 void
-Dbtup::disk_restart_undo_lcp(Uint32 tableId, Uint32 fragId)
+Dbtup::disk_restart_undo_lcp(Uint32 tableId, Uint32 fragId, Uint32 flag)
 {
   Ptr<Tablerec> tabPtr;
   tabPtr.i= tableId;
@@ -1309,7 +1435,7 @@
     getFragmentrec(fragPtr, fragId, tabPtr.p);
     if (!fragPtr.isNull())
     {
-      fragPtr.p->m_undo_complete = true;
+      fragPtr.p->m_undo_complete |= flag;
     }
   }
 }
@@ -1518,6 +1644,12 @@
   if (tabPtr.p->tableStatus == DEFINED)
   {
     getFragmentrec(fragPtr, fragId, tabPtr.p);
+    if (fragPtr.p->m_undo_complete & Fragrecord::UC_CREATE)
+    {
+      jam();
+      return -1;
+    }
+
     if (!fragPtr.isNull())
     {
       Disk_alloc_info& alloc= fragPtr.p->m_disk_alloc_info;

--- 1.20/storage/ndb/src/kernel/blocks/lgman.cpp	2006-12-07 15:25:45 +01:00
+++ 1.21/storage/ndb/src/kernel/blocks/lgman.cpp	2006-12-07 15:25:45 +01:00
@@ -1160,14 +1160,15 @@
   bool removed= false;
   Ptr<Log_waiter> waiter;
   list.first(waiter);
+  Uint32 logfile_group_id = ptr.p->m_logfile_group_id;
 
   if(waiter.p->m_sync_lsn <= ptr.p->m_last_synced_lsn)
   {
     removed= true;
     Uint32 block = waiter.p->m_block;
     SimulatedBlock* b = globalData.getBlock(block);
-    b->execute(signal, waiter.p->m_callback, 0);
-
+    b->execute(signal, waiter.p->m_callback, logfile_group_id);
+    
     list.releaseFirst(waiter);
   }
   
@@ -1522,12 +1523,13 @@
   bool removed= false;
   Ptr<Log_waiter> waiter;
   list.first(waiter);
+  Uint32 logfile_group_id = ptr.p->m_logfile_group_id;
   if(waiter.p->m_size + 2*File_formats::UNDO_PAGE_WORDS < free_buffer)
   {
     removed= true;
     Uint32 block = waiter.p->m_block;
     SimulatedBlock* b = globalData.getBlock(block);
-    b->execute(signal, waiter.p->m_callback, 0);
+    b->execute(signal, waiter.p->m_callback, logfile_group_id);
 
     list.releaseFirst(waiter);
   }
@@ -2699,6 +2701,9 @@
     case File_formats::Undofile::UNDO_TUP_UPDATE:
     case File_formats::Undofile::UNDO_TUP_FREE:
     case File_formats::Undofile::UNDO_TUP_CREATE:
+    case File_formats::Undofile::UNDO_TUP_DROP:
+    case File_formats::Undofile::UNDO_TUP_ALLOC_EXTENT:
+    case File_formats::Undofile::UNDO_TUP_FREE_EXTENT:
       tup->disk_restart_undo(signal, lsn, mask, ptr - len + 1, len);
       return;
     default:

--- 1.29/storage/ndb/include/mgmapi/mgmapi_config_parameters.h	2006-12-07 15:25:45 +01:00
+++ 1.30/storage/ndb/include/mgmapi/mgmapi_config_parameters.h	2006-12-07 15:25:45 +01:00
@@ -96,6 +96,8 @@
 #define CFG_DB_CHECKPOINT_SPEED       164
 #define CFG_DB_CHECKPOINT_SPEED_SR    165
 
+#define CFG_DB_MEMREPORT_FREQUENCY    166
+
 #define CFG_DB_SGA                    198 /* super pool mem */
 #define CFG_DB_DATA_MEM_2             199 /* used in special build in 5.1 */
 

--- 1.92/storage/ndb/src/mgmsrv/ConfigInfo.cpp	2006-12-07 15:25:45 +01:00
+++ 1.93/storage/ndb/src/mgmsrv/ConfigInfo.cpp	2006-12-07 15:25:45 +01:00
@@ -1289,6 +1289,18 @@
     "0",
     "0",
     STR_VALUE(MAX_INT_RNIL) },
+
+  { 
+    CFG_DB_MEMREPORT_FREQUENCY,
+    "MemReportFrequency",
+    DB_TOKEN,
+    "Frequency of mem reports in seconds, 0 = only when passing %-limits",
+    ConfigInfo::CI_USED,
+    false,
+    ConfigInfo::CI_INT,
+    "0",
+    "0",
+    STR_VALUE(MAX_INT_RNIL) },
   
   /***************************************************************************
    * API

--- 1.79/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp	2006-12-07 15:25:45 +01:00
+++ 1.80/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp	2006-12-07 15:25:45 +01:00
@@ -112,6 +112,7 @@
     }
   case ZREPORT_MEMORY_USAGE:{
     jam();
+    Uint32 cnt = signal->theData[1];
     static int c_currentMemUsed = 0;
     int now = cpagesize ? (cnoOfAllocatedPages * 100)/cpagesize : 0;
     const int thresholds[] = { 99, 90, 80, 0};
@@ -125,14 +126,22 @@
       }
     }
     
-    if(now != c_currentMemUsed){
-      reportMemoryUsage(signal, now > c_currentMemUsed ? 1 : -1);
+    if(now != c_currentMemUsed || 
+       (c_memusage_report_frequency && cnt + 1 == c_memusage_report_frequency))
+    {
+      reportMemoryUsage(signal, 
+			now > c_currentMemUsed ? 1 : 
+			now < c_currentMemUsed ? -1 : 0);
+      cnt = 0;
+      c_currentMemUsed = now;
+    }
+    else
+    {
+      cnt ++;
     }
-    
-    c_currentMemUsed = now;
-    
     signal->theData[0] = ZREPORT_MEMORY_USAGE;
-    sendSignalWithDelay(reference(), GSN_CONTINUEB, signal, 2000, 1);    
+    signal->theData[1] = cnt;
+    sendSignalWithDelay(reference(), GSN_CONTINUEB, signal, 1000, 2);    
     return;
   }
 
@@ -199,7 +208,8 @@
     csystemRestart = ZFALSE;
 
     signal->theData[0] = ZREPORT_MEMORY_USAGE;
-    sendSignalWithDelay(reference(), GSN_CONTINUEB, signal, 2000, 1);    
+    signal->theData[1] = 0;
+    sendSignalWithDelay(reference(), GSN_CONTINUEB, signal, 1000, 2);    
     break;
   default:
     jam();
@@ -353,6 +363,10 @@
   initRecords();
   ndbrestart1Lab(signal);
 
+  c_memusage_report_frequency = 0;
+  ndb_mgm_get_int_parameter(p, CFG_DB_MEMREPORT_FREQUENCY, 
+			    &c_memusage_report_frequency);
+  
   tdata0 = 0;
   initialiseRecordsLab(signal, ref, senderData);
   return;

--- 1.127/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2006-12-07 15:25:45 +01:00
+++ 1.128/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2006-12-07 15:25:45 +01:00
@@ -11276,7 +11276,7 @@
       /**
        * First fragment mean that last LCP is complete :-)
        */
-      EXECUTE_DIRECT(TSMAN, GSN_END_LCP_REQ, signal, signal->length());
+      EXECUTE_DIRECT(TSMAN, GSN_LCP_FRAG_ORD, signal, signal->length());
       jamEntry();
     }
     
@@ -11327,7 +11327,7 @@
       /**
        * First fragment mean that last LCP is complete :-)
        */
-      EXECUTE_DIRECT(TSMAN, GSN_END_LCP_REQ, signal, signal->length());
+      EXECUTE_DIRECT(TSMAN, GSN_LCP_FRAG_ORD, signal, signal->length());
       jamEntry();
     }
     
@@ -11610,6 +11610,9 @@
 
   sendSignal(LGMAN_REF, GSN_END_LCP_REQ, signal, 
 	     EndLcpReq::SignalLength, JBB);
+  
+  EXECUTE_DIRECT(TSMAN, GSN_END_LCP_REQ, signal, EndLcpReq::SignalLength);
+  jamEntry();
   
   lcpPtr.i = 0;
   ptrAss(lcpPtr, lcpRecord);

--- 1.48/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp	2006-12-07 15:25:45 +01:00
+++ 1.49/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp	2006-12-07 15:25:45 +01:00
@@ -3126,7 +3126,7 @@
     disk_page_set_dirty(disk_page);
 
     preq.m_callback.m_callbackFunction =
-      safe_cast(&Dbtup::nr_delete_logbuffer_callback);      
+      safe_cast(&Dbtup::nr_delete_log_buffer_callback);      
     Logfile_client lgman(this, c_lgman, fragPtr.p->m_logfile_group_id);
     res= lgman.get_log_buffer(signal, sz, &preq.m_callback);
     switch(res){
@@ -3179,7 +3179,7 @@
   Callback cb;
   cb.m_callbackData = userpointer;
   cb.m_callbackFunction =
-    safe_cast(&Dbtup::nr_delete_logbuffer_callback);      
+    safe_cast(&Dbtup::nr_delete_log_buffer_callback);      
   Logfile_client lgman(this, c_lgman, fragPtr.p->m_logfile_group_id);
   int res= lgman.get_log_buffer(signal, sz, &cb);
   switch(res){
@@ -3199,7 +3199,7 @@
 }
 
 void
-Dbtup::nr_delete_logbuffer_callback(Signal* signal, 
+Dbtup::nr_delete_log_buffer_callback(Signal* signal, 
 				    Uint32 userpointer, 
 				    Uint32 unused)
 {

--- 1.33/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp	2006-12-07 15:25:45 +01:00
+++ 1.34/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp	2006-12-07 15:25:45 +01:00
@@ -164,11 +164,12 @@
     break;
   case ZREL_FRAG:
     ljam();
-    releaseFragment(signal, dataPtr);
+    releaseFragment(signal, dataPtr, signal->theData[2]);
     break;
   case ZREPORT_MEMORY_USAGE:{
     ljam();
     static int c_currentMemUsed = 0;
+    Uint32 cnt = signal->theData[1];
     Uint32 tmp = c_page_pool.getSize();
     int now = tmp ? (cnoOfAllocatedPages * 100)/tmp : 0;
     const int thresholds[] = { 100, 90, 80, 0 };
@@ -182,12 +183,22 @@
       }
     }
 
-    if(now != c_currentMemUsed){
-      reportMemoryUsage(signal, now > c_currentMemUsed ? 1 : -1);
+    if(now != c_currentMemUsed || 
+       (c_memusage_report_frequency && cnt + 1 == c_memusage_report_frequency))
+    {
+      reportMemoryUsage(signal, 
+			now > c_currentMemUsed ? 1 : 
+			now < c_currentMemUsed ? -1 : 0);
+      cnt = 0;
       c_currentMemUsed = now;
+    } 
+    else
+    {
+      cnt++;
     }
     signal->theData[0] = ZREPORT_MEMORY_USAGE;
-    sendSignalWithDelay(reference(), GSN_CONTINUEB, signal, 2000, 1);    
+    signal->theData[1] = cnt;
+    sendSignalWithDelay(reference(), GSN_CONTINUEB, signal, 1000, 2);    
     return;
   }
   case ZBUILD_INDEX:
@@ -212,7 +223,7 @@
     fragPtr.i= signal->theData[2];
     ptrCheckGuard(tabPtr, cnoOfTablerec, tablerec);
     ptrCheckGuard(fragPtr, cnoOfFragrec, fragrecord);
-    drop_fragment_free_exent(signal, tabPtr, fragPtr, signal->theData[3]);
+    drop_fragment_free_extent(signal, tabPtr, fragPtr, signal->theData[3]);
     return;
   }
   case ZUNMAP_PAGES:
@@ -337,6 +348,10 @@
   clastBitMask = 1;
   clastBitMask = clastBitMask << 31;
 
+  c_memusage_report_frequency = 0;
+  ndb_mgm_get_int_parameter(p, CFG_DB_MEMREPORT_FREQUENCY, 
+			    &c_memusage_report_frequency);
+  
   initialiseRecordsLab(signal, 0, ref, senderData);
 }//Dbtup::execSIZEALT_REP()
 
@@ -502,7 +517,8 @@
 /*       RESTART.                        */
 /*****************************************/
     signal->theData[0] = ZREPORT_MEMORY_USAGE;
-    sendSignalWithDelay(reference(), GSN_CONTINUEB, signal, 2000, 1);    
+    signal->theData[1] = 0;
+    sendSignalWithDelay(reference(), GSN_CONTINUEB, signal, 1000, 1);    
     break;
   default:
     ljam();
Thread
bk commit into 5.1 tree (jonas:1.2348)jonas7 Dec