antirez
6468cb2e82
Streams: fix XREAD ready-key signaling.
...
With lists we need to signal only on key creation, but streams can
provide data to clients listening at every new item added.
To make this slightly more efficient we now track different classes of
blocked clients to avoid signaling keys when there is nobody listening.
A typical case is when the stream is used as a time series DB and
accessed only by range with XRANGE.
2017-12-01 10:24:24 +01:00
antirez
06a30111a8
Streams: fix XREAD ready-key signaling.
...
With lists we need to signal only on key creation, but streams can
provide data to clients listening at every new item added.
To make this slightly more efficient we now track different classes of
blocked clients to avoid signaling keys when there is nobody listening.
A typical case is when the stream is used as a time series DB and
accessed only by range with XRANGE.
2017-12-01 10:24:24 +01:00
antirez
671c1a2251
Streams: fix XREAD timeout handling, zero is valid.
2017-12-01 10:24:24 +01:00
antirez
b5be5093fe
Streams: fix XREAD timeout handling, zero is valid.
2017-12-01 10:24:24 +01:00
antirez
f3b3ca41f7
Streams: fix XREAD timeout handling, zero is valid.
2017-12-01 10:24:24 +01:00
antirez
3aa11e22a4
Streams: XREAD related code to serve blocked clients.
2017-12-01 10:24:24 +01:00
antirez
2cacdcd6f8
Streams: XREAD related code to serve blocked clients.
2017-12-01 10:24:24 +01:00
antirez
ea5ea8da3d
Streams: XREAD related code to serve blocked clients.
2017-12-01 10:24:24 +01:00
antirez
9290ad3cb9
Streams: XREAD ability to block fixed.
2017-12-01 10:24:24 +01:00
antirez
0adb43b68f
Streams: XREAD ability to block fixed.
2017-12-01 10:24:24 +01:00
antirez
6d54ec5e24
Streams: XREAD ability to block fixed.
2017-12-01 10:24:24 +01:00
antirez
539d8747b2
Streams: synchronous xread fixes and improvements.
2017-12-01 10:24:24 +01:00
antirez
6a1c92d52d
Streams: synchronous xread fixes and improvements.
2017-12-01 10:24:24 +01:00
antirez
b6f1106630
Streams: synchronous xread fixes and improvements.
2017-12-01 10:24:24 +01:00
antirez
dd857e945e
Streams: XREAD get-key method fixed.
2017-12-01 10:24:24 +01:00
antirez
a7d898334a
Streams: XREAD get-key method fixed.
2017-12-01 10:24:24 +01:00
antirez
bfeeeb9f34
Streams: XREAD get-key method fixed.
2017-12-01 10:24:24 +01:00
antirez
d783126316
Streams: XREAD get-keys method.
2017-12-01 10:24:24 +01:00
antirez
110041825c
Streams: XREAD get-keys method.
2017-12-01 10:24:24 +01:00
antirez
084a871019
Streams: XREAD get-keys method.
2017-12-01 10:24:24 +01:00
antirez
004a8b8712
Streams: XREAD, first draft. Handling of blocked clients still missing.
2017-12-01 10:24:24 +01:00
antirez
fa61720d30
Streams: XREAD, first draft. Handling of blocked clients still missing.
2017-12-01 10:24:24 +01:00
antirez
6f79b52dfa
Streams: XREAD, first draft. Handling of blocked clients still missing.
2017-12-01 10:24:24 +01:00
antirez
7ccc80d503
Streams: XREAD arguments parsing.
2017-12-01 10:24:24 +01:00
antirez
e65b4825f0
Streams: XREAD arguments parsing.
2017-12-01 10:24:24 +01:00
antirez
54e221af43
Streams: XREAD arguments parsing.
2017-12-01 10:24:24 +01:00
antirez
a477b95b01
Streams: augment client.bpop with XREAD specific fields.
2017-12-01 10:24:24 +01:00
antirez
4086dff477
Streams: augment client.bpop with XREAD specific fields.
2017-12-01 10:24:24 +01:00
antirez
428bb7cca0
Streams: augment client.bpop with XREAD specific fields.
2017-12-01 10:24:24 +01:00
antirez
53600c7fd5
Streams: more internal preparation for blocking XREAD.
2017-12-01 10:24:24 +01:00
antirez
f80dfbf464
Streams: more internal preparation for blocking XREAD.
2017-12-01 10:24:24 +01:00
antirez
6195349b50
Streams: more internal preparation for blocking XREAD.
2017-12-01 10:24:24 +01:00
antirez
f6179c38b0
Streams: initial work to use blocking lists logic for streams XREAD.
2017-12-01 10:24:24 +01:00
antirez
4a377cecd8
Streams: initial work to use blocking lists logic for streams XREAD.
2017-12-01 10:24:24 +01:00
antirez
896300be30
Streams: initial work to use blocking lists logic for streams XREAD.
2017-12-01 10:24:24 +01:00
antirez
8016093ee9
Streams: implement stream object release.
2017-12-01 10:24:24 +01:00
antirez
439120c620
Streams: implement stream object release.
2017-12-01 10:24:24 +01:00
antirez
a168cbef13
Streams: implement stream object release.
2017-12-01 10:24:24 +01:00
antirez
6a4fd95478
Streams: XLEN command.
2017-12-01 10:24:24 +01:00
antirez
ec9bbe96bf
Streams: XLEN command.
2017-12-01 10:24:24 +01:00
antirez
760ad8f65c
Streams: XLEN command.
2017-12-01 10:24:24 +01:00
antirez
1157127d8e
Streams: Save stream->length in RDB.
2017-12-01 10:24:24 +01:00
antirez
98d184db12
Streams: Save stream->length in RDB.
2017-12-01 10:24:24 +01:00
antirez
64a7ad038d
Streams: Save stream->length in RDB.
2017-12-01 10:24:24 +01:00
antirez
aa8acb476b
Streams: change listpack allocator to zmalloc.
2017-12-01 10:24:24 +01:00
antirez
cd18f06e9c
Streams: change listpack allocator to zmalloc.
2017-12-01 10:24:24 +01:00
antirez
fac8b716ab
Streams: change listpack allocator to zmalloc.
2017-12-01 10:24:24 +01:00
antirez
5a9ec523f5
Streams: RDB loading. RDB saving modified.
...
After a few attempts it looked quite saner to just add the last item ID
at the end of the serialized listpacks, instead of scanning the last
listpack loaded from head to tail just to fetch it. It's a disk space VS
CPU-and-simplicity tradeoff basically.
2017-12-01 10:24:24 +01:00
antirez
edd70c1993
Streams: RDB loading. RDB saving modified.
...
After a few attempts it looked quite saner to just add the last item ID
at the end of the serialized listpacks, instead of scanning the last
listpack loaded from head to tail just to fetch it. It's a disk space VS
CPU-and-simplicity tradeoff basically.
2017-12-01 10:24:24 +01:00
antirez
90c980b105
Streams: RDB loading. RDB saving modified.
...
After a few attempts it looked quite saner to just add the last item ID
at the end of the serialized listpacks, instead of scanning the last
listpack loaded from head to tail just to fetch it. It's a disk space VS
CPU-and-simplicity tradeoff basically.
2017-12-01 10:24:24 +01:00