File tree 4 files changed +32
-3
lines changed
4 files changed +32
-3
lines changed Original file line number Diff line number Diff line change 2
2
name = " fjall"
3
3
description = " LSM-based key-value storage engine"
4
4
license = " MIT OR Apache-2.0"
5
- version = " 2.7.1 "
5
+ version = " 2.7.2 "
6
6
edition = " 2021"
7
7
rust-version = " 1.75.0"
8
8
readme = " README.md"
@@ -28,7 +28,7 @@ __internal_whitebox = []
28
28
[dependencies ]
29
29
byteorder = " 1.5.0"
30
30
byteview = " 0.6.1"
31
- lsm-tree = { version = " 2.7.1 " , default-features = false , features = [] }
31
+ lsm-tree = { version = " 2.7.2 " , default-features = false , features = [] }
32
32
log = " 0.4.21"
33
33
std-semaphore = " 0.1.0"
34
34
tempfile = " 3.10.1"
Original file line number Diff line number Diff line change @@ -147,6 +147,9 @@ impl Batch {
147
147
. fetch_max ( batch_seqno + 1 , Ordering :: AcqRel ) ;
148
148
149
149
drop ( journal_writer) ;
150
+
151
+ log:: trace!( "batch: Freed journal writer" ) ;
152
+
150
153
drop ( partitions) ;
151
154
152
155
// IMPORTANT: Add batch size to current write buffer size
Original file line number Diff line number Diff line change @@ -190,7 +190,7 @@ pub fn recover_sealed_memtables(
190
190
partition_lsn. is_some_and ( |partition_lsn| partition_lsn >= handle. lsn ) ;
191
191
192
192
if should_skip_sealed_memtable {
193
- handle. partition . tree . lock_active_memtable ( ) . clear ( ) ;
193
+ handle. partition . tree . clear_active_memtable ( ) ;
194
194
195
195
log:: trace!(
196
196
"Partition {} has higher seqno ({partition_lsn:?}), skipping" ,
Original file line number Diff line number Diff line change
1
+ use fjall:: { Config , PartitionCreateOptions } ;
2
+ use test_log:: test;
3
+
4
+ #[ test]
5
+ fn write_during_read ( ) -> fjall:: Result < ( ) > {
6
+ let folder = tempfile:: tempdir ( ) ?;
7
+
8
+ let keyspace = Config :: new ( & folder) . open ( ) ?;
9
+
10
+ let tree = keyspace. open_partition (
11
+ "default" ,
12
+ PartitionCreateOptions :: default ( ) . max_memtable_size ( 128_000 ) ,
13
+ ) ?;
14
+
15
+ for x in 0u64 ..50_000 {
16
+ tree. insert ( x. to_be_bytes ( ) , x. to_be_bytes ( ) ) ?;
17
+ }
18
+ tree. rotate_memtable_and_wait ( ) ?;
19
+
20
+ for kv in tree. iter ( ) {
21
+ let ( k, v) = kv?;
22
+ tree. insert ( k, v. repeat ( 4 ) ) ?;
23
+ }
24
+
25
+ Ok ( ( ) )
26
+ }
You can’t perform that action at this time.
0 commit comments