John Sully
c6d5347a22
Fix HLL corruption bug
2019-07-29 18:11:52 -04:00
antirez
cf2df9829c
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-07-25 19:18:26 +02:00
antirez
4e547a0ac5
Mark diskless loads as experimental in redis.conf.
2019-07-25 19:17:58 +02:00
Salvatore Sanfilippo
6b03774963
Merge pull request #6248 from oranagra/module-log
...
RM_Log - add support for logging without a context or context without module
2019-07-25 18:48:46 +02:00
antirez
d427b312ea
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-07-24 11:45:19 +02:00
antirez
63e1d1cb27
Client side caching: document tracking-table-max-fill in redis.conf.
2019-07-24 11:45:10 +02:00
antirez
27095db3f3
Example redis.conf: stay under 80 cols.
2019-07-24 11:38:11 +02:00
antirez
83b8fbf580
Client side caching: config option for table fill rate.
2019-07-24 11:35:01 +02:00
antirez
1ead7a1158
Remove experimental warning from diskless replication.
2019-07-24 11:33:53 +02:00
Salvatore Sanfilippo
ece91a4bc7
Merge pull request #6265 from madolson/dev-unstable-remove-create-object
...
Removed unnecessary creation of Redis objects
2019-07-23 17:05:10 +02:00
antirez
1d54931685
Client side caching: show tracking slots usage in INFO.
2019-07-23 11:02:14 +02:00
antirez
79a73bb95a
Client side caching: implement full slot limit function.
2019-07-23 10:57:22 +02:00
Salvatore Sanfilippo
36e71cb385
Merge pull request #6267 from soloestoy/opt-claim-trackingtable
...
Client side caching: do not reclaim tracking table if it's empty
2019-07-23 09:43:41 +02:00
zhaozhao.zz
408ca31d16
Client side caching: do not reclaim tracking table if it's empty
2019-07-23 15:25:00 +08:00
Madelyn Olson
dedbc9d4d2
Removed unecessary creation of Redis objects
2019-07-22 22:52:16 -07:00
antirez
f2f3d91e78
Client side caching: split invalidation into key / slot.
2019-07-22 18:59:53 +02:00
antirez
023b67e80f
Client side caching: redis-cli ability to enable tracking.
...
This is extremely useful in order to simulate an high load of requests
about different keys, and force Redis to track a lot of informations
about several clients, to simulate real world workloads.
2019-07-22 18:45:47 +02:00
antirez
ac05029790
Move signalFlushedDb() into a better place.
...
Now that the call also invalidates client side caching slots, it is
important that after an internal flush operation we both send the
notifications to the clients and, at the same time, are able to reclaim
the memory of the tracking table. This may even fix a few edge cases
related to MULTI/EXEC + WATCH during resync, not sure, but in general
looks more correct.
2019-07-22 12:37:47 +02:00
antirez
06de8790dc
Client side caching: reclaim the tracking table on FLUSHALL.
2019-07-22 12:33:49 +02:00
antirez
df2e7cf4fc
Client side caching: call the invalidation functions always.
...
Otherwise what happens is that the tracking table will never get garbage
collected if there are no longer clients with tracking enabled.
Now the invalidation function immediately checks if there is any table
allocated, otherwise it returns ASAP, so the overhead when the feature
is not used should be near zero.
2019-07-22 12:29:54 +02:00
antirez
ab49072362
Client side caching: don't hash the key if not needed.
2019-07-22 12:10:51 +02:00
antirez
bcf3cf8832
Clinet side caching: take count of used caching slots.
2019-07-22 11:47:44 +02:00
antirez
92455bb036
RDB: fix MODULE_AUX loading by continuing to next opcode.
...
Thanks to @JohnSully for noticing this problem.
2019-07-19 11:12:46 +02:00
antirez
b8d5518787
RDB: make sure to abort on LZF encoding error.
2019-07-18 18:59:38 +02:00
antirez
a345fef285
RDB: handle encoding errors with rdbExitReportCorruptRDB().
...
Without such change, the diskless replicas, when loading RDB files from
the socket will not abort when a broken RDB file gets loaded. This is
potentially unsafe, because right now Redis is not able to guarantee
that encoding errors are safe from the POV of memory corruptions (for
instance the LZF library may not be safe against untrusted data?) so
better to abort when the RDB file we are going to load is corrupted.
Instead I/O errors are still returned to the caller without aborting,
so that in case of short read the diskless replica can try again.
2019-07-18 18:51:45 +02:00
Salvatore Sanfilippo
344f46380f
Merge pull request #6252 from soloestoy/tracking-flushdb
...
Tracking flushdb
2019-07-18 16:41:37 +02:00
antirez
db69845b48
RDB: update rdbLoadRio comment about EOF condition.
2019-07-18 12:37:55 +02:00
zhaozhao.zz
996dcae44f
Client side caching: filter clients untracking
2019-07-18 16:46:19 +08:00
antirez
72b7b904c1
RDB: try to make error handling code more readable.
2019-07-17 17:30:02 +02:00
antirez
94186a607e
Rio: when in error condition avoid doing the operation.
2019-07-17 16:46:22 +02:00
antirez
ecf5d7a662
RDB: modify rdbReportError() var name for clarity.
2019-07-17 16:46:22 +02:00
antirez
363b131aff
Rio: remember read/write error conditions.
2019-07-17 16:46:22 +02:00
Oran Agra
73a945c73c
prevent diskless replica from terminating on short read
...
now that replica can read rdb directly from the socket, it should avoid exiting
on short read and instead try to re-sync.
this commit tries to have minimal effects on non-diskless rdb reading.
and includes a test that tries to trigger this scenario on various read cases.
2019-07-17 16:46:22 +02:00
zhaozhao.zz
8d5e3b7893
Client side caching: implement trackingInvalidateKeysOnFlush()
2019-07-17 20:33:52 +08:00
Oran Agra
e0387b30f2
RM_Log - add support for logging without a context or context without module
...
for instance detached thread safe contexts, or various callbacks that don't
provide a context.
2019-07-17 15:08:18 +03:00
antirez
9d4867e671
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-07-17 12:26:38 +02:00
Salvatore Sanfilippo
ce31de0e43
Merge pull request #6185 from AlexRenCN/unstable
...
fix readme.md,Redis data types should add `t_stream.c`.
2019-07-16 18:33:55 +02:00
Salvatore Sanfilippo
89e00762e7
Merge pull request #5779 from madolson/dev-unstable-geo-bugfix
...
Fixed a rounding bug in geo.tcl
2019-07-15 23:41:57 +02:00
Salvatore Sanfilippo
ee8b42cb27
Merge pull request #6196 from AngusP/resp3
...
[RESP3, Minor] in networking.c double representation for -infiinity leaves out comma
2019-07-12 13:08:46 +02:00
Salvatore Sanfilippo
3829c2c768
Merge pull request #5738 from bmerry/fix-swapdb-int-overflow
...
Make dbSwapDatabases take args as long
2019-07-12 12:36:33 +02:00
antirez
d2307852ed
Vertically compact code in aofWrite().
2019-07-12 12:18:33 +02:00
antirez
d9bdda8850
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-07-10 19:48:44 +02:00
antirez
effe7022e6
Client side caching: filter clients no longer there.
2019-07-10 19:46:46 +02:00
Salvatore Sanfilippo
f3884866c5
Merge pull request #6198 from oranagra/skiplist-mem-usage
...
missing per-skiplist overheads in MEMORY USAGE
2019-07-10 19:43:24 +02:00
antirez
c3d91f5d8b
Client side caching: implement CLIENT GETREDIR.
...
This subcommand may simplify the writing of Redis client libraries
using the tracking feature and/or improve observability and debugging
capabilities.
2019-07-10 18:17:10 +02:00
antirez
00f56990ef
Client side caching: add tracking clients in INFO.
2019-07-10 18:08:31 +02:00
antirez
ecd65cf9cf
Diskless replica: fix disklessLoadRestoreBackups() bug.
2019-07-10 12:36:26 +02:00
antirez
26c4e8a965
Diskless replica: refactoring of DBs backups.
2019-07-10 11:42:26 +02:00
antirez
23063bf23e
Diskless replica: fix mispelled var name.
2019-07-10 09:34:21 +02:00
antirez
65e463d7a1
Diskless replica: a few aesthetic changes to rio.c
2019-07-08 18:39:59 +02:00