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

WIP, DO NOT MERGE: *: make Range() fine grained #9199

Closed
wants to merge 2 commits into from

Commits on Jan 31, 2018

  1. *: make Range() fine grained

    Current Range() tries to read entire requested range of keys in a
    single read transaction. It can introduce long waiting of writer
    transactions which can be observed as high latency spikes. For solving
    this problem, this commit lets Range() split its read transaction in a
    fine grained manner. In the interval of the read transactions,
    concurrent write RPCs (e.g. Put(), DeleteRange()) can have a chance of
    starting their transactions.
    
    This commit also adds a new option `--range-max-keys-once` to
    etcd. With the option, users can specify the maximum number of keys
    read in a single transaction during Range().
    mitake committed Jan 31, 2018
    Configuration menu
    Copy the full SHA
    fedf738 View commit details
    Browse the repository at this point in the history
  2. *: add a client side mechanism for limiting max number of keys in a s…

    …ingle range txn
    
    This commit adds a similar mechanism of making a read txn smaller in
    the client side. This is good for reducing peak memory usage of the
    server.
    
    This commit adds a new flag --max-range-keys-once to `etcdctl
    get`. With specifying a value with the option, users can use this
    feature during the execution of the command.
    mitake committed Jan 31, 2018
    Configuration menu
    Copy the full SHA
    a1c7731 View commit details
    Browse the repository at this point in the history