Skip to content

Commit 6bbad2e

Browse files
committed
fix: remove unnecessary MemTable cloning
1 parent 0ff80b6 commit 6bbad2e

2 files changed

Lines changed: 4 additions & 9 deletions

File tree

src/db.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,8 @@ impl Collection {
248248

249249
fn flush(&mut self) {
250250
let jstable_path = self.dir.join(format!("jstable-{}", self.jstable_count));
251-
self.memtable
251+
let memtable = std::mem::take(&mut self.memtable);
252+
memtable
252253
.flush(
253254
jstable_path.to_str().unwrap(),
254255
self.name.clone(),
@@ -264,7 +265,6 @@ impl Collection {
264265
self.tables.push(LoadedTable { filter, index });
265266

266267
self.jstable_count += 1;
267-
self.memtable = MemTable::new();
268268
self.logger.rotate().unwrap();
269269

270270
if self.jstable_count >= self.jstable_threshold {

src/storage.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ impl MemTable {
3131
}
3232

3333
pub fn flush(
34-
&self,
34+
self,
3535
path: &str,
3636
collection: String,
3737
index_threshold: u64,
@@ -40,12 +40,7 @@ impl MemTable {
4040
.duration_since(std::time::UNIX_EPOCH)
4141
.unwrap()
4242
.as_millis() as u64;
43-
let jstable = JSTable::new(
44-
timestamp,
45-
collection,
46-
self.schema.clone(),
47-
self.documents.clone(),
48-
);
43+
let jstable = JSTable::new(timestamp, collection, self.schema, self.documents);
4944
jstable.write(path, index_threshold)
5045
}
5146

0 commit comments

Comments
 (0)