summaryrefslogtreecommitdiff
path: root/storage/ndb/src/kernel/blocks/pgman.cpp
diff options
context:
space:
mode:
authorunknown <tomas@whalegate.ndb.mysql.com>2007-05-28 12:20:34 +0200
committerunknown <tomas@whalegate.ndb.mysql.com>2007-05-28 12:20:34 +0200
commit07086b2e09b822089745ecbc9703729bf68ce9fc (patch)
tree835aaf87ddcdb43acbe042c90800d10a1c33e7b6 /storage/ndb/src/kernel/blocks/pgman.cpp
parentbabe38a4257bf80d30c324da20648ae6a8f0fc7a (diff)
downloadmariadb-git-07086b2e09b822089745ecbc9703729bf68ce9fc.tar.gz
Bug #28525 Node failures in PGMAN at ndbrequire (line 430)
(part 2)
Diffstat (limited to 'storage/ndb/src/kernel/blocks/pgman.cpp')
-rw-r--r--storage/ndb/src/kernel/blocks/pgman.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/storage/ndb/src/kernel/blocks/pgman.cpp b/storage/ndb/src/kernel/blocks/pgman.cpp
index 09335396a07..72333856cf1 100644
--- a/storage/ndb/src/kernel/blocks/pgman.cpp
+++ b/storage/ndb/src/kernel/blocks/pgman.cpp
@@ -948,9 +948,11 @@ Pgman::process_map(Signal* signal)
#ifdef VM_TRACE
debugOut << "PGMAN: >process_map" << endl;
#endif
- int max_count = m_param.m_max_io_waits - m_stats.m_current_io_waits;
- if (max_count > 0)
+ int max_count = 0;
+ if (m_param.m_max_io_waits > m_stats.m_current_io_waits) {
+ max_count = m_param.m_max_io_waits - m_stats.m_current_io_waits;
max_count = max_count / 2 + 1;
+ }
Page_sublist& pl_map = *m_page_sublist[Page_entry::SL_MAP];
while (! pl_map.isEmpty() && --max_count >= 0)
@@ -1102,15 +1104,10 @@ Pgman::process_cleanup(Signal* signal)
}
int max_loop_count = m_param.m_max_loop_count;
- int max_count = m_param.m_max_io_waits - m_stats.m_current_io_waits;
-
- if (max_count > 0)
- {
+ int max_count = 0;
+ if (m_param.m_max_io_waits > m_stats.m_current_io_waits) {
+ max_count = m_param.m_max_io_waits - m_stats.m_current_io_waits;
max_count = max_count / 2 + 1;
- /*
- * Possibly add code here to avoid writing too rapidly. May be
- * unnecessary since only cold pages are cleaned.
- */
}
Ptr<Page_entry> ptr = m_cleanup_ptr;
@@ -1212,9 +1209,12 @@ bool
Pgman::process_lcp(Signal* signal)
{
Page_hashlist& pl_hash = m_page_hashlist;
- int max_count = m_param.m_max_io_waits - m_stats.m_current_io_waits;
- if (max_count > 0)
+
+ int max_count = 0;
+ if (m_param.m_max_io_waits > m_stats.m_current_io_waits) {
+ max_count = m_param.m_max_io_waits - m_stats.m_current_io_waits;
max_count = max_count / 2 + 1;
+ }
#ifdef VM_TRACE
debugOut