Commit Graph

435 Commits

Author SHA1 Message Date
antirez afd0f06b75 Fixed bug in getClientInfoString() that was not rendering the N (no flags) special flag correctly. 2011-11-21 16:19:30 +01:00
antirez becf5fdb0c Close client connection and log the event when the client input buffer reaches 1GB. 2011-11-21 16:17:51 +01:00
antirez 6621b8ffa1 show active events in client file descriptor in CLIENT LIST. 2011-11-21 16:06:03 +01:00
antirez 491c1c4e04 added output list and buffer length, query buffer size, to CLIENT LIST output. 2011-11-21 15:54:49 +01:00
antirez 17d25a33e2 code generating the CLIENT LIST output refactored to have a function that is able to render a single client into a client info string. 2011-11-21 15:34:32 +01:00
antirez b90314588f useless double if removed. 2011-11-08 11:26:06 +01:00
antirez b0a2e34059 yet another #if REDIS_MBULK_BIG_ARG removed. 2011-11-08 11:24:12 +01:00
antirez 53272781d0 Multi bulk optimization for creating big objects without copying data is no longer optional, #ifdefs removed. Also debugging messages removed. 2011-11-08 11:22:40 +01:00
antirez ca908473e8 A comment moved a few lines for clarity. 2011-11-04 11:18:15 +01:00
antirez 94d490b9f6 Added a define to set the size threshold to enable the multi bulk parsing big objects optimization. 2011-11-04 11:16:11 +01:00
antirez 826b5beb9c further optimizations for the multi bulk protocol parsing code when big objects are transmitted to Redis. 2011-11-03 15:53:40 +01:00
antirez 9217095572 optimized object creation in multi-bulk protocol parsing 2011-11-02 17:30:19 +01:00
antirez b8d743e181 sdsIncrLen() / sdsMakeRoomFor() used to avoid copying to intermediate buffer while reading the client query. 2011-11-02 16:52:45 +01:00
antirez 58732c23d5 maxclients configuration is now implemented dealing with the actual process rlimits. Setting maxclients to 0 no longer makes sense and is now invalid, the new default is 10000.
See issue #162 for more information.
2011-10-31 10:49:27 +01:00
antirez 6856c7b4d6 First implementation of the ASKING command. Semantics still to verify. 2011-10-17 17:35:23 +02:00
antirez eab0e26e03 replaced redisAssert() with redisAssertWithInfo() in a shitload of places. 2011-10-04 18:43:03 +02:00
antirez 3bc89500d2 Remove the write handler only if there are no longer objects in the output queue AND if the static buffer is empty. This bug was the cause of a possible server-stop-responding-to-client bug under some specific work load. Thanks to Pieter Noordhuis for spotting and fixing it. 2011-09-12 11:06:28 +02:00
Hampus Wessman 64f201c2aa Fix crash when pipelining several blocking commands. 2011-07-28 13:50:44 +02:00
antirez 4dd444bb4a Replicate EVALSHA as EVAL taking a dictionary of sha1 -> script source code. 2011-07-13 15:38:03 +02:00
antirez 0681c5ad84 master branch merged into scripting. 2011-07-12 12:39:16 +02:00
antirez 09e2d9eeba Take a pointer to the relevant entry of the command table in the client structure. This is generally a more sounding design, simplifies a few functions prototype, and as a side effect fixes a bug related to the conversion of EXPIRE -1 to DEL: before of this fix Redis tried to convert it into an EXPIREAT in the AOF code, regardless of our rewrite of the command. 2011-07-08 12:59:30 +02:00
antirez 994ed2bc55 unstable merge conflicts resolved 2011-06-25 12:29:24 +02:00
antirez c9d0c3623a diskstore removed 2011-06-25 12:22:03 +02:00
antirez c1c9d551da Fix for bug 561 and other related problems 2011-06-20 17:19:36 +02:00
antirez 07486df6fe new INFO filed master_link_down_since_seconds 2011-06-17 16:16:46 +02:00
antirez 3bb818df40 Make sure error and status replies emitted by Lua scripts can never have more than a newline, otherwise it is a protocol violation and clients will desync. 2011-05-25 12:32:50 +02:00
antirez 7b72272790 when creating not connected clients do not add them into the clients list, otherwise they will be subject to timeouts and other stuff 2011-05-25 12:32:44 +02:00
antirez 7156f43c04 Correctly glue the reply buffer. For now returned as it is to Lua, but will be converted into Lua native type later. 2011-05-25 12:32:44 +02:00
antirez 0f1d64ca57 Lua call of Redis command work in progress: sorry I have to go to the cinema to watch the Source Code movie 2011-05-25 12:32:44 +02:00
antirez df541beae3 when Redis fails accepting a new connection reports the error at WARNING and not VERBOSE error level. Thanks to offby1 for proposing this in the Redis mailing list. #backport-candidate 2011-05-07 11:47:34 +02:00
Pieter Noordhuis bf9fd5ffa2 Check for \n after finding \r 2011-05-05 16:32:22 +02:00
Pieter Noordhuis af0e51f2e1 Move code 2011-05-05 16:25:48 +02:00
Pieter Noordhuis 5af302011c Use custom string2ll and strchr 2011-05-05 16:25:48 +02:00
antirez d37299e3b7 Fixed a bug with replication where SLAVEOF NO ONE caused a slave to close the connection with its slaves 2011-04-29 14:18:16 +02:00
antirez b93fdb7bbb CLIENT KILL implemented 2011-04-21 15:47:47 +02:00
antirez 3cd12b5687 CLIENT LIST implemented 2011-04-21 15:38:02 +02:00
antirez c7ba7b8bbb removed check for zmalloc return NULL in createClient(). The check was misplaced, and zmalloc never returns NULL. 2011-04-20 12:51:03 +02:00
antirez 009db67645 addReplyLongLong optimized to return shared objects when the value to reply is 0 or 1 2011-04-15 18:08:24 +02:00
antirez 5b94b8ac5d fixed memory leak introduced with the previous commit. Many thanks to Pieter Noordhuis for spotting it in no time 2011-03-31 19:52:15 +02:00
antirez 25ef31920a Fixed issue #503. MONITOR + QUIT could crash the server, there are actually other interactions that could have the same effect (for instance Pub/Sub). 2011-03-31 16:44:43 +02:00
antirez 89a1433e69 Fixed issue #435 and at the same time introduced explicit ping in the master-slave channel that will detect a blocked master or a broken even if apparently connected TCP link. 2011-01-20 13:18:23 +01:00
Pieter Noordhuis 3bcffcbe5b Remove client from list of unblocked clients when it is free'd 2011-01-17 10:04:13 +01:00
antirez 7a1fd61e3d implemented two new INFO fields showing the size of clients max input and output buffers. 2011-01-14 10:20:02 +01:00
Pieter Noordhuis a510cb0c03 Remove glueoutputbuf option and broken code 2011-01-05 10:39:41 +01:00
antirez 3be00d7ed6 implemented a different approach to IO scheduling, so object->storage is no longer used, instead there is a queue and hash table of IO tasks to process, and it is always possible to know what are the scheduled and acrtive IO operations against every single key. 2011-01-01 21:35:56 +01:00
antirez 98a9abb66d don't use small shared integer objects when disk store is enabled 2010-12-30 18:17:01 +01:00
antirez 16d778780e a lot of code reworked/removed to implement object caching 2010-12-28 18:06:40 +01:00
antirez 697af434fb initial changes needed to turn the current VM code into a cache system. Tons of work to do still. 2010-12-28 15:20:20 +01:00
antirez 401c3e213c bulk transfers limited to 512 MB as this is the new limit of all the redis strings 2010-12-15 16:07:49 +01:00
antirez f858c11d7d Merge remote branch 'pietern/brpoplpush' 2010-12-14 16:26:37 +01:00
antirez d51ebef509 LRANGE converted into a COW friendly command. Some refactoring, comment, and new addReply*() family function added in the process. 2010-12-07 16:33:13 +01:00
Damian Janowski & Michel Martens e3c51c4b1b Rename bstate to bpop. 2010-11-29 23:52:07 -03:00
Damian Janowski & Michel Martens 357a841714 Move to struct. 2010-11-29 23:52:07 -03:00
antirez f4aa600b99 first attempt to non blocking implementation of slave replication and SYNC bulk data download. Never compiled so far... 2010-11-04 17:29:53 +01:00
antirez 0a546fc017 Merge remote branch 'pietern/unixsocket' 2010-11-02 23:47:52 +01:00
Pieter Noordhuis 4794d88f15 Rewrite comment that was no longer valid 2010-10-28 16:59:05 +01:00
Pieter Noordhuis a3a323e0e5 When REDIS_CLOSE_AFTER_REPLY is set, there may never be new replies 2010-10-28 16:52:23 +01:00
Pieter Noordhuis 5e78edb350 Unify two client flags that mean the same 2010-10-28 15:07:45 +01:00
Pieter Noordhuis b19c33d48a Prevent clients from making too large multibulk requests 2010-10-15 19:15:38 +02:00
Pieter Noordhuis 9da6caac4e Don't reset the client when processCommand returns REDIS_ERR 2010-10-15 17:27:05 +02:00
Pieter Noordhuis cd8788f26d Refactor request parsing code for efficiency 2010-10-15 15:44:55 +02:00
Pieter Noordhuis b04ce2a35c Merge master with resolved conflict in src/redis-cli.c 2010-10-13 18:55:46 +02:00
Pieter Noordhuis 4fe83b554a sockaddr_un.sun_path appears to never hold anything after accept() 2010-10-13 18:50:07 +02:00
Pieter Noordhuis ab17b909fe Use different accept handlers for TCP and unix socket connections 2010-10-13 18:34:24 +02:00
Pieter Noordhuis 941c9fa285 Return OK on QUIT 2010-10-13 11:25:40 +02:00
antirez a4f3f93b90 new parsing code bugfixing 2010-09-17 16:05:01 +02:00
antirez 34a719d250 try to parse the request in a smarter way to gain speed... work in progress 2010-09-17 15:26:07 +02:00
antirez 4c2e506a39 modified a bit addReply() to play better with copy on write now that we have a static buffer. Changed the name of a function from _ensureFileEvent() to _installWriteEvent(). 2010-09-16 13:08:40 +02:00
antirez 83f39c7ab2 Merge remote branch 'pietern/networking-perf' 2010-09-16 12:02:18 +02:00
Pieter Noordhuis f335779240 Static buffer in client struct has a constant size 2010-09-16 11:59:53 +02:00
antirez 89f9f83769 Merge remote branch 'pietern/networking-perf' 2010-09-16 11:38:40 +02:00
Pieter Noordhuis 106bd87a3c Fix bug where the client is not present in server.clients when free'ing it
When creating the readable event results in an error (this happens when
the server hits OS limits), the client was not added to the list of
clients when freeClient was called. This results in an assertion error.
It is better to check this condition first and free the client
immediately when this condition occurs. Port of 00a90feb.
2010-09-07 10:25:34 +02:00
Pieter Noordhuis 49128f0b9d Fix bug in gluing a deferred multi bulk length to the next reply chunk 2010-09-02 23:34:41 +02:00
Pieter Noordhuis 3ab203762f Use specialized function to add status and error replies 2010-09-02 23:33:06 +02:00
Pieter Noordhuis 36c19d03e0 Changed reply buildup internals 2010-09-02 19:52:04 +02:00
Pieter Noordhuis 4a7893ca9c Removed unneeded function 2010-09-02 19:52:04 +02:00
Pieter Noordhuis cd76bb651d Free the sds in addReplySds when it cannot be added to the reply 2010-09-02 19:52:04 +02:00
Pieter Noordhuis 0537e7bf80 Use specialized function to add multi bulk reply length 2010-09-02 12:51:14 +02:00
Pieter Noordhuis 57b0738011 Don't build a reply when replaying the AOF 2010-08-30 16:51:39 +02:00
Pieter Noordhuis b301c1fc2b Wrapper for adding unknown multi bulk length to reply list 2010-08-30 16:39:14 +02:00
Pieter Noordhuis 834ef78e27 Refactor reply buildup for speed on large multi bulk replies 2010-08-30 16:39:08 +02:00
antirez 778b2210a9 slave with attached slaves now close the conection to all the slaves when the connection to the master is lost. Now a slave without a connected link to the master will refuse SYNC from other slaves. Enhanced the replication error reporting. All this will fix Issue 156 2010-08-24 16:04:13 +02:00
antirez e452436a07 BLPOPping clients are no longer subject to connection timeouts, fixing issues 155 2010-08-24 12:10:59 +02:00
antirez 1a71fb9669 vm_blocked_clients count fixed in INFO, thanks to Pietern Noordhuis 2010-07-21 13:16:26 +02:00
antirez e2641e09cc redis.c split into many different C files.
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
2010-07-01 14:38:51 +02:00