From: Jan Wedvik Date: June 24 2011 11:19am Subject: bzr commit into mysql-5.1-telco-7.0-spj-scan-vs-scan branch (jan.wedvik:3515) List-Archive: http://lists.mysql.com/commits/139815 Message-Id: <20110624111947.A8B45225@fimafeng09.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6272763353613129308==" --===============6272763353613129308== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///net/atum17/export/home/tmp/jw159207/mysql/repo/push-scan-scan/ based on revid:ole.john.aske@stripped 3515 Jan Wedvik 2011-06-24 This is a refactoring, replacing m_frags_not_complete with m_frags_complete to improve readability. modified: storage/ndb/src/kernel/blocks/dbspj/Dbspj.hpp storage/ndb/src/kernel/blocks/dbspj/DbspjMain.cpp === modified file 'storage/ndb/src/kernel/blocks/dbspj/Dbspj.hpp' --- a/storage/ndb/src/kernel/blocks/dbspj/Dbspj.hpp 2011-05-04 11:45:33 +0000 +++ b/storage/ndb/src/kernel/blocks/dbspj/Dbspj.hpp 2011-06-24 11:19:41 +0000 @@ -532,7 +532,7 @@ public: struct ScanIndexData { - Uint16 m_frags_not_complete; + Uint16 m_frags_complete; Uint16 m_frags_outstanding; Uint32 m_rows_received; // #execTRANSID_AI Uint32 m_rows_expecting; // Sum(ScanFragConf) === modified file 'storage/ndb/src/kernel/blocks/dbspj/DbspjMain.cpp' --- a/storage/ndb/src/kernel/blocks/dbspj/DbspjMain.cpp 2011-06-16 08:37:10 +0000 +++ b/storage/ndb/src/kernel/blocks/dbspj/DbspjMain.cpp 2011-06-24 11:19:41 +0000 @@ -4449,7 +4449,7 @@ Dbspj::parseScanIndex(Build_context& ctx ScanIndexData& data = treeNodePtr.p->m_scanindex_data; data.m_fragments.init(); data.m_frags_outstanding = 0; - data.m_frags_not_complete = 0; + data.m_frags_complete = 0; data.m_batch_chunks = 0; err = parseDA(ctx, requestPtr, treeNodePtr, @@ -4679,6 +4679,7 @@ Dbspj::execDIH_SCAN_TAB_CONF(Signal* sig } } } + data.m_frags_complete = data.m_fragCount; if (!pruned) { @@ -4966,7 +4967,8 @@ Dbspj::scanIndex_parent_batch_complete(S data.m_rows_received = 0; data.m_rows_expecting = 0; ndbassert(data.m_frags_outstanding == 0); - ndbassert(data.m_frags_not_complete == 0); + ndbassert(data.m_frags_complete == data.m_fragCount); + data.m_frags_complete = 0; Ptr fragPtr; { @@ -4975,32 +4977,33 @@ Dbspj::scanIndex_parent_batch_complete(S if ((treeNodePtr.p->m_bits & TreeNode::T_PRUNE_PATTERN) == 0) { - if (fragPtr.p->m_rangePtrI != RNIL) + if (fragPtr.p->m_rangePtrI == RNIL) { - // No pruning, so we must scan all fragments. + // No keys found jam(); - data.m_frags_not_complete = data.m_fragCount; + data.m_frags_complete = data.m_fragCount; } } else { while(!fragPtr.isNull()) { - if (fragPtr.p->m_rangePtrI != RNIL) + if (fragPtr.p->m_rangePtrI == RNIL) { jam(); /** * This is a pruned scan, so we must scan those fragments that * some distribution key hashed to. */ - data.m_frags_not_complete++; + fragPtr.p->m_state = ScanFragHandle::SFH_COMPLETE; + data.m_frags_complete++; } list.next(fragPtr); } } } - if (data.m_frags_not_complete == 0) + if (data.m_frags_complete == data.m_fragCount) { jam(); /** @@ -5058,7 +5061,7 @@ Dbspj::scanIndex_send(Signal* signal, if (treeNodePtr.p->m_bits & TreeNode::T_SCAN_PARALLEL) { jam(); - cnt = data.m_frags_not_complete; + cnt = data.m_fragCount - data.m_frags_complete; ndbrequire(cnt > 0); bs_rows /= cnt; @@ -5194,7 +5197,8 @@ Dbspj::scanIndex_send(Signal* signal, if (treeNodePtr.p->m_bits & TreeNode::T_SCAN_PARALLEL) { - ndbrequire(data.m_frags_outstanding == data.m_frags_not_complete); + ndbrequire(data.m_frags_outstanding == + data.m_fragCount - data.m_frags_complete); } else { @@ -5295,10 +5299,10 @@ Dbspj::scanIndex_execSCAN_FRAGCONF(Signa { jam(); fragPtr.p->m_state = ScanFragHandle::SFH_COMPLETE; - ndbrequire(data.m_frags_not_complete>0); - data.m_frags_not_complete--; + ndbrequire(data.m_frags_complete < data.m_fragCount); + data.m_frags_complete++; - if (data.m_frags_not_complete == 0) + if (data.m_frags_complete == data.m_fragCount) { jam(); ndbrequire(requestPtr.p->m_cnt_active); @@ -5355,12 +5359,12 @@ Dbspj::scanIndex_execSCAN_FRAGREF(Signal fragPtr.p->m_state = ScanFragHandle::SFH_COMPLETE; ScanIndexData& data = treeNodePtr.p->m_scanindex_data; - ndbrequire(data.m_frags_not_complete > 0); - data.m_frags_not_complete--; + ndbrequire(data.m_frags_complete < data.m_fragCount); + data.m_frags_complete++; ndbrequire(data.m_frags_outstanding > 0); data.m_frags_outstanding--; - if (data.m_frags_not_complete == 0) + if (data.m_frags_complete == data.m_fragCount) { jam(); ndbrequire(requestPtr.p->m_cnt_active); @@ -5391,8 +5395,8 @@ Dbspj::scanIndex_execSCAN_NEXTREQ(Signal data.m_rows_expecting = 0; ndbassert(data.m_frags_outstanding == 0); - ndbrequire(data.m_frags_not_complete>0); - Uint32 cnt = data.m_frags_not_complete; + ndbrequire(data.m_frags_complete < data.m_fragCount); + Uint32 cnt = data.m_fragCount - data.m_frags_complete; if ((treeNodePtr.p->m_bits & TreeNode::T_SCAN_PARALLEL) == 0) { jam(); @@ -5581,7 +5585,7 @@ Dbspj::scanIndex_execNODE_FAILREP(Signal Ptr fragPtr; Uint32 save0 = data.m_frags_outstanding; - Uint32 save1 = data.m_frags_not_complete; + Uint32 save1 = data.m_frags_complete; for (list.first(fragPtr); !fragPtr.isNull(); list.next(fragPtr)) { @@ -5597,8 +5601,8 @@ Dbspj::scanIndex_execNODE_FAILREP(Signal switch(fragPtr.p->m_state){ case ScanFragHandle::SFH_NOT_STARTED: jam(); - ndbrequire(data.m_frags_not_complete > 0); - data.m_frags_not_complete--; + ndbrequire(data.m_frags_complete < data.m_fragCount); + data.m_frags_complete++; // fall through case ScanFragHandle::SFH_COMPLETE: jam(); @@ -5618,8 +5622,8 @@ Dbspj::scanIndex_execNODE_FAILREP(Signal case ScanFragHandle::SFH_WAIT_NEXTREQ: jam(); sum++; - ndbrequire(data.m_frags_not_complete > 0); - data.m_frags_not_complete--; + ndbrequire(data.m_frags_complete < data.m_fragCount); + data.m_frags_complete++; break; } fragPtr.p->m_ref = 0; @@ -5633,7 +5637,8 @@ Dbspj::scanIndex_execNODE_FAILREP(Signal requestPtr.p->m_outstanding--; } - if (save1 != 0 && data.m_frags_not_complete == 0) + if (save1 != data.m_fragCount + && data.m_frags_complete == data.m_fragCount) { jam(); ndbrequire(requestPtr.p->m_cnt_active); --===============6272763353613129308== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/jan.wedvik@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: jan.wedvik@stripped # target_branch: file:///net/atum17/export/home/tmp/jw159207/mysql\ # /repo/push-scan-scan/ # testament_sha1: 4be4dda39025bbd9215c5aecc25eab0a0c0151a4 # timestamp: 2011-06-24 13:19:47 +0200 # source_branch: bzr+ssh://jwedvik@stripped/bzrroot\ # /server/mysql-5.1-telco-7.0/ # base_revision_id: ole.john.aske@stripped\ # dp3k4gy5rx9tzmxn # # Begin bundle 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 TP8XckU4UJCyx9NP --===============6272763353613129308==--