Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

extstore: support direct I/O and async I/O #703

Open
wants to merge 4 commits into
base: next
Choose a base branch
from

Commits on Mar 18, 2021

  1. Configuration menu
    Copy the full SHA
    f20c936 View commit details
    Browse the repository at this point in the history
  2. extstore: support direct I/O

    This adds support for direct I/O on extstore.
    
    With `-o ext_direct` at startup, memcached opens the extstore files with
    the O_DIRECT flag.  When direct I/O is used, extstore reads and writes
    bypass the operating system caches.
    mita committed Mar 18, 2021
    Configuration menu
    Copy the full SHA
    0834a03 View commit details
    Browse the repository at this point in the history
  3. extstore: support async I/O

    This adds support for async I/O on extstore.
    
    To build with async I/O support you will have to install io_uring library
    (http://git.kernel.dk/cgit/liburing/) and ./configure --enable-liburing.
    With `-o ext_io_engine=io_uring` and I/O depth > 1
    (e.g. `-o ext_io_depth=64), the worker threads directly read and write
    asynchronouly without the IO threads.
    mita committed Mar 18, 2021
    Configuration menu
    Copy the full SHA
    4a4deb8 View commit details
    Browse the repository at this point in the history
  4. Add ability to test with additional memcached options

    This adds a new MEMCACHED_EXTRA_ARGS environment variable for running
    tests with additional memcached server options.
    
    A test with direct I/O:
    
    MEMCACHED_EXTRA_ARGS="-o ext_direct" make test
    
    A test with direct I/O and async I/O:
    
    MEMCACHED_EXTRA_ARGS="-o ext_io_engine=io_uring,ext_direct,ext_io_depth=64" make test
    mita committed Mar 18, 2021
    Configuration menu
    Copy the full SHA
    e36283f View commit details
    Browse the repository at this point in the history