You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by db...@apache.org on 2015/10/30 16:42:37 UTC
[1/2] incubator-trafodion git commit: [TRAFODION-25] Fix bug
preventing fully parallelized DELETEs
Repository: incubator-trafodion
Updated Branches:
refs/heads/master 693090511 -> 0abb3b6ca
[TRAFODION-25] Fix bug preventing fully parallelized DELETEs
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/10d80035
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/10d80035
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/10d80035
Branch: refs/heads/master
Commit: 10d80035ae0803d9156da381a418dccc8b264186
Parents: 7cf4caa
Author: Dave Birdsall <db...@apache.org>
Authored: Wed Oct 28 23:24:24 2015 +0000
Committer: Dave Birdsall <db...@apache.org>
Committed: Wed Oct 28 23:24:24 2015 +0000
----------------------------------------------------------------------
core/sql/optimizer/OptPhysRelExpr.cpp | 107 +++++++++++++++++++----------
core/sql/optimizer/ScmCostMethod.cpp | 13 +++-
2 files changed, 79 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/10d80035/core/sql/optimizer/OptPhysRelExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/OptPhysRelExpr.cpp b/core/sql/optimizer/OptPhysRelExpr.cpp
index fc256c6..69f22e9 100644
--- a/core/sql/optimizer/OptPhysRelExpr.cpp
+++ b/core/sql/optimizer/OptPhysRelExpr.cpp
@@ -16565,21 +16565,35 @@ HbaseDelete::synthPhysicalProperty(const Context* myContext,
const Lng32 planNumber,
PlanWorkSpace *pws)
{
-
- //----------------------------------------------------------
- // Create a node map with a single, active, wild-card entry.
- //----------------------------------------------------------
- NodeMap* myNodeMap = new(CmpCommon::statementHeap())
- NodeMap(CmpCommon::statementHeap(),
- 1,
- NodeMapEntry::ACTIVE);
+ const ReqdPhysicalProperty* rppForMe =
+ myContext->getReqdPhysicalProperty();
+ PartitioningRequirement* partReqForMe =
+ rppForMe->getPartitioningRequirement();
//------------------------------------------------------------
- // Synthesize a partitioning function with a single partition.
+ // Synthesize a partitioning function with a single partition
+ // unless we have a partitioning requirement that says
+ // otherwise.
//------------------------------------------------------------
- PartitioningFunction* myPartFunc =
- new(CmpCommon::statementHeap())
- SinglePartitionPartitioningFunction(myNodeMap);
+ PartitioningFunction* myPartFunc = NULL;
+
+ if (partReqForMe &&
+ partReqForMe->castToRequireReplicateNoBroadcast())
+ {
+ myPartFunc =
+ partReqForMe->castToRequireReplicateNoBroadcast()->
+ getPartitioningFunction()->copy();
+ }
+ else
+ {
+ // Create a node map with a single, active, wild-card entry.
+ NodeMap* myNodeMap = new(CmpCommon::statementHeap())
+ NodeMap(CmpCommon::statementHeap(),
+ 1,
+ NodeMapEntry::ACTIVE);
+ myPartFunc = new(CmpCommon::statementHeap())
+ SinglePartitionPartitioningFunction(myNodeMap);
+ }
PhysicalProperty * sppForMe =
new(CmpCommon::statementHeap())
@@ -16613,21 +16627,35 @@ HbaseUpdate::synthPhysicalProperty(const Context* myContext,
const Lng32 planNumber,
PlanWorkSpace *pws)
{
-
- //----------------------------------------------------------
- // Create a node map with a single, active, wild-card entry.
- //----------------------------------------------------------
- NodeMap* myNodeMap = new(CmpCommon::statementHeap())
- NodeMap(CmpCommon::statementHeap(),
- 1,
- NodeMapEntry::ACTIVE);
+ const ReqdPhysicalProperty* rppForMe =
+ myContext->getReqdPhysicalProperty();
+ PartitioningRequirement* partReqForMe =
+ rppForMe->getPartitioningRequirement();
//------------------------------------------------------------
- // Synthesize a partitioning function with a single partition.
+ // Synthesize a partitioning function with a single partition
+ // unless we have a partitioning requirement that says
+ // otherwise.
//------------------------------------------------------------
- PartitioningFunction* myPartFunc =
- new(CmpCommon::statementHeap())
- SinglePartitionPartitioningFunction(myNodeMap);
+ PartitioningFunction* myPartFunc = NULL;
+
+ if (partReqForMe &&
+ partReqForMe->castToRequireReplicateNoBroadcast())
+ {
+ myPartFunc =
+ partReqForMe->castToRequireReplicateNoBroadcast()->
+ getPartitioningFunction()->copy();
+ }
+ else
+ {
+ // Create a node map with a single, active, wild-card entry.
+ NodeMap* myNodeMap = new(CmpCommon::statementHeap())
+ NodeMap(CmpCommon::statementHeap(),
+ 1,
+ NodeMapEntry::ACTIVE);
+ myPartFunc = new(CmpCommon::statementHeap())
+ SinglePartitionPartitioningFunction(myNodeMap);
+ }
PhysicalProperty * sppForMe =
new(CmpCommon::statementHeap())
@@ -16703,27 +16731,30 @@ HbaseInsert::synthPhysicalProperty(const Context* myContext,
PartitioningRequirement* partReqForMe =
rppForMe->getPartitioningRequirement();
- //----------------------------------------------------------
- // Create a node map with a single, active, wild-card entry.
- //----------------------------------------------------------
- NodeMap* myNodeMap = new(CmpCommon::statementHeap())
- NodeMap(CmpCommon::statementHeap(),
- 1,
- NodeMapEntry::ACTIVE);
-
//------------------------------------------------------------
- // Synthesize a partitioning function with a single partition.
+ // Synthesize a partitioning function with a single partition
+ // unless we have a partitioning requirement that says
+ // otherwise.
//------------------------------------------------------------
PartitioningFunction* myPartFunc = NULL;
if (partReqForMe &&
partReqForMe->castToRequireReplicateNoBroadcast())
- myPartFunc =
- partReqForMe->castToRequireReplicateNoBroadcast()->
- getPartitioningFunction()->copy();
+ {
+ myPartFunc =
+ partReqForMe->castToRequireReplicateNoBroadcast()->
+ getPartitioningFunction()->copy();
+ }
else
- myPartFunc = new(CmpCommon::statementHeap())
- SinglePartitionPartitioningFunction(myNodeMap);
+ {
+ // Create a node map with a single, active, wild-card entry.
+ NodeMap* myNodeMap = new(CmpCommon::statementHeap())
+ NodeMap(CmpCommon::statementHeap(),
+ 1,
+ NodeMapEntry::ACTIVE);
+ myPartFunc = new(CmpCommon::statementHeap())
+ SinglePartitionPartitioningFunction(myNodeMap);
+ }
PhysicalProperty * sppForMe =
new(CmpCommon::statementHeap())
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/10d80035/core/sql/optimizer/ScmCostMethod.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/ScmCostMethod.cpp b/core/sql/optimizer/ScmCostMethod.cpp
index 5da4785..16a0d87 100644
--- a/core/sql/optimizer/ScmCostMethod.cpp
+++ b/core/sql/optimizer/ScmCostMethod.cpp
@@ -3881,9 +3881,16 @@ CostMethodHbaseDelete::scmComputeOperatorCostInternal(RelExpr* op,
HbaseDelete* delOp = (HbaseDelete *)op; // downcast
CMPASSERT(partFunc_ != NULL);
- CostScalar activePartitions =
- (CostScalar)
- (((NodeMap *)(partFunc_->getNodeMap()))->getNumActivePartitions());
+
+ // Later, if and when we start using NodeMaps to track active regions for
+ // Trafodion tables in HBase (or native HBase tables), we can use the
+ // following to get active partitions.
+ //CostScalar activePartitions =
+ // (CostScalar)
+ // (((NodeMap *)(partFunc_->getNodeMap()))->getNumActivePartitions());
+ // But for now, we do the following:
+ CostScalar activePartitions = (CostScalar)(partFunc_->getCountOfPartitions());
+
const IndexDesc* CIDesc = delOp->getIndexDesc();
const CostScalar & recordSizeInKb = CIDesc->getRecordSizeInKb();
[2/2] incubator-trafodion git commit: Merge [TRAFODION-25] Fix bug
preventing fully parallelized DELETEs
Posted by db...@apache.org.
Merge [TRAFODION-25] Fix bug preventing fully parallelized DELETEs
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/0abb3b6c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/0abb3b6c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/0abb3b6c
Branch: refs/heads/master
Commit: 0abb3b6ca9cbe9ff078b4add97a66fdea2146b69
Parents: 6930905 10d8003
Author: Dave Birdsall <db...@apache.org>
Authored: Fri Oct 30 15:41:43 2015 +0000
Committer: Dave Birdsall <db...@apache.org>
Committed: Fri Oct 30 15:41:43 2015 +0000
----------------------------------------------------------------------
core/sql/optimizer/OptPhysRelExpr.cpp | 107 +++++++++++++++++++----------
core/sql/optimizer/ScmCostMethod.cpp | 13 +++-
2 files changed, 79 insertions(+), 41 deletions(-)
----------------------------------------------------------------------