You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by zu...@apache.org on 2016/07/08 01:26:32 UTC
[50/50] [abbrv] incubator-quickstep git commit: Used the basic column
store for tmp relations w/o variable length attributes.
Used the basic column store for tmp relations w/o variable length attributes.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/82e6f090
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/82e6f090
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/82e6f090
Branch: refs/heads/tmp-relation-col-store
Commit: 82e6f0900de4b8d3d19e8e083b73c3ad0ab6abad
Parents: 04c8224
Author: Zuyu Zhang <zz...@pivotal.io>
Authored: Thu May 19 12:48:48 2016 -0700
Committer: Zuyu Zhang <zu...@apache.org>
Committed: Thu Jul 7 20:25:24 2016 -0500
----------------------------------------------------------------------
query_optimizer/CMakeLists.txt | 1 +
query_optimizer/ExecutionGenerator.cpp | 23 +++++++++++++++++++++++
storage/StorageBlockLayout.proto | 2 +-
3 files changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/82e6f090/query_optimizer/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/query_optimizer/CMakeLists.txt b/query_optimizer/CMakeLists.txt
index 8912414..a91ab3f 100644
--- a/query_optimizer/CMakeLists.txt
+++ b/query_optimizer/CMakeLists.txt
@@ -131,6 +131,7 @@ target_link_libraries(quickstep_queryoptimizer_ExecutionGenerator
quickstep_relationaloperators_TextScanOperator
quickstep_relationaloperators_UpdateOperator
quickstep_storage_AggregationOperationState_proto
+ quickstep_storage_BasicColumnStoreTupleStorageSubBlock
quickstep_storage_HashTableFactory
quickstep_storage_HashTable_proto
quickstep_storage_InsertDestination_proto
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/82e6f090/query_optimizer/ExecutionGenerator.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/ExecutionGenerator.cpp b/query_optimizer/ExecutionGenerator.cpp
index 45f5f78..d6db2a4 100644
--- a/query_optimizer/ExecutionGenerator.cpp
+++ b/query_optimizer/ExecutionGenerator.cpp
@@ -105,6 +105,7 @@
#include "relational_operators/TextScanOperator.hpp"
#include "relational_operators/UpdateOperator.hpp"
#include "storage/AggregationOperationState.pb.h"
+#include "storage/BasicColumnStoreTupleStorageSubBlock.hpp"
#include "storage/HashTable.pb.h"
#include "storage/HashTableFactory.hpp"
#include "storage/InsertDestination.pb.h"
@@ -149,6 +150,8 @@ DEFINE_bool(parallelize_load, true, "Parallelize loading data files.");
DEFINE_bool(optimize_joins, false,
"Enable post execution plan generation optimizations for joins.");
+DEFINE_bool(use_column_store, true, "Use the column store for blocks in temporary relations.");
+
namespace E = ::quickstep::optimizer::expressions;
namespace P = ::quickstep::optimizer::physical;
namespace S = ::quickstep::serialization;
@@ -325,6 +328,23 @@ void ExecutionGenerator::createTemporaryCatalogRelation(
++aid;
}
+ if (FLAGS_use_column_store && !catalog_relation->isVariableLength()) {
+ StorageBlockLayoutDescription layout_description;
+ layout_description.set_num_slots(1);
+ layout_description.mutable_tuple_store_description()
+ ->set_sub_block_type(TupleStorageSubBlockDescription::BASIC_COLUMN_STORE);
+
+ DCHECK(BasicColumnStoreTupleStorageSubBlock::DescriptionIsValid(*catalog_relation,
+ layout_description.tuple_store_description()));
+
+ unique_ptr<StorageBlockLayout> layout(
+ new StorageBlockLayout(*catalog_relation, layout_description));
+ layout->finalize();
+ catalog_relation->setDefaultStorageBlockLayout(layout.release());
+ } else {
+ // Use the default row store for variable length attributes.
+ }
+
*catalog_relation_output = catalog_relation.get();
const relation_id output_rel_id = optimizer_context_->catalog_database()->addRelation(
catalog_relation.release());
@@ -335,6 +355,9 @@ void ExecutionGenerator::createTemporaryCatalogRelation(
insert_destination_proto->set_insert_destination_type(S::InsertDestinationType::BLOCK_POOL);
insert_destination_proto->set_relation_id(output_rel_id);
+
+ insert_destination_proto->mutable_layout()->MergeFrom(
+ (*catalog_relation_output)->getDefaultStorageBlockLayout().getDescription());
}
void ExecutionGenerator::dropAllTemporaryRelations() {
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/82e6f090/storage/StorageBlockLayout.proto
----------------------------------------------------------------------
diff --git a/storage/StorageBlockLayout.proto b/storage/StorageBlockLayout.proto
index cafc0e9..4db6f06 100644
--- a/storage/StorageBlockLayout.proto
+++ b/storage/StorageBlockLayout.proto
@@ -66,7 +66,7 @@ message IndexSubBlockDescription {
SMA = 1;
BLOOM_FILTER = 2;
BITWEAVING_H = 3;
- BITWEAVING_V = 4;
+ BITWEAVING_V = 4;
}
required IndexSubBlockType sub_block_type = 1;