History log of /memcached-1.4.29/items.c (Results 1 – 25 of 210)
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, 1.4.28, 1.4.27, 1.4.26
# 690a9a9d 25-Mar-2016 Eiichi Tsukata <[email protected]>

fix zero hash items eviction

If all hash values of five tail items are zero on the specified slab
class, expire check is unintentionally skipped and items stay without
being evicted. Consequently, n

fix zero hash items eviction

If all hash values of five tail items are zero on the specified slab
class, expire check is unintentionally skipped and items stay without
being evicted. Consequently, new item allocation consume memory space
every time an item is set, that leads to slab OOM errors.

show more ...


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


# 51a828b9 07-Jul-2016 dormando <[email protected]>

startup options for chunked items.

has spent some time under performance testing. For larger items there's less
than 5% extra CPU usage, however the max usable CPU when using large items is
1/10th o

startup options for chunked items.

has spent some time under performance testing. For larger items there's less
than 5% extra CPU usage, however the max usable CPU when using large items is
1/10th or less before you run out of bandwidth. Mixed small/large items will
still balance out.

comments out debugging (which must be removed for release).

restores defaults and ensures only t/chunked-items.t is affected.

dyn-maxbytes and item_size_max tests still fail.

append/prepend aren't implemented, sasl needs to be guarded.

slab mover needs to be updated.

show more ...


# 0567967a 30-Jun-2016 dormando <[email protected]>

chunked items checkpoint commit

can set and store large items via asciiprot. gets/append/prepend/binprot not
implemented yet.


# cb01d504 27-Jun-2016 dormando <[email protected]>

clean up global stats code a little.

tons of stats were left in the global stats structure that're no longer used,
and it looks like we kept accidentally adding new ones in there. There's also
an un

clean up global stats code a little.

tons of stats were left in the global stats structure that're no longer used,
and it looks like we kept accidentally adding new ones in there. There's also
an unused mutex.

Split global stats into `stats` and `stats_state`. initialize via memset,
reset only `stats` via memset, removing several places where stats values get
repeated. Looks much cleaner and should be less error prone.

show more ...


# 80ce0108 27-Jun-2016 dormando <[email protected]>

add get_flushed counter, fix expired_unfetched

get_flushed ticks when directly fetching something that classified as expired.
LRU crawler was ticking expired_unfetched for unfetched _flushed_ values

add get_flushed counter, fix expired_unfetched

get_flushed ticks when directly fetching something that classified as expired.
LRU crawler was ticking expired_unfetched for unfetched _flushed_ values.
should no longer do that.

also removes get_expired from the global stats list. I missed that on review.

show more ...


# f85592dc 24-Jun-2016 Ryan McCullagh <[email protected]>

change LRU crawler fprintf to use %u format


# 8d82383f 23-Jun-2016 dormando <[email protected]>

finish stats_sizes rewrite

Now relies on CAS feature for runtime enable/disable tracking. Still usable if
enabled at starttime with CAS disabled. Also adds start option `-o
track_sizes`, and a stat

finish stats_sizes rewrite

Now relies on CAS feature for runtime enable/disable tracking. Still usable if
enabled at starttime with CAS disabled. Also adds start option `-o
track_sizes`, and a stat for `stats settings`.

Finally, adds documentation and cleans up status outputs.

Could use some automated tests but not make or break for release.

show more ...


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

online hang-free "stats sizes" command.

"stats sizes" is one of the lack cache-hanging commands. With millions of
items it can hang for many seconds.

This commit changes the command to be dynamic.

online hang-free "stats sizes" command.

"stats sizes" is one of the lack cache-hanging commands. With millions of
items it can hang for many seconds.

This commit changes the command to be dynamic. A histogram is tracked as items
are linked and unlinked from the cache. The tracking is enabled or disabled at
runtime via "stats sizes_enable" and "stats sizes_disable".

This presently "works" but isn't accurate. Giving it some time to think over
before switching to requiring that CAS be enabled. Otherwise the values could
underflow if items are removed that existed before the sizes tracker is
enabled. This attempts to work around it by using it->time, which gets updated
on fetch, and is thus inaccurate.

show more ...


Revision tags: 1.4.25, 1.4.24, 1.4.23, 1.4.22, 1.4.21, 1.4.20, 1.4.19
# 181ef834 28-Apr-2014 dormando <[email protected]>

treat and print item flags as unsigned int

most of the code would parse and handle flags as unsigned int, but passed into
alloc functions as a signed int... which would then continue to print it as

treat and print item flags as unsigned int

most of the code would parse and handle flags as unsigned int, but passed into
alloc functions as a signed int... which would then continue to print it as
unsigned up until a change made in 2007. Now treat it fully as unsigned and
print as unsigned.

show more ...


# c7fbcceb 16-Jun-2016 dormando <[email protected]>

logger endpoints for first release

swapping "RAWCMDS" for internal hooks on when items are fetched or stored.

This doesn't map 1:1 with commands, ie: a store is internally a fetch then
store, so tw

logger endpoints for first release

swapping "RAWCMDS" for internal hooks on when items are fetched or stored.

This doesn't map 1:1 with commands, ie: a store is internally a fetch then
store, so two log lines are generated. An ascii multiget one make one log line
per key fetched.

It's a good place to start. Need to come back and refactor parts of logger.c
again, then convert all prints in the codebase to log entries.

show more ...


# cb8257e3 16-Jun-2016 dormando <[email protected]>

convert eviction log to new process

add LOGGER_LOG() macro wrapper for callers.

eviction logging is now using the "more final" method, where data is copied
into structs embedded into the per-worker

convert eviction log to new process

add LOGGER_LOG() macro wrapper for callers.

eviction logging is now using the "more final" method, where data is copied
into structs embedded into the per-worker circular buffer. This moves the
expensive snprintf calls to the background thread, and also allows making the
logging format switchable.

also switched the format to key=value. it's still largely readable but much
easier to parse.

show more ...


# 6a4e8e1f 10-Jun-2016 dormando <[email protected]>

switch from bit fields to bit manipulation

can't compare bit fields en-masse, which makes things too difficult.


# 73407543 25-Nov-2015 dormando <[email protected]>

manage logger watcher flags.

very temporary user control. allows to watch either fetchers or evictions, but
not both, and always with timestamps.


# 916fff36 18-Nov-2015 dormando <[email protected]>

initial logger code.

Logs are written to per-thread buffers. A new background thread aggregates the
logs, further processes them, then writes them to any "watchers".

Logs can have the time added to

initial logger code.

Logs are written to per-thread buffers. A new background thread aggregates the
logs, further processes them, then writes them to any "watchers".

Logs can have the time added to them, and all have a GID so they can be put
back into strict order.

This is an early preview. Code needs refactoring and a more complete set of
options. All watchers are also stuck viewing the global feed of logs, even if
they asked for different data.

As of this commit there's no way to toggle the "stderr" watcher.

show more ...


# 85a0042b 05-Apr-2016 Matt Fowles Kulukundis <[email protected]>

Add braces around APPEND_NUM_FMT_STAT conditional

APPEND_NUM_FMT_STAT is a macro that expands to multiple statements, so it must have braces when used in a conditional.


# 6895d23e 09-Dec-2015 sergiocarlos <[email protected]>

Implement get_expired stats


# 1b13a586 29-May-2016 dormando <[email protected]>

make cachedump print 0exp for noexpire items

re GH#128


# e688e97d 18-Jan-2016 Natanael Copa <[email protected]>

fix build with musl libc

musl libc will warn if you include sys/signal.h instead of signal.h as
specified by posix. Build will fail due to -Werror explicitly beeing
set.

Fix it by use the posix loc

fix build with musl libc

musl libc will warn if you include sys/signal.h instead of signal.h as
specified by posix. Build will fail due to -Werror explicitly beeing
set.

Fix it by use the posix location.

fixes #138

show more ...


# b6bf6df7 19-Nov-2015 dormando <[email protected]>

'lru_crawler enable' blocks until ready

single CPU VM builders could fail:
- spawn LRU crawler thread.
- signal LRU crawler.
- LRU crawler thread now waits on condition.
- Crawler thread misses

'lru_crawler enable' blocks until ready

single CPU VM builders could fail:
- spawn LRU crawler thread.
- signal LRU crawler.
- LRU crawler thread now waits on condition.
- Crawler thread misses condition, sits forever.

Might also want to move the "stats.lru_crawler_running" bit to be updated when
the crawler thread picks up the work to do, somehow.

show more ...


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


# 1c3f0a3d 06-Oct-2015 dormando <[email protected]>

tune automove to required 2.5 pages of free chunks

if we're deciding to move pages right on the chunk boundary it's too easy to
cause flapping.


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


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

slab mover rescues valid items with free chunks

During a slab page move items are typically ejected regardless of their
validity. Now, if an item is valid and free chunks are available in the same
s

slab mover rescues valid items with free chunks

During a slab page move items are typically ejected regardless of their
validity. Now, if an item is valid and free chunks are available in the same
slab class, copy the item over and replace it.

It's up to external systems to try to ensure free chunks are available before
moving a slab page. If there is no memory it will simply evict them as normal.

Also adds counters so we can finally tell how often these cases happen.

show more ...


# 826403dd 07-Sep-2015 dormando <[email protected]>

restore slab_automove=2 support and add test

Test is a port of a golang test submitted by Scott Mansfield.

There used to be an "angry birds mode" to slabs_automove, which attempts to
force a slab m

restore slab_automove=2 support and add test

Test is a port of a golang test submitted by Scott Mansfield.

There used to be an "angry birds mode" to slabs_automove, which attempts to
force a slab move from "any" slab into the one which just had an eviction.
This is an imperfect but fast way of responding to shifts in memory
requirements.

This change adds it back in plus a test which very quickly attempts to set
data in via noreply. This isn't the end of improvements here. This commit is a
starting point.

show more ...


123456789