You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/06/05 15:20:43 UTC
svn commit: r1489850 -
/subversion/trunk/subversion/libsvn_subr/cache-membuffer.c
Author: stefan2
Date: Wed Jun 5 13:20:42 2013
New Revision: 1489850
URL: http://svn.apache.org/r1489850
Log:
Fix a key mapping inefficiency in simplified scheme used by the
1.9 membuffer cache. In cases of fixed length 16 byte key structures,
the first bytes usually contain a revision number. Rotating that before
mapping it onto index buckets creates unnecessary "hot buckets",
i.e. local index overflows causing data eviction.
* subversion/libsvn_subr/cache-membuffer.c
(combine_key): don't rotate the first 8-bytes of a 16 byte key
Modified:
subversion/trunk/subversion/libsvn_subr/cache-membuffer.c
Modified: subversion/trunk/subversion/libsvn_subr/cache-membuffer.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/cache-membuffer.c?rev=1489850&r1=1489849&r2=1489850&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/cache-membuffer.c (original)
+++ subversion/trunk/subversion/libsvn_subr/cache-membuffer.c Wed Jun 5 13:20:42 2013
@@ -2244,7 +2244,6 @@ combine_key(svn_membuffer_cache_t *cache
/* scramble key DATA. All of this must be reversible to prevent key
* collisions. So, we limit ourselves to xor and permutations. */
data[1] = (data[1] << 27) | (data[1] >> 37);
- data[0] = (data[0] << 43) | (data[0] >> 21);
data[1] ^= data[0] & 0xffff;
data[0] ^= data[1] & 0xffffffffffff0000ull;