diff options
| -rw-r--r-- | benchmarks/include/standard_benchmarks.h | 2 | ||||
| -rw-r--r-- | benchmarks/tail-latency/query_parm_sweep.cpp | 11 | ||||
| -rw-r--r-- | include/framework/reconstruction/BSMPolicy.h | 6 | ||||
| -rw-r--r-- | include/framework/reconstruction/LevelingPolicy.h | 7 | ||||
| -rw-r--r-- | include/framework/reconstruction/TieringPolicy.h | 8 |
5 files changed, 18 insertions, 16 deletions
diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h index 96541fe..2e990a7 100644 --- a/benchmarks/include/standard_benchmarks.h +++ b/benchmarks/include/standard_benchmarks.h @@ -32,7 +32,7 @@ static size_t g_deleted_records = 0; static size_t total = 0; template<de::ShardInterface S, de::QueryInterface<S> Q> -std::unique_ptr<de::ReconstructionPolicy<S, Q>> get_policy(size_t scale_factor, size_t buffer_size, int policy=0, size_t reccnt=0, size_t modifier=0) { +std::unique_ptr<de::ReconstructionPolicy<S, Q>> get_policy(size_t scale_factor, size_t buffer_size, int policy=0, size_t reccnt=0, double modifier=0) { de::ReconstructionPolicy<S, Q> *recon = nullptr; diff --git a/benchmarks/tail-latency/query_parm_sweep.cpp b/benchmarks/tail-latency/query_parm_sweep.cpp index a93be3e..4f11ce0 100644 --- a/benchmarks/tail-latency/query_parm_sweep.cpp +++ b/benchmarks/tail-latency/query_parm_sweep.cpp @@ -29,11 +29,11 @@ typedef de::Record<uint64_t, uint64_t> Rec; typedef de::ISAMTree<Rec> Shard; typedef de::pl::Query<Shard> Q; typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TOMBSTONE, - de::FIFOScheduler> + de::SerialScheduler> Ext; typedef Q::Parameters QP; typedef de::DEConfiguration<Shard, Q, de::DeletePolicy::TOMBSTONE, - de::FIFOScheduler> + de::SerialScheduler> Conf; std::atomic<size_t> idx; @@ -102,13 +102,12 @@ int main(int argc, char **argv) { //auto queries = read_range_queries<QP>(q_fname, .0001); auto queries =read_sosd_point_lookups<QP>(q_fname, 100); - std::vector<size_t> sfs = {8}; //, 4, 8, 16, 32, 64, 128, 256, 512, 1024}; size_t buffer_size = 8000; std::vector<size_t> policies = {0, 1, 2}; std::vector<size_t> thread_counts = {8}; - std::vector<size_t> modifiers = {0}; - std::vector<size_t> scale_factors = {2, 4, 8, 16, 32, 64, 128, 256}; + std::vector<double> modifiers = {0, .3, .5, .8}; + std::vector<size_t> scale_factors = {2, 4, 8}; size_t insert_threads = 1; size_t query_threads = 1; @@ -185,7 +184,7 @@ int main(int argc, char **argv) { size_t query_lat = (double)total_query_time.load() / (double)total_query_count.load(); - fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\t%ld\t%ld\t%ld\n", internal_thread_cnt, pol, sf, + fprintf(stdout, "%ld\t%ld\t%ld\t%lf\t%ld\t%ld\t%ld\t%ld\n", internal_thread_cnt, pol, sf, mod, extension->get_height(), extension->get_shard_count(), insert_tput, query_lat); fflush(stdout); diff --git a/include/framework/reconstruction/BSMPolicy.h b/include/framework/reconstruction/BSMPolicy.h index 65554fb..61f379e 100644 --- a/include/framework/reconstruction/BSMPolicy.h +++ b/include/framework/reconstruction/BSMPolicy.h @@ -21,7 +21,7 @@ class BSMPolicy : public ReconstructionPolicy<ShardType, QueryType> { LevelVector; public: - BSMPolicy(size_t buffer_size, size_t scale_factor, size_t modifier = 0) + BSMPolicy(size_t buffer_size, size_t scale_factor, double modifier = 0) : m_scale_factor(scale_factor), m_buffer_size(buffer_size), m_size_modifier(modifier) {} @@ -85,12 +85,12 @@ private: } inline size_t capacity(level_index level, size_t reccnt) const { - size_t base = m_scale_factor * pow(log(reccnt), m_size_modifier); + double base = std::ceil(m_scale_factor * std::pow<double>(std::log10(reccnt), m_size_modifier)); return m_buffer_size * (base - 1) * pow(base, level + 1); } size_t m_scale_factor; size_t m_buffer_size; - size_t m_size_modifier; + double m_size_modifier; }; } // namespace de diff --git a/include/framework/reconstruction/LevelingPolicy.h b/include/framework/reconstruction/LevelingPolicy.h index 6e20cdb..955bc02 100644 --- a/include/framework/reconstruction/LevelingPolicy.h +++ b/include/framework/reconstruction/LevelingPolicy.h @@ -21,7 +21,7 @@ class LevelingPolicy : public ReconstructionPolicy<ShardType, QueryType> { LevelVector; public: - LevelingPolicy(size_t scale_factor, size_t buffer_size, size_t modifier = 0) + LevelingPolicy(size_t scale_factor, size_t buffer_size, double modifier = 0) : m_scale_factor(scale_factor), m_buffer_size(buffer_size), m_size_modifier(modifier) {} @@ -95,11 +95,12 @@ private: inline size_t capacity(level_index level, size_t reccnt) const { return m_buffer_size * - pow(m_scale_factor * pow(std::log(reccnt), m_size_modifier), level); + pow(m_scale_factor * std::ceil(std::pow<double>(std::log10(reccnt), m_size_modifier)), level); + } size_t m_scale_factor; size_t m_buffer_size; - size_t m_size_modifier; + double m_size_modifier; }; } // namespace de diff --git a/include/framework/reconstruction/TieringPolicy.h b/include/framework/reconstruction/TieringPolicy.h index 55f5f47..b1fcb49 100644 --- a/include/framework/reconstruction/TieringPolicy.h +++ b/include/framework/reconstruction/TieringPolicy.h @@ -21,7 +21,7 @@ class TieringPolicy : public ReconstructionPolicy<ShardType, QueryType> { LevelVector; public: - TieringPolicy(size_t scale_factor, size_t buffer_size, size_t modifier=0) + TieringPolicy(size_t scale_factor, size_t buffer_size, double modifier=0) : m_scale_factor(scale_factor), m_buffer_size(buffer_size), m_size_modifier(modifier) {} std::vector<ReconstructionVector> get_reconstruction_tasks( @@ -73,10 +73,12 @@ private: return target_level; } - inline size_t capacity(size_t reccnt) const { return m_scale_factor * std::pow(std::log(reccnt), m_size_modifier); } + inline size_t capacity(size_t reccnt) const { + return std::ceil((double) m_scale_factor * std::pow<double>(std::log10(reccnt), m_size_modifier)); + } size_t m_scale_factor; size_t m_buffer_size; - size_t m_size_modifier; + double m_size_modifier; }; } // namespace de |