120 Commits

Author SHA1 Message Date
antirez
a6fc4dfcc6 XADD MAXLEN should return an error for values < 0. 2018-06-17 10:44:01 +02:00
antirez
2ec4d9be58 Streams: generate a few additional events.
Currently it does not look it's sensible to generate events for streams
consumer groups modification, being them metadata, however at least for
key-level events, like the creation or removal of a consumer group, I
added a few events here and there. Later we can evaluate if it makes
sense to add more. From the POV instead of WAIT (in Redis transaciton)
and signaling the key as modified, it looks like that the transaction
should not fail when a stream is modified, so no calls are made in
consumer groups related functions to signalModifiedKey().
2018-06-12 18:11:15 +02:00
antirez
048815f32e Streams: improve type correctness in t_stream.c. 2018-06-12 14:12:53 +02:00
antirez
41824b9b20 Fix XGROUP help missing space. 2018-06-12 13:20:46 +02:00
antirez
77c72d5e40 Streams: fix backward iteration when entry is not flagged SAMEFIELD.
See issue #5006. The comment in the code was also wrong and
was rectified as well.
2018-06-12 10:22:49 +02:00
Salvatore Sanfilippo
1e15565b37 Merge pull request #5007 from leonchen83/patch-2
fix typo issue #5005
2018-06-12 09:28:26 +02:00
antirez
2e9812bf9c Streams: increment dirty counter for XGROUP SETID/DESTROY.
See issue #5005 comments.
2018-06-12 09:27:40 +02:00
Baoyi Chen
200f4e28ad fix typo
fix [#5005](https://github.com/antirez/redis/issues/5005)
2018-06-12 08:52:18 +08:00
Salvatore Sanfilippo
b578ab0bf4 Merge pull request #5002 from soloestoy/streams-read-or-write
Streams: lookupKey[Read->Write]OrReply in xdel and xtrim
2018-06-11 16:33:10 +02:00
Salvatore Sanfilippo
e54b49ac4c Merge pull request #5003 from soloestoy/streams-checkType
Streams: checkType for xread & xinfo
2018-06-11 16:32:00 +02:00
zhaozhao.zz
83bb4a0dff Streams: checkType for xread & xinfo 2018-06-11 01:17:52 +08:00
zhaozhao.zz
b47471880d Streams: lookupKey[Read->Write]OrReply in xdel and xtrim 2018-06-11 00:14:17 +08:00
michael-grunder
efcc676b0b Abort in XGROUP if the key is not a stream 2018-06-10 08:55:58 -07:00
Salvatore Sanfilippo
ac0b8125e0 Merge pull request #4977 from michael-grunder/xpending-early-return
Return early in XPENDING if sent a nonexistent consumer group.
2018-06-07 18:49:09 +02:00
antirez
664cfb8d6b Typo: entires -> entries in several places. 2018-06-07 14:36:56 +02:00
antirez
80f89e0634 Streams: max node limits only checked if non zero. 2018-06-07 14:30:25 +02:00
antirez
89435af570 Streams: use non static macro node limits.
Also add the concept of size/items limit, instead of just having as
limit the number of bytes.
2018-06-07 14:24:49 +02:00
antirez
3406400ae0 Fix streamIteratorRemoveEntry() to update elements count.
Close #4989.
2018-06-06 11:40:22 +02:00
antirez
d3b425470b Remove XINFO <key> special form.
As observed by Michael Grunder this usage while practical is
inconsistent because for instance it does not work against a key called
HELP. Removed.
2018-06-05 16:34:34 +02:00
antirez
ff7cb41475 XGROUP SETID implemented + consumer groups core fixes.
Now that we have SETID, the inetrnals of consumer groups should be able
to handle the case of the same message delivered multiple times just
as a side effect of calling XREADGROUP. Normally this should never
happen but if the admin manually "XGROUP SETID mykey mygroup 0",
messages will get re-delivered to clients waiting for the ">" special
ID. The consumer groups internals were not able to handle the case of a
message re-delivered in this circumstances that was already assigned to
another owner.
2018-06-04 17:28:03 +02:00
antirez
226712b467 XGROUP DESTROY implemented. 2018-06-04 12:58:26 +02:00
michael-grunder
ac6bb9ff05 Return early in XPENDING if sent a nonexistent consumer group. 2018-06-02 18:22:20 -07:00
antirez
71b745b612 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2018-05-29 12:41:07 +02:00
antirez
63bbacc4ab Streams: fix comments referring to old ID format. 2018-05-25 17:25:19 +02:00
zhaozhao.zz
3b2b5e1d1b avoid warning in t_stream.c 2018-05-25 22:49:49 +08:00
antirez
1ea37fcf4f Simplify XADD ID syntax error code path,. 2018-05-25 16:29:37 +02:00
Salvatore Sanfilippo
a998d21f71 Merge pull request #4832 from 0xtonyxia/fix-xadd-ID-parse
Bugfix: xadd command ID parse
2018-05-25 16:27:21 +02:00
antirez
8bdaeaa4c1 Avoid warning by explicitly initializing var to NULL. 2018-05-25 16:19:14 +02:00
antirez
a881942e60 Explicitly cast void pointers to char pointers for printf style logging. 2018-05-25 16:15:59 +02:00
Salvatore Sanfilippo
a99b41c816 Merge pull request #4831 from 0xtonyxia/fix-xadd-arity-check
Bugfix: xadd comand <field,value> arity check
2018-05-24 16:07:19 +02:00
antirez
a968ee6fcd Streams: XTRIM command added. 2018-04-19 16:25:29 +02:00
antirez
f918d0c0f7 Streams: XADD, handle signaling of write in different ways. 2018-04-19 16:11:43 +02:00
antirez
5bfd409b6e Streams: XDEL command. 2018-04-18 13:12:09 +02:00
antirez
d13ff164bf Streams: higher level "delete by ID" API for streams. 2018-04-17 17:55:56 +02:00
antirez
852cc013ac Streams: iterator entry deletion abilities. 2018-04-17 17:18:00 +02:00
dejun.xdj
e7c0edc734 Return more accurate message when specified ID is invalid 2018-04-10 17:11:10 +08:00
dejun.xdj
2e0d90fc96 Bugfix: xadd command ID parse
strictly check the string to be converted,
strtoull() in libc may not set errno to EINVAL when the string contains
invalid digits.
2018-04-10 17:05:48 +08:00
dejun.xdj
32c2185ff5 Bugfix: xadd comand <field,value> arity check
missing parenthesis causes wrong arithmetic priority.
2018-04-10 16:36:05 +08:00
charsyam
a152681256 fix memory leak for streamPropagateXCLAIM 2018-03-21 17:41:59 +09:00
antirez
abe3502ea7 CG: propagate XACK by incrementing server.dirty.
This should be more than enough, even if in case of partial IDs that are
not found, we send all the IDs to the slave/AOF, but this is definitely
a corner case without bad effects if not some wasted space.
2018-03-20 17:53:45 +01:00
antirez
d28f9eb1b9 CG: Make XINFO Great Again (and more Redis-ish).
With XINFO out of the blue I invented a new syntax for commands never
used in Redis in the past... Let's fix it and make it

        Great Again!!11one (TM)
2018-03-20 11:52:42 +01:00
antirez
d7cf910a03 CG: Add JUSTID to XCLAIM propagation to reduce CPU usage. 2018-03-20 11:25:49 +01:00
antirez
2f3149e0a0 CG: Fix propagate() arg count in streamPropagateXCLAIM(). 2018-03-20 11:13:41 +01:00
antirez
947f75098c CG: XGROUP CREATE/DELCONUSMER replication. 2018-03-20 11:07:01 +01:00
antirez
378b5761d8 CG: Replication WIP 1: XREADGROUP and XCLAIM propagated as XCLAIM. 2018-03-19 18:02:19 +01:00
antirez
071ef69726 CG: XINFO STREAM. 2018-03-15 12:54:10 +01:00
antirez
d05efa5b3b CG: XINFO GROUPS + output format changes.
XINFO is mainly an observability command that will be used more by
humans than computers, and even when used by computers it will be a very
low traffic command. For this reason the format was changed in order to
have field names. They'll consume some bandwidth and CPU cycles, but in
this context this is much better than having to understand what the
numbers in the output array are.
2018-03-15 12:54:10 +01:00
antirez
c5507af63c CG: XINFO CONSUMERS implemented. 2018-03-15 12:54:10 +01:00
antirez
7afd470477 Streams: fix XREAD missing check for NULL object. 2018-03-15 12:54:10 +01:00
antirez
5c1f1f43f8 CG: throw an error if XREADGROUP is used without GROUP. 2018-03-15 12:54:10 +01:00