Skip to content

Commit 736dfaa

Browse files
authored
p4: misc fixes for tests (#659)
* p4: misc fixes for tests Signed-off-by: Alex Chi <[email protected]> * fix lint Signed-off-by: Alex Chi <[email protected]> --------- Signed-off-by: Alex Chi <[email protected]>
1 parent ab79c88 commit 736dfaa

File tree

8 files changed

+95
-50
lines changed

8 files changed

+95
-50
lines changed

src/common/bustub_instance.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ auto BustubInstance::MakeExecutorContext(Transaction *txn, bool is_modify) -> st
4545
lock_manager_.get(), is_modify);
4646
}
4747

48-
BustubInstance::BustubInstance(const std::string &db_file_name) {
48+
BustubInstance::BustubInstance(const std::string &db_file_name, size_t bpm_size) {
4949
enable_logging = false;
5050

5151
// Storage related.
@@ -60,7 +60,7 @@ BustubInstance::BustubInstance(const std::string &db_file_name) {
6060
// buffer pool size specified in `config.h`.
6161
try {
6262
buffer_pool_manager_ =
63-
std::make_unique<BufferPoolManager>(128, disk_manager_.get(), LRUK_REPLACER_K, log_manager_.get());
63+
std::make_unique<BufferPoolManager>(bpm_size, disk_manager_.get(), LRUK_REPLACER_K, log_manager_.get());
6464
} catch (NotImplementedException &e) {
6565
std::cerr << "BufferPoolManager is not implemented, only mock tables are supported." << std::endl;
6666
buffer_pool_manager_ = nullptr;
@@ -98,7 +98,7 @@ BustubInstance::BustubInstance(const std::string &db_file_name) {
9898
execution_engine_ = std::make_unique<ExecutionEngine>(buffer_pool_manager_.get(), txn_manager_.get(), catalog_.get());
9999
}
100100

101-
BustubInstance::BustubInstance() {
101+
BustubInstance::BustubInstance(size_t bpm_size) {
102102
enable_logging = false;
103103

104104
// Storage related.
@@ -113,7 +113,7 @@ BustubInstance::BustubInstance() {
113113
// buffer pool size specified in `config.h`.
114114
try {
115115
buffer_pool_manager_ =
116-
std::make_unique<BufferPoolManager>(128, disk_manager_.get(), LRUK_REPLACER_K, log_manager_.get());
116+
std::make_unique<BufferPoolManager>(bpm_size, disk_manager_.get(), LRUK_REPLACER_K, log_manager_.get());
117117
} catch (NotImplementedException &e) {
118118
std::cerr << "BufferPoolManager is not implemented, only mock tables are supported." << std::endl;
119119
buffer_pool_manager_ = nullptr;

src/include/common/bustub_instance.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,9 +241,9 @@ class BustubInstance {
241241
auto MakeExecutorContext(Transaction *txn, bool is_modify) -> std::unique_ptr<ExecutorContext>;
242242

243243
public:
244-
explicit BustubInstance(const std::string &db_file_name);
244+
explicit BustubInstance(const std::string &db_file_name, size_t bpm_size = 128);
245245

246-
BustubInstance();
246+
explicit BustubInstance(size_t bpm_size = 128);
247247

248248
~BustubInstance();
249249

src/include/concurrency/transaction.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,13 @@ class Transaction {
158158
return undo_logs_.size();
159159
}
160160

161+
/** Use this function in leaderboard benchmarks for online garbage collection. For stop-the-world GC, simply remove
162+
* the txn from the txn_map. */
163+
inline auto ClearUndoLog() -> size_t {
164+
std::scoped_lock<std::mutex> lck(latch_);
165+
return undo_logs_.size();
166+
}
167+
161168
void SetTainted();
162169

163170
private:

test/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ foreach (bustub_test_source ${BUSTUB_TEST_SOURCES})
3131

3232
gtest_discover_tests(${bustub_test_name}
3333
EXTRA_ARGS
34-
--gtest_color=auto
3534
--gtest_output=xml:${CMAKE_BINARY_DIR}/test/${bustub_test_name}.xml
3635
--gtest_catch_exceptions=0
3736
DISCOVERY_TIMEOUT 120

test/txn/txn_common.h

Lines changed: 76 additions & 38 deletions
Large diffs are not rendered by default.

test/txn/txn_index_concurrent_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ TEST(TxnIndexTest, DISABLED_IndexConcurrentInsertTest) { // NOLINT
8787
auto query_txn = BeginTxn(*bustub, "query_txn");
8888
WithTxn(query_txn, QueryShowResult(*bustub, _var, _txn, "SELECT * FROM maintable", expected_rows));
8989
auto entry = TableHeapEntry(*bustub, bustub->catalog_->GetTable("maintable"));
90-
fmt::println("{} entries in the table heap", entry);
90+
fmt::println(stderr, "{} entries in the table heap", entry);
9191
if (n == trials - 1) {
9292
SimpleStreamWriter writer(std::cerr);
9393
fmt::println(stderr, "--- the following data might be manually inspected by TAs ---");

test/txn/txn_index_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ TEST(TxnIndexTest, DISABLED_UpdateTest) { // NOLINT
152152
};
153153

154154
{
155-
fmt::println("---- UpdateTest1: insert, update, and commit ----");
155+
fmt::println(stderr, "---- UpdateTest1: insert, update, and commit ----");
156156
auto bustub = std::make_unique<BustubInstance>();
157157
EnsureIndexScan(*bustub);
158158
Execute(*bustub, "CREATE TABLE maintable(col1 int primary key, col2 int)");

tools/terrier_bench/terrier.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ void Bench1TaskTransfer(const int thread_id, const int terrier_num, const uint64
142142
std::uniform_int_distribution<int> terrier_uniform_dist(0, terrier_num - 1);
143143
std::uniform_int_distribution<int> money_transfer_dist(5, max_transfer_amount);
144144

145-
TerrierMetrics metrics(fmt::format("Xfr {}", thread_id), duration_ms);
145+
TerrierMetrics metrics(fmt::format("Xfr {}", thread_id), duration_ms);
146146
metrics.Begin();
147147

148148
while (!metrics.ShouldFinish()) {
@@ -201,7 +201,7 @@ void Bench2TaskTransfer(const int thread_id, const int terrier_num, const uint64
201201
std::uniform_int_distribution<int> money_transfer_dist(5, max_transfer_amount);
202202
int adjustment = 0;
203203

204-
TerrierMetrics metrics(fmt::format("Xfr {}", thread_id), duration_ms);
204+
TerrierMetrics metrics(fmt::format("Xfr {}", thread_id), duration_ms);
205205
metrics.Begin();
206206

207207
while (!metrics.ShouldFinish()) {
@@ -467,6 +467,7 @@ auto main(int argc, char **argv) -> int {
467467

468468
size_t bustub_terrier_num = 10;
469469
size_t bustub_thread_cnt = 2;
470+
const size_t bpm_size = 4096; // ensure benchmark does not hit BPM
470471

471472
try {
472473
program.parse_args(argc, argv);
@@ -475,7 +476,7 @@ auto main(int argc, char **argv) -> int {
475476
return 1;
476477
}
477478

478-
auto bustub = std::make_unique<bustub::BustubInstance>();
479+
auto bustub = std::make_unique<bustub::BustubInstance>(bpm_size);
479480
auto writer = bustub::SimpleStreamWriter(std::cerr);
480481

481482
if (program.present("--terriers")) {

0 commit comments

Comments
 (0)