Skip to content

Commit ffa0471

Browse files
authored
Merge pull request #17517 from MinaProtocol/lyh/batch-lmdb-remove
Lmdb: use batch remove to multiple keys
2 parents 3be3060 + 76066e1 commit ffa0471

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

src/lib/disk_cache/lmdb/disk_cache.ml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,7 @@ module Make (Data : Binable.S) = struct
7272

7373
Error_checking_mutex.critical_section queue_guard ~f:(fun () ->
7474
if Queue.length reusable_keys >= reuse_size_limit then (
75-
Queue.iter reusable_keys ~f:(fun to_remove ->
76-
Rw.remove ~env db to_remove ) ;
75+
Rw.batch_remove ~env db reusable_keys ;
7776
Queue.clear reusable_keys ) ) ;
7877
Rw.set ~env db idx x ;
7978
res

src/lib/lmdb_storage/generic.ml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,4 +237,8 @@ module Read_write (F_func : F) = struct
237237

238238
let remove ~env:t db key =
239239
with_env t ~perm:Rw ~default:() ~f:(fun env -> remove_impl ~env db key)
240+
241+
let batch_remove ~env:t db keys =
242+
with_env t ~perm:Rw ~default:() ~f:(fun env ->
243+
Queue.iter keys ~f:(remove_impl ~env db) )
240244
end

src/lib/lmdb_storage/generic.mli

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ module Read_write : functor (F_func : F) -> sig
5656

5757
val remove : env:t -> ('k, 'v) Db.t -> 'k -> unit
5858

59+
val batch_remove : env:t -> ('k, 'v) Db.t -> 'k Core_kernel.Queue.t -> unit
60+
5961
val with_txn :
6062
?perm:[ `Read | `Write ] Lmdb.perm
6163
-> f:(Db.getter -> Db.setter -> 'r)

0 commit comments

Comments
 (0)