Commit Graph

404 Commits

Author SHA1 Message Date
antirez 5234952bee zipmaps functions to get, iterate, test for existence. Initial works for Hash data type 2010-03-05 14:04:17 +01:00
Pieter Noordhuis 841053366f moved code to delete a single node from a zset to a separate function 2010-03-04 17:55:16 +01:00
Pieter Noordhuis f84d393374 rename zslDeleteRange to zslDeleteRangeByScore (to differentiate between deleting using score or rank) 2010-03-04 17:50:25 +01:00
Pieter Noordhuis 2424490f9b use 1-based rank across zsl*Rank functions consistently 2010-03-04 17:48:31 +01:00
Pieter Noordhuis 9212eafd5d implemented ZREMBYRANK 2010-03-04 17:42:33 +01:00
antirez 94e543b5c2 A fix for initialization of augmented skip lists 2010-03-04 17:00:06 +01:00
antirez ddfaca9d81 A fix for an invalid access when VM is disabled 2010-03-04 16:48:26 +01:00
antirez 947efa8d6e Merge branch 'zsl-get-rank' of git://github.com/pietern/redis 2010-03-04 16:43:50 +01:00
Pieter Noordhuis a50ea45c84 merged memory reduction patch 2010-03-04 16:35:57 +01:00
antirez 520b5a33ae Now list push commands return the length of the new list, thanks to Gustavo Picon 2010-03-04 16:16:01 +01:00
Pieter Noordhuis edb519581a first check if starting point is trivial (head or tail) before applying log(N) search 2010-03-04 14:23:59 +01:00
Pieter Noordhuis e74825c24f use rank to find starting point for ZRANGE and ZREVRANGE 2010-03-04 14:16:07 +01:00
Pieter Noordhuis 27b0ccca71 lookup rank of a zset entry in a different function 2010-03-04 13:35:46 +01:00
antirez 8fe7fad771 SUBSTR fix for integer encoded vals 2010-03-04 13:10:50 +01:00
Pieter Noordhuis 67cac14343 fix ZRANK (realize that rank is 1-based due to the skip list header) 2010-03-04 01:33:37 +01:00
antirez 3919155375 initial implementation of SUBSTR 2010-03-03 23:15:52 +01:00
Pieter Noordhuis 2b37892e9b use less memory as element->span[0] will always be 1; any level 0 skip list is essentially a linked list 2010-03-03 19:04:38 +01:00
Pieter Noordhuis 912b9165a9 rank is very unlikely to overflow integer range 2010-03-03 18:40:42 +01:00
Pieter Noordhuis 709d0a1bbc x->backward never equals zsl->header 2010-03-03 18:35:56 +01:00
Pieter Noordhuis 69d95c3e1c initial implementation for augmented zsets and the zrank command 2010-03-03 18:21:02 +01:00
antirez 54bac49d92 minor fix for a Linux warning 2010-03-02 17:42:22 +01:00
antirez ed7451548a Better to increment the version minor number when a VM bug is fixed... it will be simpler to understand what's going on when users will report problems with the INFO trace. 2010-03-02 00:57:09 +01:00
antirez ba76a8f901 Fixed a subtle VM bug... was not flushing the buffer so the child process read truncated data 2010-03-02 00:52:50 +01:00
antirez a3f9eec291 KEYS now returns a multi bulk reply 2010-03-01 23:46:24 +01:00
Damian Janowski 18b6cb7643 Add DISCARD command to discard queued MULTI commands. 2010-03-01 23:29:48 +01:00
antirez c8c72447f6 Swappability bug due to a typo fixed thanks to code review by Felix Geisendörfer @felixge 2010-03-01 22:15:49 +01:00
antirez 5921aa36ed Bug #169 fixed (BLOP/BRPOP interrupted connections are not cleared from the queue) 2010-02-27 12:26:08 +01:00
antirez 9ebed7cf06 Fixed 32bit make target to work on Linux out of the box 2010-02-22 17:36:54 +01:00
antirez 12d090d2d0 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. 2010-02-19 11:23:57 +01:00
antirez 7c775e0943 VM now is able to block clients on swapped keys for all the commands 2010-02-09 14:01:49 +01:00
antirez f44dd42872 ZRANGEBYSCORE now supports open intervals, prefixing double values with a open paren. Added ZCOUNT that can count the elements inside an interval of scores, this supports open intervals too 2010-02-07 21:52:35 +01:00
antirez 3a3978b10b WITHSCORES in ZRANGEBYSCORE thanks to Sam Hendley 2010-02-07 10:32:28 +01:00
Sam Hendley 0500ef2736 Added "withscores" option to zrangebyscore command. Based on withscores support in zrange function, ugliest part was the argument parsing to handle
using it with the limit option.
2010-02-06 18:41:25 -05:00
antirez 59146ef3c1 DEBUG OBJECT provide info about serialized object length even when VM is disabled 2010-02-06 18:53:39 +01:00
antirez 6766f45ef2 multi bulk requests in redis-benchmark, default fsync policy changed to everysec, added a prefix character for DEBUG logs 2010-02-06 13:39:07 +01:00
antirez 4b00bebd3d APPEND command 2010-02-04 15:55:52 +01:00
antirez ed9e496634 Faster version of the function hashing possibly encoded objects, leading to a general speed gain when working with Sets of integers 2010-02-02 12:19:24 +01:00
antirez 3c68de9b01 faster Set loading time from .rdb file resizing the hash table to the right size before loading elements 2010-02-02 12:05:15 +01:00
antirez 9651a78787 Log time taken to load the DB at startup, in seconds 2010-02-02 12:01:53 +01:00
antirez 478c2c6f5b Fixed VM corruption due to child fclosing the VM file directly or indirectly calling exit(), now replaced with _exit() in all the sensible places. Masked a few signals from IO threads. 2010-01-31 16:03:44 +01:00
antirez d5d55fc319 loading side of the threaded VM 2010-01-28 10:12:04 -05:00
antirez b72f6a4b70 Fixed memory human style memory reporting, removed server.usedmemory, now zmalloc_used_memory() is used always. 2010-01-23 11:55:04 -05:00
antirez b0d8747dae VM tuning thanks to redis-stat vmstat. Now it performs much better under high load 2010-01-22 12:58:11 -05:00
antirez f6c0bba8bc REDIS_MAX_COMPLETED_JOBS_PROCESSED is now in percentage, not number of jobs. Moved a debugging message a few lines forward as it was called where a few logged parameters where invalid, leading to a crash 2010-01-21 07:27:32 -05:00
antirez 76b7233adb fixed a deadlock caused by too much finished processes in queue so that I/O clients writing to the wirte side of the pipe used to awake the main thread where blocking. Then a BGSAVE started waiting for the last active thread to finish, condition impossible because all the I/O threads where blocking on threads. Takes this as a note to myself... 2010-01-20 16:57:00 -05:00
antirez 970e10bb34 removed a bug in the function to cancel an I/O job 2010-01-19 13:02:02 -05:00
antirez 76a41fb163 removed support for REDIS_HELGRIND_FRIENDLY since Helgrind 3.5.0 is friendly enough even with many threads created and destroyed 2010-01-16 07:57:32 -05:00
antirez 6fa987e390 Create swap file only if not exists 2010-01-15 14:02:18 -05:00
antirez 459f52a8aa I hate warnings 2010-01-15 13:55:52 -05:00
antirez fefed59798 fixed a minor memory leak in configuration file parsing 2010-01-15 13:35:13 -05:00
antirez 2316bb3b42 minor fix 2010-01-15 13:17:43 -05:00
antirez 054e426dbd support for named VM swap file. Fixed a few important interaction issues between the background saving processes and IO threads 2010-01-15 13:14:23 -05:00
antirez 02fcfc1e39 useless debugging messages removed 2010-01-15 09:39:44 -05:00
antirez 4ad37480f3 thread safe zmalloc used memory counter 2010-01-15 08:52:20 -05:00
antirez b04a5df979 A define to make Redis more helgrind friendly 2010-01-15 05:16:12 -05:00
antirez 1064ef8764 removed a few races from threaded VM 2010-01-15 05:09:18 -05:00
antirez 2e111efe5a Fixed a never experienced, theoretical bug that can actually happen in practice. Basically when a thread is working on a I/O Job we need to wait it to finish before to cancel the Job in vmCancelThreadedIOJob(), otherwise the thread may mess with an object that is being manipulated by the main thread as well. 2010-01-14 17:18:27 -05:00
antirez bcaa7a4ffa Set the new threads stack size to a LZF friendly amount 2010-01-14 08:58:41 -05:00
antirez 427a2153d3 access to already freed job structure fixed by statements reoredering 2010-01-13 16:26:41 -05:00
antirez 85a2775298 removed a useless debugging message 2010-01-13 13:41:38 -05:00
antirez 4ee9488d7e Wait zero active threads condition before to fork() for BGSAVE or BGREWRITEAOF 2010-01-13 13:38:30 -05:00
antirez c7df85a484 list API is now thread safe 2010-01-13 13:18:07 -05:00
antirez b74880b4ed minor TODO and debugging info changes 2010-01-13 09:40:50 -05:00
antirez 72e9fd40b6 support for blocking VM in config file 2010-01-12 15:23:52 -05:00
antirez f2d9f50f6c more non blocking VM changes 2010-01-12 15:09:11 -05:00
antirez 25fd2cb284 a few more stuff in INFO about VM. Test #11 changed a bit in order to be less lame 2010-01-12 09:57:00 -05:00
antirez c953f24bce Added a define to configure how many completed IO jobs the handler should process at every call. 2010-01-12 07:27:54 -05:00
antirez 6c96ba7dfe Fixed a bug in the IO Job canceling funtion 2010-01-11 19:47:18 -05:00
antirez a5819310b0 more steps towards a working non blocking VM 2010-01-11 17:26:58 -05:00
antirez 20f5b38867 converted random printfs in debug logs 2010-01-11 13:10:43 -05:00
antirez b3e3d0d78e removed a bug introduced with non blocking VM 2010-01-11 12:54:29 -05:00
antirez f11b864714 a few non blocking VM bugs fixed 2010-01-11 12:45:15 -05:00
antirez b9bc0eefc4 More work on non-blocking VM. Should work in a few days 2010-01-11 11:42:15 -05:00
antirez a69a0c9c3b More threaded I/O VM work + Redis init script 2010-01-11 05:15:54 -05:00
antirez 996cb5f704 more work on VM threaded I/O. Still nothing of usable 2010-01-10 11:23:01 -05:00
antirez 92f8e88204 non-blocking VM data structures, just a start 2010-01-09 12:46:52 -05:00
antirez ec6c7a1d78 used_memory_human added to INFO output. Human readable amount of memory used. 2010-01-08 10:38:48 -05:00
antirez ace065423e Now DEBUG OBJECT plays well with swapped out objects 2010-01-07 16:51:58 -05:00
antirez 0841cc928d fflush VM swap file after object swapping 2010-01-07 15:53:12 -05:00
antirez b492cf00d8 VM now swaps objects out while loading datasets not fitting into vm-max-memory bytes of RAM 2010-01-07 10:41:08 -05:00
antirez 0d7170a454 added process id information in INFO 2010-01-07 08:56:57 -05:00
antirez 38aba9a121 a new default redis.conf 2010-01-06 21:03:16 -05:00
antirez 7d98e08c0a VM stats in INFO command 2010-01-06 20:14:27 -05:00
antirez f870935d3e Introduced a new log verbosity level, so now DEBUG is really for debugging. Refactored a bit maxmemory. When virtual memory is short in RAM free the objects freelist as well as swapping things out. 2010-01-06 09:15:17 -05:00
antirez 38823f0817 fixed a bug in bgsave when VM is off but still it was testing for obj->storage field 2010-01-05 19:51:30 -05:00
antirez f2b8ab346a converted a few calls to assert() => redisAssert() to print stack trace 2010-01-05 19:44:22 -05:00
antirez e7546c6393 BGREWRITEAOF now works with swapping on 2010-01-05 19:15:15 -05:00
antirez 1b03836c0e A first fix for SET key overwrite 2010-01-05 14:25:56 -05:00
antirez 7e69548dac SAVE now works with VM 2010-01-05 13:51:46 -05:00
antirez e3cadb8abe swapping algorithm a bit more aggressive under low memory 2010-01-05 13:16:41 -05:00
antirez 4ef8de8ad7 basic VM mostly working! 2010-01-05 12:46:59 -05:00
antirez d894161b85 New object field (one of the unused bytes) to hold the type of the swapped out value object in key objects 2010-01-05 10:38:58 -05:00
antirez 7d30035d47 VM internals bugfixes, set 1 2010-01-05 10:34:05 -05:00
antirez 55cf8433e3 load key from swap on key lookup 2010-01-05 07:28:06 -05:00
antirez a35ddf129c more object-level VM primitives 2010-01-05 07:19:09 -05:00
antirez 3a66edc7a4 Redis objects swapping / loading 2010-01-05 05:37:19 -05:00
antirez c78a8ccce7 rdbLoadObject() as a separated function to load objects from disk. Dropped support for RDB version 0, I guess no longer has this legacy DBs around 2010-01-05 04:49:02 -05:00
antirez 06224fec7a VM low level pages handling 2010-01-04 19:52:08 -05:00
antirez 75680a3c37 vm swap file creation, and some basic configuration 2010-01-04 16:01:40 -05:00
antirez 5dc70bff2e version marked 1.3.2 2010-01-04 15:01:55 -05:00