- 23 Dec, 2014 25 commits
-
-
Matt Stancliff authored
Previously, the old test ran 5,000 loops and used about 500k. With quicklist, storing those same 5,000 loops takes up 24k, so the "large value check" failed! This increases the test to 20,000 loops which makes the object dump 96k.
-
Matt Stancliff authored
Turns out it's a huge improvement during save/reload/migrate/restore because, with compression enabled, we're compressing 4k or 8k chunks of data consisting of multiple elements in one ziplist instead of compressing series of smaller individual elements.
-
Matt Stancliff authored
This saves us an unnecessary zmalloc, memcpy, and two frees.
-
Matt Stancliff authored
Use the existing memory space for an SDS to convert it to a regular character buffer so we don't need to allocate duplicate space just to extract a usable buffer for native operations.
-
Matt Stancliff authored
Fill factor now has two options: - negative (1-5) for size-based ziplist filling - positive for length-based ziplist filling with implicit size cap. Negative offsets define ziplist size limits of: -1: 4k -2: 8k -3: 16k -4: 32k -5: 64k Positive offsets now automatically limit their max size to 8k. Any elements larger than 8k will be in individual nodes. Positive ziplist fill factors will keep adding elements to a ziplist until one of: - ziplist has FILL number of elements - or - - ziplist grows above our ziplist max size (currently 8k) When using positive fill factors, if you insert a large element (over 8k), that element will automatically allocate an individual quicklist node with one element and no other elements will be in the same ziplist inside that quicklist node. When using negative fill factors, elements up to the size limit can be added to one quicklist node. If an element is added larger than the max ziplist size, that element will be allocated an individual ziplist in a new quicklist node. Tests also updated to start testing at fill factor -5.
-
Matt Stancliff authored
-
Matt Stancliff authored
Freeing our test lists helps keep valgrind output clean
-
Matt Stancliff authored
This started out as #2158 by sunheehnus, but I kept rewriting it until I could understand things more easily and get a few more correctness guarantees out of the readability flow. The original commit created and returned a new ziplist with the contents of both input ziplists, but I prefer to grow one of the input ziplists and destroy the other one. So, instead of malloc+copy as in #2158, the merge now reallocs one of the existing ziplists and copies the other ziplist into the new space. Also added merge test cases to ziplistTest()
-
Matt Stancliff authored
This replaces individual ziplist vs. linkedlist representations for Redis list operations. Big thanks for all the reviews and feedback from everybody in https://github.com/antirez/redis/pull/2143
-
Matt Stancliff authored
-
Matt Stancliff authored
Valgrind can't detect 'memset' initializes things, so let's statically initialize them to remove some unnecessary warnings.
-
Matt Stancliff authored
The previous test wasn't returning the new ziplist, so the test was invalid. Now the test works properly. These problems were simultaenously discovered in #2154 and that PR also had an additional fix we included here.
-
Matt Stancliff authored
It's valid to delete from negative offsets, so we *don't* want unsigned arguments here.
-
Matt Stancliff authored
zipEntry was returning a struct, but that caused some problems with tests under 32 bit builds. The tests run better if we operate on structs allocated in the caller without worrying about copying on return.
-
Matt Stancliff authored
-
Matt Stancliff authored
-
Matt Stancliff authored
Previously, many files had individual main() functions for testing, but each required being compiled with their own testing flags. That gets difficult when you have 8 different flags you need to set just to run all tests (plus, some test files required other files to be compiled aaginst them, and it seems some didn't build at all without including the rest of Redis). Now all individual test main() funcions are renamed to a test function for the file itself and one global REDIS_TEST define enables testing across the entire codebase. Tests can now be run with: - `./redis-server test <test>` e.g. ./redis-server test ziplist If REDIS_TEST is not defined, then no tests get included and no tests are included in the final redis-server binary.
-
Matt Stancliff authored
Only happen when compiled with the test define.
-
Matt Stancliff authored
Uses jemalloc function malloc_stats_print() to return stats about what jemalloc has allocated internally.
-
Matt Stancliff authored
Refactor a common pattern into one function so we don't end up with copy/paste programming.
-
antirez authored
-
antirez authored
1. Server unxtime may remain not updated while loading AOF, so ETA is not updated correctly. 2. Number of processed byte was not initialized. 3. Possible division by zero condition (likely cause of issue #1932).
-
Salvatore Sanfilippo authored
Improve redis-trib replica assignment
-
Salvatore Sanfilippo authored
Add 'age' value to SENTINEL INFO-CACHE
-
Matt Stancliff authored
-
- 22 Dec, 2014 1 commit
-
-
Salvatore Sanfilippo authored
Memory leak fixes (+ code style fixes)
-
- 21 Dec, 2014 2 commits
-
-
Alon Diamant authored
-
Alon Diamant authored
1. memory leak in t_set.c has been fixed 2. end-of-line spaces has been removed (from all over the place) 3. for loops have been ordered up to match existing Redis style (less weird) 4. comments format has been fixed (added * in the beggining of every comment line)
-
- 20 Dec, 2014 1 commit
-
-
Matt Stancliff authored
This tiny bit of code has gone through so many revisions. Hopefully it's more correct now. Fixes #2204
-
- 19 Dec, 2014 1 commit
-
-
antirez authored
Fixes issue #2225.
-
- 18 Dec, 2014 2 commits
-
-
Salvatore Sanfilippo authored
Fix: case when SPOP with count>MAXINT, setTypeRandomElements() will get ...
-
Alon Diamant authored
Fix: case when SPOP with count>MAXINT, setTypeRandomElements() will get negative count argument due to signed/unsigned mismatch. setTypeRandomElements() now returns unsigned long, and also uses unsigned long for anything related to count of members. spopWithCountCommand() now uses unsigned long elements_returned instead of int, for values returned from setTypeRandomElements()
-
- 17 Dec, 2014 8 commits
-
-
Salvatore Sanfilippo authored
SPOP optional count argument. (issue #1793, supersedes pull request #1803)
-
Salvatore Sanfilippo authored
Cluster: Update accept error to mention error
-
antirez authored
-
antirez authored
See issue #2218.
-
git://github.com/mattsta/redisantirez authored
-
Matt Stancliff authored
If we woke up to accept a connection, but we can't accept it, inform the user of the error going on with their networking. (The previous message was the same for success or error!)
-
Salvatore Sanfilippo authored
Fix redis-sentinel symlink to a relative path
-
Rhommel Lamas authored
-