History log of /memcached-1.4.29/slabs.h (Results 1 – 25 of 30)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: 1.6.32, 1.6.31, 1.6.30, 1.6.29, 1.6.28, 1.6.27, 1.6.26, 1.6.25, 1.6.24, 1.6.23, 1.6.22, 1.6.21, 1.6.20, 1.6.19, 1.6.18, 1.6.17, 1.6.16, 1.6.15, 1.6.14, 1.6.13, 1.6.12, 1.6.11, 1.6.10, 1.6.9, 1.6.8, 1.6.7, 1.6.6, 1.6.5, 1.6.4, 1.6.3, 1.6.2, 1.6.1, 1.6.0, 1.5.22, 1.5.21, 1.5.20, 1.5.19, 1.5.18, 1.5.17, 1.5.16, 1.5.15, 1.5.14, 1.5.13, 1.5.12, 1.5.11, 1.5.10, 1.5.9, 1.5.8, 1.5.7, 1.5.6, 1.5.5, 1.5.4, 1.5.3, 1.5.2, 1.5.1, 1.5.0, 1.4.39, 1.4.38, 1.4.37, flash-with-wbuf-stack, 1.4.36, 1.4.35, 1.4.34, 1.4.33, 1.4.32, 1.4.31, 1.4.30, 1.4.29
# ee461d11 12-Jul-2016 dormando <[email protected]>

slabs reassigns works with chunks and chunked items.

also fixes the new LRU algorithm to balance by total bytes used rather than
total chunks used, since total chunks used isn't tracked for multi-ch

slabs reassigns works with chunks and chunked items.

also fixes the new LRU algorithm to balance by total bytes used rather than
total chunks used, since total chunks used isn't tracked for multi-chunk
items.

also fixes a bug where the lru limit wasn't being utilized for HOT_LRU

also some cleanup from previous commits.

show more ...


Revision tags: 1.4.28, 1.4.27
# 31541b37 23-Jun-2016 dormando <[email protected]>

cache_memlimit command for tuning runtime maxbytes

Allows dynamically increasing the memory limit of a running system, if memory
isn't being preallocated.

If `-o modern` is in use, can also dynamic

cache_memlimit command for tuning runtime maxbytes

Allows dynamically increasing the memory limit of a running system, if memory
isn't being preallocated.

If `-o modern` is in use, can also dynamically lower memory usage. pages are
free()'ed back to the OS via the slab rebalancer as memory is freed up. Does
not guarantee the OS will actually give the memory back for other applications
to use, that depends on how the OS handles memory.

show more ...


# d7fb022d 22-Jun-2016 dormando <[email protected]>

allow manually specifying slab class sizes

"-o slab_sizes=100-200-300-400-500" will create 5 slab classes of those
specified sizes, with the final class being item_max_size.

Using the new online st

allow manually specifying slab class sizes

"-o slab_sizes=100-200-300-400-500" will create 5 slab classes of those
specified sizes, with the final class being item_max_size.

Using the new online stats sizes command, it's possible to determine if the
typical factoral slab class growth rate doesn't align well with how items are
stored.

This is dangerous unless you really know what you're doing. If your items have
an exact or very predictable size this makes a lot of sense. If they do not,
the defaults are safer.

show more ...


Revision tags: 1.4.26, 1.4.25
# b1debc4c 10-Oct-2015 dormando <[email protected]>

try harder to save items

previously the slab mover would evict items if the new chunk was within the
slab page being moved. now it will do an inline reclaim of the chunk and try
until it runs out of

try harder to save items

previously the slab mover would evict items if the new chunk was within the
slab page being moved. now it will do an inline reclaim of the chunk and try
until it runs out of memory.

show more ...


# d6e96467 29-Sep-2015 dormando <[email protected]>

first half of new slab automover

If any slab classes have more than two pages worth of free chunks, attempt to
free one page back to a global pool.

Create new concept of a slab page move destinatio

first half of new slab automover

If any slab classes have more than two pages worth of free chunks, attempt to
free one page back to a global pool.

Create new concept of a slab page move destination of "0", which is a global
page pool. Pages can be re-assigned out of that pool during allocation.

Combined with item rescuing from the previous patch, we can safely shuffle
pages back to the reassignment pool as chunks free up naturally. This should
be a safe default going forward. Users should be able to decide to free or
move pages based on eviction pressure as well. This is coming up in another
commit.

This also fixes a calculation of the NOEXP LRU size, and completely removes
the old slab automover thread. Slab automove decisions will now be part of the
lru maintainer thread.

show more ...


Revision tags: 1.4.24, 1.4.23
# a0390847 05-Jan-2015 dormando <[email protected]>

direct reclaim mode for evictions

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 remove

direct reclaim mode for evictions

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
`search`.

show more ...


# fb269897 04-Jan-2015 dormando <[email protected]>

first pass at LRU maintainer thread

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 r

first pass at LRU maintainer thread

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.

show more ...


Revision tags: 1.4.22, 1.4.21, 1.4.20, 1.4.19, 1.4.18, 1.4.17, 1.4.16, 1.4.15
# 1c94e12c 18-Aug-2012 dormando <[email protected]>

item locks now lock hash table buckets

expansion requires switching to a global lock temporarily, so all buckets have
a covered read lock.

slab rebalancer is paused during hash table expansion.

in

item locks now lock hash table buckets

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.

show more ...


Revision tags: 1.4.14
# 423b9fd4 15-Jul-2012 dormando <[email protected]>

remove end_page_ptr business from slabs

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 ass

remove end_page_ptr business from slabs

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.

show more ...


Revision tags: 1.4.13, 1.4.12, 1.4.11, 1.4.11-rc1, 1.4.11-beta1
# 8c1c18ed 04-Jan-2012 dormando <[email protected]>

no same-class reassignment, better errors

Add human parseable strings to the errors for slabs ressign. Also prevent
reassigning memory to the same source and destination.


# 10698bae 19-Dec-2011 dormando <[email protected]>

slab reassignment

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

slab reassignment

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
performance.

show more ...


Revision tags: 1.4.10, 1.4.9, 1.4.9-beta1, 1.4.8, 1.4.8-rc1, 1.4.7, 1.4.7-rc1, 1.4.6, 1.4.6-rc1, 1.6.0-beta1
# efad616d 12-Nov-2010 Trond Norbye <[email protected]>

Issue 163: Buggy mem_requested values


Revision tags: 1.4.5, 1.4.4, 1.4.3, 1.4.3-rc2, 1.4.3-rc1, 1.4.2, 1.4.2-rc1
# c94c940a 07-Oct-2009 dormando <[email protected]>

remove old unfinished slab reassignment code

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 fo

remove old unfinished slab reassignment code

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.

show more ...


Revision tags: 1.4.1, 1.4.1-rc1, 1.4-rc1, 1.4.0, 1.4.0-rc1, 1.2.8, 1.3.3, 1.2.7
# 17df5c0e 02-Apr-2009 Trond Norbye <[email protected]>

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

(dustin) I made some changes to the original growth code to pass in
the required size.


Revision tags: 1.2.7-rc1, 1.3.2
# d9220d64 05-Mar-2009 Trond Norbye <[email protected]>

Refactor: move the slabs mutex (and all usage of it) into slabs.c


Revision tags: 1.2.6
# bd6a8278 28-Oct-2008 Dustin Sallings <[email protected]>

Fix for binary stats with subcommand.

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

Fix for binary stats with subcommand.

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.

show more ...


# 3bdfd463 19-Oct-2008 Toru Maesaka <[email protected]>

Fix for stats opaque issue pointed out at the hackathon and removed some wasteful function calls (more to come).


# 3e47e810 05-Oct-2008 Toru Maesaka <[email protected]>

The slabber no longer needs a is_binary like flag for stats due to abstraction by the callback.


# a91d357c 01-Oct-2008 Toru Maesaka <[email protected]>

Changed the argument ordering for stats callback to something more common.


# a20d4b8b 09-Sep-2008 Toru Maesaka <[email protected]>

Support of slabber stats via the binary protocol.


# d5618da1 20-Aug-2008 Toru Maesaka <[email protected]>

Code cleaned by running devtools/clean-whitespace.pl script.


# f4a8e7ff 08-Jul-2008 Toru Maesaka <[email protected]>

The slabber is now given a callback to perform binary stats.


# 4c77f591 03-Jul-2008 Toru Maesaka <[email protected]>

Initial attempt of supporting stats in binary protocol.


Revision tags: 1.2.5
# 8d3ac826 03-Mar-2008 dormando <[email protected]>

Don't re-calculate the slab class id for slabs_free() either.
This + previous patch slightly reduce user CPU time, especially during heavy evictions.


git-svn-id: http://code.sixapart.com/svn/memcac

Don't re-calculate the slab class id for slabs_free() either.
This + previous patch slightly reduce user CPU time, especially during heavy evictions.


git-svn-id: http://code.sixapart.com/svn/memcached/trunk/server@739 b0b603af-a30f-0410-a34e-baf09ae79d0b

show more ...


# 01fa48f0 03-Mar-2008 dormando <[email protected]>

Don't re-calculate the slab class id.
slabs_alloc() internally calls slabs_clsid(), so an eviction case would crawl the list of slab classes three times.


git-svn-id: http://code.sixapart.com/svn/me

Don't re-calculate the slab class id.
slabs_alloc() internally calls slabs_clsid(), so an eviction case would crawl the list of slab classes three times.


git-svn-id: http://code.sixapart.com/svn/memcached/trunk/server@738 b0b603af-a30f-0410-a34e-baf09ae79d0b

show more ...


12