cmu-db / noisepage

Self-Driving Database Management System from Carnegie Mellon University
https://noise.page
MIT License
1.74k stars 502 forks source link

Index Knobs Support #1623

Closed 17zhangw closed 3 years ago

17zhangw commented 3 years ago

Description

Supports specifying index knobs (inner node split/merge threshold) through SQL statements. The following are the big changes in this PR that enable such support:

Remaining Work

noisepage-checks[bot] commented 3 years ago

Minor Decrease in Performance

Be warned: this PR may have decreased the throughput of the system slightly.

tps (%change) benchmark_type wal_device details
-1.32% tpcc RAM disk
Detailsmaster tps=22556.43, commit tps=22259.66, query_mode=extended, benchmark_type=tpcc, scale_factor=32.0000, terminals=32, client_time=60, weights={'Payment': 43, 'Delivery': 4, 'NewOrder': 45, 'StockLevel': 4, 'OrderStatus': 4}, wal_device=RAM disk, max_connection_threads=32
-0.36% tpcc None
Detailsmaster tps=29436.04, commit tps=29330.43, query_mode=extended, benchmark_type=tpcc, scale_factor=32.0000, terminals=32, client_time=60, weights={'Payment': 43, 'Delivery': 4, 'NewOrder': 45, 'StockLevel': 4, 'OrderStatus': 4}, wal_device=None, max_connection_threads=32
-0.67% tpcc HDD
Detailsmaster tps=22159.87, commit tps=22011.74, query_mode=extended, benchmark_type=tpcc, scale_factor=32.0000, terminals=32, client_time=60, weights={'Payment': 43, 'Delivery': 4, 'NewOrder': 45, 'StockLevel': 4, 'OrderStatus': 4}, wal_device=HDD, max_connection_threads=32
7.29% tatp RAM disk
Detailsmaster tps=6548.83, commit tps=7026.37, query_mode=extended, benchmark_type=tatp, scale_factor=1.0000, terminals=16, client_time=60, weights={'GetAccessData': 35, 'UpdateLocation': 14, 'GetNewDestination': 10, 'GetSubscriberData': 35, 'DeleteCallForwarding': 2, 'InsertCallForwarding': 2, 'UpdateSubscriberData': 2}, wal_device=RAM disk, max_connection_threads=32
3.4% tatp None
Detailsmaster tps=7309.0, commit tps=7557.68, query_mode=extended, benchmark_type=tatp, scale_factor=1.0000, terminals=16, client_time=60, weights={'GetAccessData': 35, 'UpdateLocation': 14, 'GetNewDestination': 10, 'GetSubscriberData': 35, 'DeleteCallForwarding': 2, 'InsertCallForwarding': 2, 'UpdateSubscriberData': 2}, wal_device=None, max_connection_threads=32
7.58% tatp HDD
Detailsmaster tps=6397.98, commit tps=6882.96, query_mode=extended, benchmark_type=tatp, scale_factor=1.0000, terminals=16, client_time=60, weights={'GetAccessData': 35, 'UpdateLocation': 14, 'GetNewDestination': 10, 'GetSubscriberData': 35, 'DeleteCallForwarding': 2, 'InsertCallForwarding': 2, 'UpdateSubscriberData': 2}, wal_device=HDD, max_connection_threads=32
codecov[bot] commented 3 years ago

Codecov Report

Merging #1623 (ff803db) into master (6177239) will decrease coverage by 0.00%. The diff coverage is 78.36%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1623      +/-   ##
==========================================
- Coverage   80.83%   80.82%   -0.01%     
==========================================
  Files         774      774              
  Lines       55033    55342     +309     
==========================================
+ Hits        44484    44729     +245     
- Misses      10549    10613      +64     
Impacted Files Coverage Δ
src/catalog/index_schema.cpp 0.00% <0.00%> (ø)
src/include/execution/sql/table_vector_iterator.h 100.00% <ø> (ø)
src/include/execution/vm/bytecode_emitter.h 100.00% <ø> (ø)
src/include/execution/vm/bytecode_handlers.h 69.72% <ø> (ø)
src/include/execution/vm/bytecodes.h 96.42% <ø> (ø)
...de/self_driving/modeling/operating_unit_recorder.h 100.00% <ø> (ø)
src/include/storage/index/bplustree.h 90.98% <ø> (-1.07%) :arrow_down:
src/include/storage/index/bplustree_index.h 100.00% <ø> (ø)
src/include/storage/index/index_builder.h 100.00% <ø> (ø)
src/optimizer/physical_operators.cpp 89.23% <0.00%> (ø)
... and 41 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 6177239...ff803db. Read the comment docs.

noisepage-checks[bot] commented 3 years ago

Minor Decrease in Performance

Be warned: this PR may have decreased the throughput of the system slightly.

tps (%change) benchmark_type wal_device details
-2.4% tpcc RAM disk
Detailsmaster tps=22401.76, commit tps=21864.81, query_mode=extended, benchmark_type=tpcc, scale_factor=32.0000, terminals=32, client_time=60, weights={'Payment': 43, 'Delivery': 4, 'NewOrder': 45, 'StockLevel': 4, 'OrderStatus': 4}, wal_device=RAM disk, max_connection_threads=32
1.54% tpcc None
Detailsmaster tps=29057.98, commit tps=29504.38, query_mode=extended, benchmark_type=tpcc, scale_factor=32.0000, terminals=32, client_time=60, weights={'Payment': 43, 'Delivery': 4, 'NewOrder': 45, 'StockLevel': 4, 'OrderStatus': 4}, wal_device=None, max_connection_threads=32
1.51% tpcc HDD
Detailsmaster tps=21769.33, commit tps=22098.17, query_mode=extended, benchmark_type=tpcc, scale_factor=32.0000, terminals=32, client_time=60, weights={'Payment': 43, 'Delivery': 4, 'NewOrder': 45, 'StockLevel': 4, 'OrderStatus': 4}, wal_device=HDD, max_connection_threads=32
8.73% tatp RAM disk
Detailsmaster tps=6421.59, commit tps=6982.26, query_mode=extended, benchmark_type=tatp, scale_factor=1.0000, terminals=16, client_time=60, weights={'GetAccessData': 35, 'UpdateLocation': 14, 'GetNewDestination': 10, 'GetSubscriberData': 35, 'DeleteCallForwarding': 2, 'InsertCallForwarding': 2, 'UpdateSubscriberData': 2}, wal_device=RAM disk, max_connection_threads=32
-0.08% tatp None
Detailsmaster tps=7430.85, commit tps=7424.59, query_mode=extended, benchmark_type=tatp, scale_factor=1.0000, terminals=16, client_time=60, weights={'GetAccessData': 35, 'UpdateLocation': 14, 'GetNewDestination': 10, 'GetSubscriberData': 35, 'DeleteCallForwarding': 2, 'InsertCallForwarding': 2, 'UpdateSubscriberData': 2}, wal_device=None, max_connection_threads=32
9.64% tatp HDD
Detailsmaster tps=6267.66, commit tps=6872.01, query_mode=extended, benchmark_type=tatp, scale_factor=1.0000, terminals=16, client_time=60, weights={'GetAccessData': 35, 'UpdateLocation': 14, 'GetNewDestination': 10, 'GetSubscriberData': 35, 'DeleteCallForwarding': 2, 'InsertCallForwarding': 2, 'UpdateSubscriberData': 2}, wal_device=HDD, max_connection_threads=32