Spdk/lib/blob
Jim Harris ded02d0929 blob: batch used_cluster_mutex operations
Currently if we create a blob of 128 clusters, we
lock/unlock the used_cluster_mutex 128 times - once
for each cluster.  Same when those clusters are released
when the blob is deleted.  Batching these lock/unlock
operations is very easy and gives a noticeable
efficiency improvement.

My local benchmark (1GiB ramdisk, 4KB cluster size,
128 clusters/blob) creates enough blobs to fill the
blobstore and then continuously deletes and recreates
them.  Performance increases 20% on that benchmark
with this patch.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Ic503accf1ca1ab1af7254b4067771d956f52014d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4069
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2020-09-15 07:12:44 +00:00
..
blob_bs_dev.c lib/blob: remove _spdk prefix from all functions. 2020-05-27 07:35:02 +00:00
blobstore.c blob: batch used_cluster_mutex operations 2020-09-15 07:12:44 +00:00
blobstore.h blob: Add a bitmask for quickly checking which blobs are open 2020-07-07 07:30:58 +00:00
Makefile mk/lib: add a check that major and minor version is set for libs. 2020-05-21 09:19:00 +00:00
request.c lib/blob: remove spdk_ prefix from bs_batch_read_bs_dev 2020-06-01 09:21:14 +00:00
request.h lib/blob: remove spdk_ prefix from bs_batch_read_bs_dev 2020-06-01 09:21:14 +00:00
spdk_blob.map lib/blob: add a map file. 2020-04-15 22:10:08 +00:00
zeroes.c lib/blob: remove spdk_ from non-public APIs 2020-04-15 22:10:08 +00:00