anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::BucketSizeTuner |
( |
const double |
bucket_threshold, |
|
|
const double |
step, |
|
|
const double |
min_threshold, |
|
|
const Data_Namespace::MemoryLevel |
effective_memory_level, |
|
|
const std::vector< ColumnsForDevice > & |
columns_per_device, |
|
|
const std::vector< InnerOuter > & |
inner_outer_pairs, |
|
|
const size_t |
table_tuple_count, |
|
|
const Executor * |
executor |
|
) |
| |
|
inline |
Definition at line 399 of file BoundingBoxIntersectJoinHashTable.cpp.
References CHECK.
std::vector< double > bucket_thresholds_
const std::vector< ColumnsForDevice > & columns_per_device_
const double min_threshold_
const Executor * executor_
const std::vector< InnerOuter > & inner_outer_pairs_
const Data_Namespace::MemoryLevel effective_memory_level_
const size_t table_tuple_count_
bool anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::bucketThresholdsBelowMinThreshold |
( |
| ) |
const |
|
inlineprivate |
std::vector<double> anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::computeBucketSizes |
( |
| ) |
const |
|
inlineprivate |
Definition at line 469 of file BoundingBoxIntersectJoinHashTable.cpp.
References anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::compute_bucket_sizes(), and executor_().
471 return std::vector<double>(
num_dims_, 0);
std::vector< double > compute_bucket_sizes(const std::vector< double > &bucket_thresholds, const Data_Namespace::MemoryLevel effective_memory_level, const JoinColumn &join_column, const JoinColumnTypeInfo &join_column_type, const std::vector< InnerOuter > &inner_outer_pairs, const Executor *executor)
std::vector< double > bucket_thresholds_
const std::vector< ColumnsForDevice > & columns_per_device_
const Executor * executor_
const std::vector< InnerOuter > & inner_outer_pairs_
const Data_Namespace::MemoryLevel effective_memory_level_
const size_t table_tuple_count_
std::vector<double> anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::getInverseBucketSizes |
( |
| ) |
|
|
inline |
Method to retrieve inverted bucket sizes, which are what are used elsewhere in the hash join framework for bounding box intersection
- Returns
- the inverted bucket sizes, i.e. a set of that will place a raw value in a bucket when multiplied by the raw value
Definition at line 446 of file BoundingBoxIntersectJoinHashTable.cpp.
References CHECK_EQ.
452 std::vector<double> inverse_bucket_sizes;
454 inverse_bucket_sizes.emplace_back(1.0 / s);
456 return inverse_bucket_sizes;
std::vector< double > computeBucketSizes() const
std::vector< double > current_bucket_sizes_
auto anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::getMinBucketSize |
( |
| ) |
const |
|
inline |
bool anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::tuneLargerOneStep |
( |
const double |
step_overide | ) |
|
|
inlineprivate |
bool anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::tuneOneStep |
( |
| ) |
|
|
inline |
bool anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::tuneOneStep |
( |
const TuningState::TuningDirection |
tuning_direction | ) |
|
|
inline |
bool anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::tuneOneStep |
( |
const TuningState::TuningDirection |
tuning_direction, |
|
|
const double |
step_overide |
|
) |
| |
|
inline |
Definition at line 425 of file BoundingBoxIntersectJoinHashTable.cpp.
bool tuneLargerOneStep(const double step_overide)
const size_t table_tuple_count_
bool tuneSmallerOneStep(const double step_overide)
bool anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::tuneSmallerOneStep |
( |
const double |
step_overide | ) |
|
|
inlineprivate |
Definition at line 481 of file BoundingBoxIntersectJoinHashTable.cpp.
References CHECK_EQ, and VLOG.
485 for (
auto& t : bucket_thresholds_) {
490 VLOG(1) <<
"Aborting tuning for bounding box intersection as at least one bucket "
491 "size is below min threshold";
496 VLOG(1) <<
"Aborting tuning for bounding box intersection as bucket size is no "
std::vector< double > computeBucketSizes() const
std::vector< double > bucket_thresholds_
std::vector< double > current_bucket_sizes_
bool bucketThresholdsBelowMinThreshold() const
std::ostream& operator<< |
( |
std::ostream & |
os, |
|
|
const BucketSizeTuner & |
tuner |
|
) |
| |
|
friend |
Definition at line 543 of file BoundingBoxIntersectJoinHashTable.cpp.
544 os <<
"Step Num: " << tuner.num_steps_ <<
", Threshold: " << std::fixed <<
"("
545 << tuner.bucket_thresholds_[0] <<
", " << tuner.bucket_thresholds_[1] <<
")"
546 <<
", Step Size: " << std::fixed << tuner.step_ <<
", Min: " << std::fixed
547 << tuner.min_threshold_;
std::vector<double> anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::bucket_thresholds_ |
|
private |
const std::vector<ColumnsForDevice>& anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::columns_per_device_ |
|
private |
std::vector<double> anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::current_bucket_sizes_ |
|
private |
const Executor* anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::executor_ |
|
private |
const std::vector<InnerOuter>& anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::inner_outer_pairs_ |
|
private |
const double anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::min_threshold_ |
|
private |
size_t anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::num_dims_ |
|
private |
size_t anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::num_steps_ {0} |
|
private |
const double anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::step_ |
|
private |
const size_t anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::BucketSizeTuner::table_tuple_count_ |
|
private |
The documentation for this class was generated from the following file: