Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Jan 5, 2015
  1. @dormando

    direct reclaim mode for evictions

    dormando authored
    Only way to do eviction case fast enough is to inline it, sadly.
    This finally deletes the old item_alloc code now that I'm not intending on
    reusing it.
    Also removes the condition wakeup for the background thread. Instead runs on a
    timer, and meters its aggressiveness by how much shuffling is going on.
    Also fixes a segfault in lru_pull_tail(), was unlinking `it` instead of
Commits on Jan 4, 2015
  1. @dormando

    first pass at LRU maintainer thread

    dormando authored
    The basics work, but tests still do not pass.
    A background thread wakes up once per second, or when signaled. It is signaled
    if a slab class gets an allocation request and has fewer than N chunks free.
    The background thread shuffles LRU's: HOT, WARM, COLD. HOT is where new items
    exist. HOT and WARM flow into COLD. Active items in COLD flow back to WARM.
    Evictions are pulled from COLD.
    item_update's no longer do anything (and need to be fixed to tick it->time).
    Items are reshuffled within or around LRU's as they reach the bottom.
    Ratios of HOT/WARM memory are hardcoded, as are the low/high watermarks.
    Thread is not fast enough right now, sets cannot block on it.
Commits on Sep 3, 2012
  1. @dormando

    item locks now lock hash table buckets

    dormando authored
    expansion requires switching to a global lock temporarily, so all buckets have
    a covered read lock.
    slab rebalancer is paused during hash table expansion.
    internal item "trylocks" are always issued, and tracked as the hash power
    variable can change out from under it.
Commits on Jul 27, 2012
  1. @dormando

    remove end_page_ptr business from slabs

    dormando authored
    slab memory assignment used to lazily split a new page into chunks as memory
    was requested. now it doesn't, so drop all the related code.
    Cuts the memory assignment hotpath a tiny bit, so that's exciting.
Commits on Jan 4, 2012
  1. @dormando

    no same-class reassignment, better errors

    dormando authored
    Add human parseable strings to the errors for slabs ressign. Also prevent
    reassigning memory to the same source and destination.
Commits on Dec 20, 2011
  1. @dormando

    slab reassignment

    dormando authored
    Adds a "slabs reassign src dst" manual command, and a thread to safely process
    slab moves in the background.
    - slab freelist is now a linked list, reusing the item structure
    - is -o slab_reassign is enabled, an extra background thread is started
    - thread attempts to safely free up items when it's been told to move a page
      from one slab to another.
    -o slab_automove is stubbed.
    There are some limitations. Most notable is that you cannot repeatedly move
    pages around without first having items use up the memory. Slabs with newly
    assigned memory work off of a pointer, handing out chunks individually. We
    would need to change that to quickly split chunks for all newly assigned pages
    into that slabs freelist.
    Further testing is required to ensure such is possible without impacting
Commits on Nov 12, 2010
  1. @trondn
Commits on Oct 7, 2009
  1. @dormando @dustin

    remove old unfinished slab reassignment code

    dormando authored dustin committed
    Old code was unfinished, had no test coverage, and not quite what we'll end up
    with in the future.
    Slab reassignment will happen in earnest soon, but for now we should stop
    confusing users.
Commits on Apr 2, 2009
  1. @dustin

    Don't expose the protocol used to the client api of the stats

    Trond Norbye authored dustin committed
    (dustin) I made some changes to the original growth code to pass in
    the required size.
Commits on Mar 5, 2009
Commits on Jan 3, 2009
  1. @dustin

    Fix for binary stats with subcommand.

    dustin authored
    The subcommand is not necessarily a null terminated string (in the
    case of the binary protocol, it certainly isn't).  The subcommand
    would not be recognized due to strcmp() failing.
    Tested with both text and binary protocols.
  2. @dustin

    Fix for stats opaque issue pointed out at the hackathon and removed s…

    Toru Maesaka authored dustin committed
    …ome wasteful function calls (more to come).
  3. @dustin

    The slabber no longer needs a is_binary like flag for stats due to ab…

    Toru Maesaka authored dustin committed
    …straction by the callback.
  4. @dustin

    Changed the argument ordering for stats callback to something more co…

    Toru Maesaka authored dustin committed
  5. @dustin

    Support of slabber stats via the binary protocol.

    Toru Maesaka authored dustin committed
  6. @dustin

    Code cleaned by running devtools/ script.

    Toru Maesaka authored dustin committed
Commits on Jul 8, 2008
Commits on Jul 3, 2008
Commits on Mar 3, 2008
  1. @dormando

    Don't re-calculate the slab class id for slabs_free() either.

    dormando authored
    This + previous patch slightly reduce user CPU time, especially during heavy evictions.
    git-svn-id: b0b603af-a30f-0410-a34e-baf09ae79d0b
  2. @dormando

    Don't re-calculate the slab class id.

    dormando authored
    slabs_alloc() internally calls slabs_clsid(), so an eviction case would crawl the list of slab classes three times.
    git-svn-id: b0b603af-a30f-0410-a34e-baf09ae79d0b
Commits on Feb 25, 2008
  1. Enable use of large memory pages (Trond Norbye) <Trond.Norbye@Sun.COM>

    Trond Norbye authored
    Initial support for solaris.
    git-svn-id: b0b603af-a30f-0410-a34e-baf09ae79d0b
Commits on Jul 10, 2007
  1. Minimal doxygen configuration

    Paul Lindner authored
    git-svn-id: b0b603af-a30f-0410-a34e-baf09ae79d0b
Commits on Apr 16, 2007
  1. Merge multithreaded into trunk, commit #2 (first commit only did the

    Steven Grimm authored
    new files, not the modified ones.)
    git-svn-id: b0b603af-a30f-0410-a34e-baf09ae79d0b
Commits on Apr 10, 2007
  1. update clean-whitespace, add automated whitespace test, and clean whi…

    Paul Lindner authored
    git-svn-id: b0b603af-a30f-0410-a34e-baf09ae79d0b
Commits on Mar 6, 2007
  1. multiple cleanups/refactoring, see ChangeLog

    Paul Lindner authored
    git-svn-id: b0b603af-a30f-0410-a34e-baf09ae79d0b
Something went wrong with that request. Please try again.