Spdk/lib
Jim Harris a6014eb2ad blobfs: process one set_xattr at a time
During RocksDB testing with MySQL, we found cases
where blobfs would try to update and sync the length
xattr on the underlying blob while an existing update
was already in progress.  This was primarily driven
by RocksDB performing appends and syncs on the log
file from multiple writer threads.

The simplest way to fix this is to just process one
sync_request at a time.  There could be a tiny bit
of inefficiency here if multiple threads are appending
and syncing a file in parallel - we can look at some
additional optimizations if we find a case where that
is noticeable.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Reported-by: Changpeng Liu <changpeng.liu@intel.com>
Tested-by: Changpeng Liu <changpeng.liu@intel.com>
Change-Id: I7ab7814494d365bae8716efd0b828337286cc7b7

Reviewed-on: https://review.gerrithub.io/369490
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2017-07-13 19:53:25 -04:00
..
bdev bdev/gpt: dump partition name 2017-07-12 18:12:52 -04:00
blob blobstore: close bdev on destroy 2017-07-06 12:44:27 -04:00
blobfs blobfs: process one set_xattr at a time 2017-07-13 19:53:25 -04:00
conf log: Use SPDK_ERRLOG in lieu of fprintf(stderr 2017-05-09 11:28:28 -07:00
copy copy: Move asynchronous module init to event_copy 2017-06-20 13:46:37 -04:00
cunit include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
env_dpdk env_dpdk: allow spdk_mem_map_free() map to be NULL 2017-06-30 13:53:30 -04:00
event jsonrpc: modify API to pass request to handler 2017-07-06 13:48:12 -04:00
ioat env: Rename spdk_malloc/zmalloc/realloc/free to spdk_dma_(func) 2017-05-31 15:30:27 -04:00
iscsi scsi: removed dev->maxlun field 2017-07-12 13:16:55 -04:00
json json: add function to write UTF-16LE strings 2017-07-12 18:12:52 -04:00
jsonrpc jsonrpc: remove incorrect handling for send() == 0 2017-07-13 15:47:56 -04:00
log jsonrpc: modify API to pass request to handler 2017-07-06 13:48:12 -04:00
net jsonrpc: modify API to pass request to handler 2017-07-06 13:48:12 -04:00
nvme update_firmware: Allow option to download and enable firmware image. 2017-07-07 17:12:57 -04:00
nvmf bdev: add spdk_bdev_open/close 2017-07-05 18:04:28 -04:00
rocksdb rocksdb: set errno to support Myrocks engine 2017-07-13 15:43:55 -04:00
rpc jsonrpc: modify API to pass request to handler 2017-07-06 13:48:12 -04:00
scsi scsi: removed dev->maxlun field 2017-07-12 13:16:55 -04:00
trace include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
ut_mock tests: macro-ize the creation and use of wrappers and stubs 2017-07-05 12:00:34 -04:00
util util: defer put_io_channel 2017-07-12 12:42:56 -04:00
vhost vhost_iommu: handle realloc() failure 2017-07-13 15:47:33 -04:00
Makefile test: add wrap capability 2017-06-08 19:24:54 -04:00