Find a file
anand76 0672a6db64 Fix queue manipulation in WriteThread::BeginWriteStall() (#6322)
Summary:
When there is a write stall, the active write group leader calls ```BeginWriteStall()``` to walk the queue of writers and remove any with the ```no_slowdown``` option set. There was a bug in the code which updated the back pointer but not the forward pointer (```link_newer```), corrupting the list and causing some threads to wait forever. This PR fixes it.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6322

Test Plan: Add a unit test in db_write_test

Differential Revision: D19538313

Pulled By: anand1976

fbshipit-source-id: 6fbed819e594913f435886606f5d36f74f235c3a
2020-01-23 14:01:28 -08:00
buckifier PosixRandomAccessFile::MultiRead() to use I/O uring if supported (#5881) 2019-12-07 20:55:52 -08:00
build_tools Improve instructions to install formatter (#6162) 2019-12-12 14:04:01 -08:00
cache Remove key length assertion LRUHandle::CalcTotalCharge (#6115) 2019-12-02 15:00:07 -08:00
cmake cmake: do not build tests for Release build and cleanups (#5916) 2019-12-13 12:48:06 -08:00
coverage
db Fix queue manipulation in WriteThread::BeginWriteStall() (#6322) 2020-01-23 14:01:28 -08:00
db_stress_tool Variable key length in db_stress (#6273) 2020-01-09 21:27:18 -08:00
docs Log warning for high bits/key in legacy Bloom filter (#6312) 2020-01-17 19:37:35 -08:00
env Fix some shadow warning (#6242) 2020-01-08 18:20:13 -08:00
examples Update example of optimistic transaction (#6074) 2020-01-16 14:04:44 -08:00
file Remove earlier partial BlobDB GC implementation (#6278) 2020-01-14 15:08:44 -08:00
hdfs
include/rocksdb Log warning for high bits/key in legacy Bloom filter (#6312) 2020-01-17 19:37:35 -08:00
java Access Maven Central over HTTPS (#6301) 2020-01-15 17:54:53 -08:00
logging Increase max_log_size in FlushJob to 1024 bytes (#6258) 2020-01-06 10:16:52 -08:00
memory
memtable Misc hashing updates / upgrades (#5909) 2019-10-24 17:16:46 -07:00
monitoring
options Introduce a new storage specific Env API (#5761) 2019-12-13 14:48:41 -08:00
port Implement getfreespace for WinEnv (#6265) 2020-01-07 13:56:13 -08:00
table Warn on excessive keys for legacy Bloom filter with 32-bit hash (#6317) 2020-01-20 21:31:47 -08:00
test_util unordered_write incompatible with max_successive_merges (#6284) 2020-01-10 16:53:19 -08:00
third-party Apply formatter to some recent commits (#6138) 2019-12-09 15:49:49 -08:00
tools Revert "crash_test to enable block-based table hash index (#6310)" (#6327) 2020-01-23 09:09:17 -08:00
trace_replay Misc hashing updates / upgrades (#5909) 2019-10-24 17:16:46 -07:00
util Warn on excessive keys for legacy Bloom filter with 32-bit hash (#6317) 2020-01-20 21:31:47 -08:00
utilities Correct pragma once problem with Bazel on Windows (#6321) 2020-01-21 16:12:43 -08:00
.clang-format
.gitignore Make buckifier python3 compatible (#5922) 2019-10-23 13:52:27 -07:00
.lgtm.yml
.travis.yml Small tidy and speed up of the travis build (#6181) 2019-12-17 13:56:45 -08:00
.watchmanconfig
appveyor.yml Add Visual Studio 2015 to AppVeyor (#5446) 2019-12-10 20:02:31 -08:00
AUTHORS
CMakeLists.txt Introduce a new storage specific Env API (#5761) 2019-12-13 14:48:41 -08:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
COPYING
DEFAULT_OPTIONS_HISTORY.md
defs.bzl Add clarifying/instructive header to TARGETS and defs.bzl 2019-11-05 20:20:33 -08:00
DUMP_FORMAT.md
HISTORY.md Fix queue manipulation in WriteThread::BeginWriteStall() (#6322) 2020-01-23 14:01:28 -08:00
INSTALL.md
issue_template.md
LANGUAGE-BINDINGS.md
LICENSE.Apache
LICENSE.leveldb
Makefile Fix a clang analyzer report, and 'analyze' make rule (#6244) 2019-12-24 18:46:40 -08:00
README.md
ROCKSDB_LITE.md
src.mk Introduce a new storage specific Env API (#5761) 2019-12-13 14:48:41 -08:00
TARGETS Introduce a new storage specific Env API (#5761) 2019-12-13 14:48:41 -08:00
thirdparty.inc
USERS.md add user nebula (#6271) 2020-01-08 13:46:43 -08:00
Vagrantfile
WINDOWS_PORT.md

RocksDB: A Persistent Key-Value Store for Flash and RAM Storage

Linux/Mac Build Status Windows Build status PPC64le Build Status

RocksDB is developed and maintained by Facebook Database Engineering Team. It is built on earlier work on LevelDB by Sanjay Ghemawat (sanjay@google.com) and Jeff Dean (jeff@google.com)

This code is a library that forms the core building block for a fast key-value server, especially suited for storing data on flash drives. It has a Log-Structured-Merge-Database (LSM) design with flexible tradeoffs between Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) and Space-Amplification-Factor (SAF). It has multi-threaded compactions, making it especially suitable for storing multiple terabytes of data in a single database.

Start with example usage here: https://github.com/facebook/rocksdb/tree/master/examples

See the github wiki for more explanation.

The public interface is in include/. Callers should not include or rely on the details of any other header files in this package. Those internal APIs may be changed without warning.

Design discussions are conducted in https://www.facebook.com/groups/rocksdb.dev/

License

RocksDB is dual-licensed under both the GPLv2 (found in the COPYING file in the root directory) and Apache 2.0 License (found in the LICENSE.Apache file in the root directory). You may select, at your option, one of the above-listed licenses.