- 08 Nov, 2012 1 commit
-
-
antirez authored
-
- 05 Oct, 2012 1 commit
-
-
antirez authored
The previously used hash function, djbhash, is not secure against collision attacks even when the seed is randomized as there are simple ways to find seed-independent collisions. The new hash function appears to be safe (or much harder to exploit at least) in this case, and has better distribution. Better distribution does not always means that's better. For instance in a fast benchmark with "DEBUG POPULATE 1000000" I obtained the following results: 1.6 seconds with djbhash 2.0 seconds with murmurhash2 This is due to the fact that djbhash will hash objects that follow the pattern `prefix:<id>` and where the id is numerically near, to near buckets. This improves the locality. However in other access patterns with keys that have no relation murmurhash2 has some (apparently minimal) speed advantage. On the other hand a better distribution should significantly improve the quality of the distribution of elements returned with dictGetRandomKey() that is used in SPOP, SRANDMEMBER, RANDOMKEY, and other commands. Everything considered, and under the suspect that this commit fixes a security issue in Redis, we are switching to the new hash function. If some serious speed regression will be found in the future we'll be able to step back easiliy. This commit fixes issue #663.
-
- 27 Sep, 2012 1 commit
-
-
Erik Dubbelboer authored
-
- 21 Apr, 2012 1 commit
-
-
antirez authored
-
- 18 Apr, 2012 1 commit
-
-
antirez authored
-
- 27 Mar, 2012 1 commit
-
-
huangz1990 authored
-
- 22 Jan, 2012 1 commit
-
-
antirez authored
fixed typo in hahs function seed default value. It is no longer used but fixed to retain the old constant as default anyway.
-
- 21 Jan, 2012 1 commit
-
-
antirez authored
Fix for hash table collision attack. We simply randomize hash table initialization value at startup time.
-
- 08 Nov, 2011 3 commits
-
-
antirez authored
dict.c: added macros in dict.h to set signed and unsigned 64 bit values directly inside the hash entry without using additional memory.
-
antirez authored
-
antirez authored
dict.c: added two lower level methods for directly manipulating hash entries. This is useful in order to set 64 bit integers as values directly inside the hash entry (in order to save memory), without casting, and even in 32 bit builds.
-
- 02 Nov, 2011 1 commit
-
-
antirez authored
-
- 10 May, 2011 1 commit
-
-
antirez authored
Introduced a safe iterator interface that can be used to iterate while accessing the dictionary at the same time. Now the default interface is consireded unsafe and should be used only with dictNext()
-
- 11 Feb, 2011 1 commit
-
-
antirez authored
fixed two diskstore issues, a quasi-deadlock creating problems with I/O speed and a race condition among threads
-
- 03 Nov, 2010 1 commit
-
-
antirez authored
-
- 15 Sep, 2010 1 commit
-
-
antirez authored
This should fix Issue 332: when there is a background process saving we still allow the hash tables to grow, but only when a critical treshold is reached. Formerly we prevented the resize at all triggering pathological O(N) behavior. Also there is a fix for the statistics in INFO about the number of keys expired
-
- 27 Jul, 2010 1 commit
-
-
antirez authored
-
- 24 Jul, 2010 3 commits
-
-
Benjamin Kramer authored
calloc is more effecient than malloc+memset when the system uses mmap to allocate memory. mmap always returns zeroed memory so the memset can be avoided. The threshold to use mmap is 16k in osx libc and 128k in bsd libc and glibc. The kernel can lazily allocate the pages, this reduces memory usage when we have a page table or hash table that is mostly empty. This change is most visible when you start a new redis instance with vm enabled. You'll see no increased memory usage no matter how big your page table is.
-
Benjamin Kramer authored
zmalloc calls abort() so _dictPanic will never be called.
-
Benjamin Kramer authored
-
- 01 Jul, 2010 1 commit
-
-
antirez authored
networking related stuff moved into networking.c moved more code more work on layout of source code SDS instantaneuos memory saving. By Pieter and Salvatore at VMware ;) cleanly compiling again after the first split, now splitting it in more C files moving more things around... work in progress split replication code splitting more Sets split Hash split replication split even more splitting more splitting minor change
-
- 16 Apr, 2010 1 commit
-
-
antirez authored
-
- 15 Apr, 2010 2 commits
- 10 Apr, 2010 1 commit
-
-
antirez authored
-
- 08 Apr, 2010 2 commits
- 17 Mar, 2010 1 commit
-
-
antirez authored
-
- 19 Feb, 2010 1 commit
-
-
antirez authored
A problem with replication with multiple slaves connectiong to a single master fixed. It was due to a typo, and reported on github by the user micmac. Also the copyright year fixed from many files.
-
- 04 Nov, 2009 1 commit
-
-
root authored
-
- 30 Apr, 2009 2 commits
- 23 Apr, 2009 1 commit
-
-
antirez authored
-
- 27 Mar, 2009 1 commit
-
-
antirez authored
-
- 22 Mar, 2009 1 commit
-
-
antirez authored
-