Skip to content

Commit 5cf0730

Browse files
Merge pull request #149 from JakeRoggenbuck/bench-update
Bench update
2 parents c10d072 + 366ca05 commit 5cf0730

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,3 +250,12 @@ real 0m0.268s
250250
user 0m0.254s
251251
sys 0m0.014s
252252
```
253+
254+
### Running with debug or info logging
255+
256+
To use the logger, import the debug, error, or info macro from the log crate.
257+
Then you can add the macros to code like `debug!("Start database!");`.
258+
When you go to run the code, you can set the env var `RUST_LOG=debug`.
259+
Docs: https://docs.rs/env_logger/latest/env_logger/.
260+
261+
![image](https://github.com/user-attachments/assets/1fb2f55f-f21b-4b2d-8301-88e44e0a9260)

src/pagerange.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use super::filewriter::{build_binary_writer, Writer};
55
use super::record::Record;
66
use crate::record::RecordAddress;
77
use crate::table::PageDirectory;
8+
use log::info;
89
use serde::{Deserialize, Serialize};
910
use std::collections::HashSet;
1011
use std::sync::{Arc, Mutex};
@@ -47,6 +48,8 @@ impl PageRange {
4748

4849
/// Merge the two containers in a separate thread
4950
pub fn merge(&mut self, page_directory: Arc<Mutex<PageDirectory>>) {
51+
info!("Starting merge!");
52+
5053
// println!("Merge: Pre-starting merge operation in a separate thread");
5154

5255
let base_container = self.base_container.clone();
@@ -106,7 +109,7 @@ impl PageRange {
106109
let base_rid_address = tail_record.base_rid();
107110
let base_rid = {
108111
// println!("Thread: Locking base_rid_address.page for base_rid");
109-
let base_rid_page = base_rid_address.page.clone();
112+
let base_rid_page = base_rid_address.page;
110113
let page_guard = base_rid_page.lock().unwrap();
111114
let brid = page_guard.data[base_rid_address.offset as usize];
112115
// println!("Thread: Retrieved base_rid: {}", brid);
@@ -177,7 +180,7 @@ impl PageRange {
177180

178181
for i in 0..tail_record.columns().len() {
179182
// println!("Thread: Processing column {} for tail_record with base_rid: {}", i, base_rid);
180-
let tail_col_page = tail_record.columns()[i].page.clone();
183+
let tail_col_page = &tail_record.columns()[i].page;
181184
let col_value = {
182185
let col_guard = tail_col_page.lock().unwrap();
183186
let val = col_guard.data[tail_record.columns()[i].offset as usize];
@@ -222,11 +225,11 @@ impl PageRange {
222225
for record in new_records {
223226
// println!("Main: Processing record with rid: {}", record.rid);
224227
let mut pd_guard = page_directory.lock().unwrap();
225-
let current_record = pd_guard.directory.get(&record.rid).unwrap().clone();
228+
let current_record = pd_guard.directory.get(&record.rid).unwrap();
226229

227230
let current_indir_val = {
228231
// println!("Main: Locking current_record.indirection().page for record {}", record.rid);
229-
let indirection_page = current_record.indirection().page.clone();
232+
let indirection_page = current_record.indirection().page;
230233
let indir_guard = indirection_page.lock().unwrap();
231234
let val = indir_guard.data[current_record.indirection().offset as usize];
232235
// println!("Main: Current indirection value for record {} is {}", record.rid, val);
@@ -235,14 +238,16 @@ impl PageRange {
235238

236239
if current_indir_val > self.base_container.tail_page_sequence {
237240
// println!("Main: Updating record {} indirection with value {}", record.rid, current_indir_val);
238-
let record_indirection_page = record.indirection().page.clone();
241+
let record_indirection_page = record.indirection().page;
239242
let mut rec_indir_guard = record_indirection_page.lock().unwrap();
240243
rec_indir_guard.data[record.indirection().offset as usize] = current_indir_val;
241244
}
242245
let rid = record.rid;
243246
pd_guard.directory.insert(rid, record);
244247
// println!("Main: Inserted record {} into page_directory", rid);
245248
}
249+
250+
info!("Merge finished!");
246251
}
247252

248253
pub fn save_state(&self) {

0 commit comments

Comments
 (0)