Fix IOError on WAL write doesn't propagate to write group follower
Summary:
This is a simpler version of #3097 by removing all unrelated changes.
Fixing the bug where concurrent writes may get Status::OK while it actually gets IOError on WAL write. This happens when multiple writes form a write batch group, and the leader get an IOError while writing to WAL. The leader failed to pass the error to followers in the group, and the followers end up returning Status::OK() while actually writing nothing. The bug only affect writes in a batch group. Future writes after the batch group will correctly return immediately with the IOError.
Closes https://github.com/facebook/rocksdb/pull/3201
Differential Revision:
D6421644
Pulled By: yiwu-arbug
fbshipit-source-id:
1c2a455c5b73f6842423785eb8a9dbfbb191dc0e
Enable cacheline_aligned_alloc() to allocate from jemalloc if enabled.
Summary:
Reuse WITH_JEMALLOC option in preparation for module search unification.
Move jemalloc overrides into a separate .cc
Remote obsolete JEMALLOC_NOINIT option.
Closes https://github.com/facebook/rocksdb/pull/3078
Differential Revision:
D6174826
Pulled By: yiwu-arbug
fbshipit-source-id:
9970a0289b4490272d15853920d9d7531af91140
Add -DPORTABLE=1 to MSVC CI build
Summary:
Add -DPORTABLE=1
port::cacheline_aligned_alloc() has arguments swapped which prevents every single test from running.
Closes https://github.com/facebook/rocksdb/pull/2815
Differential Revision:
D5751661
Pulled By: siying
fbshipit-source-id:
e0857d6e138ec46035b3c23d7c3c751901a0a4a0
Blob DB: not using PinnableSlice move assignment
Summary:
The current implementation of PinnableSlice move assignment have an issue #3163. We are moving away from it instead of try to get the move assignment right, since it is too tricky.
Closes https://github.com/facebook/rocksdb/pull/3164
Differential Revision:
D6319201
Pulled By: yiwu-arbug
fbshipit-source-id:
8f3279021f3710da4a4caa14fd238ed2df902c48
Blob DB: Fix race condition between flush and write
Summary:
A race condition will happen when:
* a user thread writes a value, but it hits the write stop condition because there are too many un-flushed memtables, while holding blob_db_impl.write_mutex_.
* Flush is triggered and call flush begin listener and try to acquire blob_db_impl.write_mutex_.
Fixing it.
Closes https://github.com/facebook/rocksdb/pull/3149
Differential Revision:
D6279805
Pulled By: yiwu-arbug
fbshipit-source-id:
0e3c58afb78795ebe3360a2c69e05651e3908c40
Blob DB: Fix release build
Summary:
`compression` shadow the method name in `BlobFile`. Rename it.
Closes https://github.com/facebook/rocksdb/pull/3148
Differential Revision:
D6274498
Pulled By: yiwu-arbug
fbshipit-source-id:
7d293596530998b23b6b8a8940f983f9b6343a98
Blob DB: use compression in file header instead of global options
Summary:
To fix the issue of failing to decompress existing value after reopen DB with a different compression settings.
Closes https://github.com/facebook/rocksdb/pull/3142
Differential Revision:
D6267260
Pulled By: yiwu-arbug
fbshipit-source-id:
c7cf7f3e33b0cd25520abf4771cdf9180cc02a5f