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