rocksdb/port
Andrew Kryczka 6cc9aef162 New API for background work in single thread pool
Summary:
Previously users could set `max_background_flushes=0` to force rocksdb to use a single thread pool for both background flushes and compactions. That'll no longer be possible since I'm going to deprecate `max_background_flushes` and `max_background_compactions` in favor of a single option. This diff introduces a new way to force a single thread pool: when high-pri pool has zero threads, all background jobs will be submitted to low-pri pool.

Note the majority of the code change is adding `Env::GetBackgroundThreads()`, which is necessary to check whether the user has provided a zero-sized thread pool.
Closes https://github.com/facebook/rocksdb/pull/2204

Differential Revision: D4936256

Pulled By: ajkr

fbshipit-source-id: 929a07a0c0705f7766f5339cd013ff74e90d6e01
2017-05-23 11:12:27 -07:00
..
win New API for background work in single thread pool 2017-05-23 11:12:27 -07:00
README reverting disastrous MOE commit, returning to r21 2011-04-19 23:11:15 +00:00
dirent.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
likely.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
port.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
port_example.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
port_posix.cc portable sched_getcpu calls 2017-05-10 12:29:23 -07:00
port_posix.h Define CACHE_LINE_SIZE only when it's not defined 2017-05-08 16:12:28 -07:00
stack_trace.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
stack_trace.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
sys_time.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
util_logger.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
xpress.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00

README

This directory contains interfaces and implementations that isolate the
rest of the package from platform details.

Code in the rest of the package includes "port.h" from this directory.
"port.h" in turn includes a platform specific "port_<platform>.h" file
that provides the platform specific implementation.

See port_posix.h for an example of what must be provided in a platform
specific header file.