History log of /memcached-1.4.29/memcached.c (Results 1 – 25 of 531)
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 ...


# 3cee7d1b 13-Jul-2016 dormando <[email protected]>

shuffle the EXPERIMENTAL tag.


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


# 6975235c 09-Jul-2016 dormando <[email protected]>

CLRF in binprot was inverted.

now extends data in the chunk rather than overwriting the end.


# 5978cf70 09-Jul-2016 dormando <[email protected]>

chunked append/prepend now work.

This is also the only actual tests of append and prepend in the codebase :/
t/binary.t had some simple tests but no others were ever written.


# 3e10a71d 09-Jul-2016 dormando <[email protected]>

protect binary sasl from chunked items.

not entirely sure how to test this or guarantee people don't set the chunk
low enough to cause problems. might circle back to add better tests.


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


# b05653f9 01-Jul-2016 dormando <[email protected]>

chunked item second checkpoint

can actually fetch items now, and fixed a few bugs with storage/freeing.

added fetching for binprot.
added some basic tests.

many tests still fail for various reason

chunked item second checkpoint

can actually fetch items now, and fixed a few bugs with storage/freeing.

added fetching for binprot.
added some basic tests.

many tests still fail for various reasons, and append/prepend isn't fixed yet.

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.


# 7979cdbd 06-Jul-2016 David Oliveira <[email protected]>

Update memcached.c

It's returning an error when we try to cachedump the slab 63


# 96d50a8c 12-Jul-2016 dormando <[email protected]>

Fix ancient binprot bug with OOM errors desycning

sets getting OOM's for item alloc would swallow the upload bytes in ascii
protocol but missed in binprot. Swallow is usually passed through
write_bi

Fix ancient binprot bug with OOM errors desycning

sets getting OOM's for item alloc would swallow the upload bytes in ascii
protocol but missed in binprot. Swallow is usually passed through
write_bin_error, but out_of_memory() calls write_bin_error indirectly with a
zero for swallow.

show more ...


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


# 09d5afad 24-Jun-2016 J. Grizzard <[email protected]>

Fix undefined behavior in vlen check

The size check for vlen in process_get_command was relying on
undefined behavior (signed integer overflow) to check to see
if vlen was greater than 2^31-2. This

Fix undefined behavior in vlen check

The size check for vlen in process_get_command was relying on
undefined behavior (signed integer overflow) to check to see
if vlen was greater than 2^31-2. This made certain compilers
(such as clang 7.3.x) optimize out part of the conditional and
prevent memcache from erroring when the specified size was
exactly 2^31-1, leading to an incorrect error message and a core
dump. This patch does that overflow test in a not-undefined-behavior
way.

Fixes failure in issue_70.t test #4 on those platforms.

show more ...


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


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


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


# d704f2c0 24-Jun-2016 dormando <[email protected]>

add -o watcher_logbuf_size=N worker_logbuf_size=N

the defaults should just about always be used, but this is now tunable for
completeness. Also handy for writing tests.

This also hopefully makes th

add -o watcher_logbuf_size=N worker_logbuf_size=N

the defaults should just about always be used, but this is now tunable for
completeness. Also handy for writing tests.

This also hopefully makes the watcher.t test not flaky anymore.

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


# 83ba6bd9 03-Sep-2014 Jay Grizzard <[email protected]>

memcached idle connection killer


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


# 0503b5e2 13-Jun-2016 dormando <[email protected]>

some global stats for bg logger

four obvious ones. have a handy place to do the summarization when the logger
wakes up for its run, avoiding the locks.


# efa436fe 13-Jun-2016 dormando <[email protected]>

improve 'watch' command processing a little

moves to its own function, respods "OK\r\n" to client, allows multiple
arguments for multiple flags. Needs more thought before adding sampling.


# d5f7f89a 12-Jun-2016 dormando <[email protected]>

remove "logger chunks", add individualized streams

Stop doing a multi-reader circular buffer structure on top of a circular
buffer. Also adds individualized streams based off of the central buffer.

remove "logger chunks", add individualized streams

Stop doing a multi-reader circular buffer structure on top of a circular
buffer. Also adds individualized streams based off of the central buffer.

Sadly this requires managing iovecs and dealing with partial writes into said
iovecs. That makes things very complicated. Since it's not clear to me how to
simplify it too much (as of this writing), one of the next commits should
remove iovecs and instead give each watcher its own circular buffer. The
parser thread will copy watched events into each buffer.

The above would only be slower for the case of many watchers watching the same
event streams. Given all of the extra loops required for managing the iovecs,
and the more complicated syscall handling, it might even be the same speed to
manage multiple buffers anyway.

I completed this intermediary change since it simplifies the surrounding code
and was educational to fiddle with iovecs again.

show more ...


12345678910>>...22