@@ -24,19 +24,19 @@ impl Buffer {
24
24
}
25
25
26
26
/// Get the primary key of the buffer.
27
- pub async fn get_primary_key ( & self ) -> Option < Key > {
27
+ pub fn get_primary_key ( & self ) -> Option < Key > {
28
28
self . primary_key . clone ( )
29
29
}
30
30
31
31
/// Set the primary key if it is not set
32
- pub async fn primary_key_or ( & mut self , key : & Key ) {
32
+ pub fn primary_key_or ( & mut self , key : & Key ) {
33
33
self . primary_key . get_or_insert_with ( || key. clone ( ) ) ;
34
34
}
35
35
36
36
/// Get a value from the buffer.
37
37
/// If the returned value is None, it means the key doesn't exist in buffer yet.
38
- pub async fn get ( & self , key : & Key ) -> Option < Value > {
39
- match self . get_from_mutations ( key) . await {
38
+ pub fn get ( & self , key : & Key ) -> Option < Value > {
39
+ match self . get_from_mutations ( key) {
40
40
MutationValue :: Determined ( value) => value,
41
41
MutationValue :: Undetermined => None ,
42
42
}
@@ -49,7 +49,7 @@ impl Buffer {
49
49
F : FnOnce ( Key ) -> Fut ,
50
50
Fut : Future < Output = Result < Option < Value > > > ,
51
51
{
52
- match self . get_from_mutations ( & key) . await {
52
+ match self . get_from_mutations ( & key) {
53
53
MutationValue :: Determined ( value) => Ok ( value) ,
54
54
MutationValue :: Undetermined => {
55
55
let value = f ( key. clone ( ) ) . await ?;
@@ -161,7 +161,7 @@ impl Buffer {
161
161
}
162
162
163
163
/// Lock the given key if necessary.
164
- pub async fn lock ( & mut self , key : Key ) {
164
+ pub fn lock ( & mut self , key : Key ) {
165
165
self . primary_key . get_or_insert_with ( || key. clone ( ) ) ;
166
166
let value = self
167
167
. entry_map
@@ -175,7 +175,7 @@ impl Buffer {
175
175
}
176
176
177
177
/// Put a value into the buffer (does not write through).
178
- pub async fn put ( & mut self , key : Key , value : Value ) {
178
+ pub fn put ( & mut self , key : Key , value : Value ) {
179
179
let mut entry = self . entry_map . entry ( key. clone ( ) ) ;
180
180
match entry {
181
181
Entry :: Occupied ( ref mut o)
@@ -189,7 +189,7 @@ impl Buffer {
189
189
}
190
190
191
191
/// Mark a value as Insert mutation into the buffer (does not write through).
192
- pub async fn insert ( & mut self , key : Key , value : Value ) {
192
+ pub fn insert ( & mut self , key : Key , value : Value ) {
193
193
let mut entry = self . entry_map . entry ( key. clone ( ) ) ;
194
194
match entry {
195
195
Entry :: Occupied ( ref mut o) if matches ! ( o. get( ) , BufferEntry :: Del ) => {
@@ -200,7 +200,7 @@ impl Buffer {
200
200
}
201
201
202
202
/// Mark a value as deleted.
203
- pub async fn delete ( & mut self , key : Key ) {
203
+ pub fn delete ( & mut self , key : Key ) {
204
204
let is_pessimistic = self . is_pessimistic ;
205
205
let mut entry = self . entry_map . entry ( key. clone ( ) ) ;
206
206
@@ -217,14 +217,14 @@ impl Buffer {
217
217
}
218
218
219
219
/// Converts the buffered mutations to the proto buffer version
220
- pub async fn to_proto_mutations ( & self ) -> Vec < kvrpcpb:: Mutation > {
220
+ pub fn to_proto_mutations ( & self ) -> Vec < kvrpcpb:: Mutation > {
221
221
self . entry_map
222
222
. iter ( )
223
223
. filter_map ( |( key, mutation) | mutation. to_proto_with_key ( key) )
224
224
. collect ( )
225
225
}
226
226
227
- async fn get_from_mutations ( & self , key : & Key ) -> MutationValue {
227
+ fn get_from_mutations ( & self , key : & Key ) -> MutationValue {
228
228
self . entry_map
229
229
. get ( & key)
230
230
. map ( BufferEntry :: get_value)
@@ -365,15 +365,11 @@ mod tests {
365
365
use futures:: { executor:: block_on, future:: ready} ;
366
366
use tikv_client_common:: internal_err;
367
367
368
- #[ tokio :: test]
369
- async fn set_and_get_from_buffer ( ) {
368
+ #[ test]
369
+ fn set_and_get_from_buffer ( ) {
370
370
let mut buffer = Buffer :: new ( false ) ;
371
- buffer
372
- . put ( b"key1" . to_vec ( ) . into ( ) , b"value1" . to_vec ( ) )
373
- . await ;
374
- buffer
375
- . put ( b"key2" . to_vec ( ) . into ( ) , b"value2" . to_vec ( ) )
376
- . await ;
371
+ buffer. put ( b"key1" . to_vec ( ) . into ( ) , b"value1" . to_vec ( ) ) ;
372
+ buffer. put ( b"key2" . to_vec ( ) . into ( ) , b"value2" . to_vec ( ) ) ;
377
373
assert_eq ! (
378
374
block_on(
379
375
buffer. get_or_else( b"key1" . to_vec( ) . into( ) , move |_| ready( Err ( internal_err!(
@@ -385,8 +381,8 @@ mod tests {
385
381
b"value1" . to_vec( )
386
382
) ;
387
383
388
- buffer. delete ( b"key2" . to_vec ( ) . into ( ) ) . await ;
389
- buffer. put ( b"key1" . to_vec ( ) . into ( ) , b"value" . to_vec ( ) ) . await ;
384
+ buffer. delete ( b"key2" . to_vec ( ) . into ( ) ) ;
385
+ buffer. put ( b"key1" . to_vec ( ) . into ( ) , b"value" . to_vec ( ) ) ;
390
386
assert_eq ! (
391
387
block_on( buffer. batch_get_or_else(
392
388
vec![ b"key2" . to_vec( ) . into( ) , b"key1" . to_vec( ) . into( ) ] . into_iter( ) ,
@@ -401,15 +397,11 @@ mod tests {
401
397
) ;
402
398
}
403
399
404
- #[ tokio :: test]
405
- async fn insert_and_get_from_buffer ( ) {
400
+ #[ test]
401
+ fn insert_and_get_from_buffer ( ) {
406
402
let mut buffer = Buffer :: new ( false ) ;
407
- buffer
408
- . insert ( b"key1" . to_vec ( ) . into ( ) , b"value1" . to_vec ( ) )
409
- . await ;
410
- buffer
411
- . insert ( b"key2" . to_vec ( ) . into ( ) , b"value2" . to_vec ( ) )
412
- . await ;
403
+ buffer. insert ( b"key1" . to_vec ( ) . into ( ) , b"value1" . to_vec ( ) ) ;
404
+ buffer. insert ( b"key2" . to_vec ( ) . into ( ) , b"value2" . to_vec ( ) ) ;
413
405
assert_eq ! (
414
406
block_on(
415
407
buffer. get_or_else( b"key1" . to_vec( ) . into( ) , move |_| ready( Err ( internal_err!(
@@ -421,10 +413,8 @@ mod tests {
421
413
b"value1" . to_vec( )
422
414
) ;
423
415
424
- buffer. delete ( b"key2" . to_vec ( ) . into ( ) ) . await ;
425
- buffer
426
- . insert ( b"key1" . to_vec ( ) . into ( ) , b"value" . to_vec ( ) )
427
- . await ;
416
+ buffer. delete ( b"key2" . to_vec ( ) . into ( ) ) ;
417
+ buffer. insert ( b"key1" . to_vec ( ) . into ( ) , b"value" . to_vec ( ) ) ;
428
418
assert_eq ! (
429
419
block_on( buffer. batch_get_or_else(
430
420
vec![ b"key2" . to_vec( ) . into( ) , b"key1" . to_vec( ) . into( ) ] . into_iter( ) ,
@@ -481,8 +471,8 @@ mod tests {
481
471
}
482
472
483
473
// Check that multiple writes to the same key combine in the correct way.
484
- #[ tokio :: test]
485
- async fn state_machine ( ) {
474
+ #[ test]
475
+ fn state_machine ( ) {
486
476
let mut buffer = Buffer :: new ( false ) ;
487
477
488
478
macro_rules! assert_entry {
@@ -493,28 +483,28 @@ mod tests {
493
483
494
484
// Insert + Delete = CheckNotExists
495
485
let key: Key = b"key1" . to_vec ( ) . into ( ) ;
496
- buffer. insert ( key. clone ( ) , b"value1" . to_vec ( ) ) . await ;
497
- buffer. delete ( key. clone ( ) ) . await ;
486
+ buffer. insert ( key. clone ( ) , b"value1" . to_vec ( ) ) ;
487
+ buffer. delete ( key. clone ( ) ) ;
498
488
assert_entry ! ( key, BufferEntry :: CheckNotExist ) ;
499
489
500
490
// CheckNotExists + Delete = CheckNotExists
501
- buffer. delete ( key. clone ( ) ) . await ;
491
+ buffer. delete ( key. clone ( ) ) ;
502
492
assert_entry ! ( key, BufferEntry :: CheckNotExist ) ;
503
493
504
494
// CheckNotExists + Put = Insert
505
- buffer. put ( key. clone ( ) , b"value2" . to_vec ( ) ) . await ;
495
+ buffer. put ( key. clone ( ) , b"value2" . to_vec ( ) ) ;
506
496
assert_entry ! ( key, BufferEntry :: Insert ( _) ) ;
507
497
508
498
// Insert + Put = Insert
509
499
let key: Key = b"key2" . to_vec ( ) . into ( ) ;
510
- buffer. insert ( key. clone ( ) , b"value1" . to_vec ( ) ) . await ;
511
- buffer. put ( key. clone ( ) , b"value2" . to_vec ( ) ) . await ;
500
+ buffer. insert ( key. clone ( ) , b"value1" . to_vec ( ) ) ;
501
+ buffer. put ( key. clone ( ) , b"value2" . to_vec ( ) ) ;
512
502
assert_entry ! ( key, BufferEntry :: Insert ( _) ) ;
513
503
514
504
// Delete + Insert = Put
515
505
let key: Key = b"key3" . to_vec ( ) . into ( ) ;
516
- buffer. delete ( key. clone ( ) ) . await ;
517
- buffer. insert ( key. clone ( ) , b"value1" . to_vec ( ) ) . await ;
506
+ buffer. delete ( key. clone ( ) ) ;
507
+ buffer. insert ( key. clone ( ) , b"value1" . to_vec ( ) ) ;
518
508
assert_entry ! ( key, BufferEntry :: Put ( _) ) ;
519
509
}
520
510
}
0 commit comments