|
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 |
|
| #
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 ...
|
|
Revision tags: 1.4.27, 1.4.26 |
|
| #
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 ...
|
|
Revision tags: 1.4.25, 1.4.24, 1.4.23 |
|
| #
5d7dc88d |
| 07-Feb-2015 |
dormando <[email protected]> |
basic lock around hash_items counter
could/should be an atomic. Previously all write mutations were wrapped with cache_lock, but that's not the case anymore. Just enforce consistency around the hash
basic lock around hash_items counter
could/should be an atomic. Previously all write mutations were wrapped with cache_lock, but that's not the case anymore. Just enforce consistency around the hash_items counter, which is used for hash table expansion.
show more ...
|
|
Revision tags: 1.4.22 |
|
| #
6af7aa0b |
| 28-Dec-2014 |
dormando <[email protected]> |
Pause all threads while swapping hash table.
We used to hold a global lock around all modifications to the hash table.
Then it was switched to wrapping hash table accesses in a global lock during h
Pause all threads while swapping hash table.
We used to hold a global lock around all modifications to the hash table.
Then it was switched to wrapping hash table accesses in a global lock during hash table expansion, set by notifying each worker thread to change lock styles. There was a bug here which causes trylocks to clobber, due to the specific item locks not being held during the global lock: https://code.google.com/p/memcached/issues/detail?id=370
The patch previous to this one uses item locks during hash table expansion. Since the item lock table is always smaller than the hash table, an item lock will always cover both its new and old buckets.
However, we still need to pause all threads during the pointer swap and setup. This patch pauses all background threads and worker threads, swaps the hash table, then unpauses them.
This trades the (possibly significant) slowdown during the hash table copy, with a short total hang at the beginning of each expansion. As previously; those worried about consistent performance can presize the hash table with `-o hashpower=n`
show more ...
|
| #
d2676b4a |
| 24-Oct-2014 |
Jason CHAN <[email protected]> |
use item lock instead of global lock when hash expanding.
|
|
Revision tags: 1.4.21, 1.4.20, 1.4.19, 1.4.18 |
|
| #
05ca809c |
| 17-Apr-2014 |
dormando <[email protected]> |
Make hash table algorithm selectable
jenkins hash is old. Lets try murmur3 to start! Default is the old one, so people aren't surprised.
|
|
Revision tags: 1.4.17, 1.4.16, 1.4.15 |
|
| #
8963836c |
| 03-Sep-2012 |
dormando <[email protected]> |
don't wait on condition without holding the lock
freebsd9 is the only platform that apparently cares about this.
|
| #
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 |
|
| #
890dfb75 |
| 30-Jul-2012 |
dormando <[email protected]> |
call mutex_unlock() when we use mutex_lock()
use both #define's when using the spinlock version of our locks. not all locks are designed to be that way, so this doesn't touch the whole thing.
|
|
Revision tags: 1.4.13, 1.4.12, 1.4.11, 1.4.11-rc1, 1.4.11-beta1, 1.4.10, 1.4.9, 1.4.9-beta1, 1.4.8 |
|
| #
bab9acd1 |
| 02-Oct-2011 |
dormando <[email protected]> |
move hash calls outside of cache_lock
been hard to measure while using the intel hash (since it's very fast), but should help with the software hash.
|
| #
45e0e950 |
| 02-Oct-2011 |
dormando <[email protected]> |
Use spinlocks for main cache lock
Partly by Ripduman Sohan
Appears to significantly help prevent performance dropoff from additional threads, but only when the locks are frequently contested and ar
Use spinlocks for main cache lock
Partly by Ripduman Sohan
Appears to significantly help prevent performance dropoff from additional threads, but only when the locks are frequently contested and are short.
show more ...
|
|
Revision tags: 1.4.8-rc1 |
|
| #
1db1de38 |
| 28-Sep-2011 |
dormando <[email protected]> |
Allow setting initial size of the hash table
Instances which run many millions of items can now have its hash table presized. This can avoid some minor memory churn during the warmup period.
|
| #
108e2cd6 |
| 28-Sep-2011 |
dormando <[email protected]> |
expose stats for the internal hash table
Now users can tell how much memory is being used for the hash table structure. It also exposes the current hash power level, which is useful for presizing th
expose stats for the internal hash table
Now users can tell how much memory is being used for the hash table structure. It also exposes the current hash power level, which is useful for presizing the structure.
show more ...
|
|
Revision tags: 1.4.7, 1.4.7-rc1, 1.4.6, 1.4.6-rc1, 1.6.0-beta1, 1.4.5, 1.4.4, 1.4.3, 1.4.3-rc2, 1.4.3-rc1, 1.4.2, 1.4.2-rc1, 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, 1.2.7-rc1 |
|
| #
53180103 |
| 24-Mar-2009 |
Trond Norbye <[email protected]> |
"stats reset" should reset eviction counters as well
See: http://code.google.com/p/memcached/issues/detail?id=22
|
|
Revision tags: 1.3.2 |
|
| #
69b22814 |
| 07-Mar-2009 |
Dustin Sallings <[email protected]> |
Remove some cvs/svn junk from files.
|
| #
1a070652 |
| 02-Mar-2009 |
Trond Norbye <[email protected]> |
Refactor: moved the hash function from assoc.c to hash.c
|
| #
dfc5130e |
| 03-Feb-2009 |
Dustin Sallings <[email protected]> |
Get build working under ICC.
ICC pretends to be GCC as far as autoconf is concerned, but is incompatible in a few ways.
ICC C99 mode fails to define u_char, so I made a small change to modify that
Get build working under ICC.
ICC pretends to be GCC as far as autoconf is concerned, but is incompatible in a few ways.
ICC C99 mode fails to define u_char, so I made a small change to modify that required c99 to work with ICC's C99 mode off. Nobody wants to put effort into working around compilers that don't speak C99 in the long-term, but a one line change has already revealed quite a few potential bugs.
show more ...
|
| #
7f09e20b |
| 27-Jan-2009 |
Trond Norbye <[email protected]> |
Do hash expansion in it's own thread
Previously we tried to migrate one bucket over to the new hash table before we started a new command for a client, and we tried to lock the cache in order to det
Do hash expansion in it's own thread
Previously we tried to migrate one bucket over to the new hash table before we started a new command for a client, and we tried to lock the cache in order to determine if we should move an item or not. This resulted in extra contention on an already hot mutex...
show more ...
|
|
Revision tags: 1.2.6 |
|
| #
80ec0955 |
| 02-Oct-2008 |
Trond Norbye <[email protected]> |
Add DTrace probes to the binary protocol
|
| #
68957214 |
| 23-Jul-2008 |
Trond Norbye <[email protected]> |
Add DTrace probes for Solaris/etc.
|
| #
e4534c85 |
| 23-Jul-2008 |
Trond Norbye <[email protected]> |
Add DTrace probes for Solaris/etc.
|
| #
984053cd |
| 18-Jun-2008 |
Dustin Sallings <[email protected]> |
Use calloc for allocating the hash table vs. malloc+memset.
calloc is already used to resize the hash table, so it's good to be consistent here.
|
|
Revision tags: 1.2.5, 1.2.4 |
|
| #
bb3a4c92 |
| 10-Jul-2007 |
Paul Lindner <[email protected]> |
conn_add_to_freelist returns bool
git-svn-id: http://code.sixapart.com/svn/memcached/trunk/server@595 b0b603af-a30f-0410-a34e-baf09ae79d0b
|
| #
44ef96ee |
| 09-Jul-2007 |
Paul Lindner <[email protected]> |
gcc -pedantic changes, comments, signed/unsigned changes. also convert expanded to bool
git-svn-id: http://code.sixapart.com/svn/memcached/trunk/server@591 b0b603af-a30f-0410-a34e-baf09ae79d0b
|
|
Revision tags: 1.2.3 |
|
| #
d9b97d80 |
| 07-May-2007 |
Paul Lindner <[email protected]> |
cleanup unistd.h, better spec file, remove warnings from threads.c
git-svn-id: http://code.sixapart.com/svn/memcached/trunk/server@551 b0b603af-a30f-0410-a34e-baf09ae79d0b
|