John Sully
ce96c69719
RREPLAY failures should be logged
...
Former-commit-id: b0a0f03b96b44005e905f5d46985d76d52a712ec
2019-07-24 22:49:55 -04:00
John Sully
e3b97286ca
RREPLAY failures should be logged
...
Former-commit-id: 08b6a04055e950e53f043391ec9f9a09f654b1ee
2019-07-24 22:49:30 -04:00
John Sully
17e6131ca5
Issue #64 RREPLAY isn't binary safe. Add fix and test.
...
Former-commit-id: f1982ca63dc8dd85b62c1338d7be324595b6ad8e
2019-07-24 22:31:44 -04:00
John Sully
4c49370efe
Issue #64 RREPLAY isn't binary safe. Add fix and test.
...
Former-commit-id: afe66288fe9df6d8247d459e57858430f1ec7a25
2019-07-24 22:31:02 -04:00
Oran Agra
b2fce80695
Extend modules API to allow modules report to redis INFO
...
this implements #6012
2019-07-24 12:58:15 +03: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
wubostc
61fe76a7b9
Reduce the calling stack
2019-07-24 16:22:26 +08:00
John Sully
a0d7eb5a19
We can't set FExpire() on shared objects, issue #66
...
Former-commit-id: 2794cfced4fdb18c0860e966dde0b46b9584c4dc
2019-07-23 23:39:47 -04:00
John Sully
8c46a1fba2
Merge pull request #65 from JohnSully/subexpire
...
EXPIREMEMBER Command Implementation
Former-commit-id: d6b45a56e782238fc3467a7fb43ff167f0891e07
2019-07-23 19:06:57 -04:00
John Sully
9ba5270bda
Subexpire entries should load/save
...
Former-commit-id: a55d98043655473ecdd53db2927381635eefc0b8
2019-07-23 18:53:59 -04:00
John Sully
9f42bb5d91
Fix buggy rebase
...
Former-commit-id: 6037d1f326116e5aae56be9a73a8f9ca68a45bbe
2019-07-23 18:53:59 -04:00
John Sully
4ec97fdb46
Fix merge conflict
...
Former-commit-id: 0b43b51a2e3a6af11532146fbb7929f3ecf3b036
2019-07-23 18:53:59 -04:00
John Sully
e06c38f1d3
Plumb support for sub expires to all expire related code
...
Former-commit-id: 184abac6942a9a6aa8783741b50b23210afddcc5
2019-07-23 18:53:59 -04:00
John Sully
95371d60fe
Fix crash with traditional expiration
...
Former-commit-id: 0ba5b2c3d66d3a1a520f223ad2c288c22601bd5a
2019-07-23 18:53:58 -04:00
John Sully
94645b33dd
Initial prototype of EXPIREMEMBER command
...
Former-commit-id: 0b3d74ea67d616a6869cbd66198c8dd7ffa72eb7
2019-07-23 18:53:58 -04:00
John Sully
82a3e942bf
New expire datastructure and algorithm. Allows us to expire in sublinear time
...
Former-commit-id: ea3bd614b8b88b8de0b114f917fbd0de93557c72
2019-07-23 18:49:31 -04:00
John Sully
a3dbe03a66
Merge pull request #50 from JohnSully/expire
...
New Expire Datastructure which is faster and more memory efficient. This allows us to process expiries in sublinear time.
Former-commit-id: d45edc493d111d4be81f2ce24e3022c8fffb3e2f
2019-07-23 18:40:48 -04:00
John Sully
e04cff2cfe
Support TTL stats with the new expire datastructure
...
Former-commit-id: 271df3dad4f55f20177a8a9a065778f4943835f1
2019-07-23 18:30:10 -04:00
John Sully
8b3d250d8f
Implement hash table stats and fixup the hash function based on the results
...
Former-commit-id: 5a193872f8e002c97b7dc2c4bc3bab8e0478765f
2019-07-23 18:30:10 -04:00
John Sully
e8709ee6b0
Add back missing file lost in rebase
...
Former-commit-id: b5512d77a1299cf6ff960229cd47776b82eaba4b
2019-07-23 18:30:10 -04:00
John Sully
3ffdccad86
Add back file erroniously deleted in rebase
...
Former-commit-id: 42bda8eaba71c99c776100b225606c9aced1d2ba
2019-07-23 18:30:10 -04:00
John Sully
fc54e0970f
never make last minute changes before commiting
...
Former-commit-id: 7e5d3f4f160c1c6f91c42b19f95ad17fcb7f1590
2019-07-23 18:30:10 -04:00
John Sully
23c1e89190
Fix a few potential assert crashes
...
Former-commit-id: 5f3920e491a9632d3b84d9af7800c154f2be0809
2019-07-23 18:30:10 -04:00
John Sully
a060bc7942
New expire datastructure and algorithm. Allows us to expire in sublinear time
...
Former-commit-id: 3880d2616c882e19169180dc10268564347b0279
2019-07-23 18:30:10 -04: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
4520e87800
Hide HELLO and AUTH from slowlog and monitor
2019-07-22 22:53:15 -07:00
Madelyn Olson
dedbc9d4d2
Removed unecessary creation of Redis objects
2019-07-22 22:52:16 -07:00
Oran Agra
ff0780e8e6
Implement module api for aux data in rdb
...
Other changes:
* fix memory leak in error handling of rdb loading of type OBJ_MODULE
2019-07-22 21:15:33 +03: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
chendianqiang
4b89b52355
make memory usage consistent of robj with OBJ_ENCODING_INT
2019-07-22 17:45:30 +08:00
Oran Agra
c80ad2f4b5
Allow modules to handle RDB loading errors.
...
This is especially needed in diskless loading, were a short read could have
caused redis to exit. now the module can handle the error and return to the
caller gracefully.
this fixes #5326
2019-07-21 18:19:32 +03:00
John Sully
174016dee7
Modules must have execute permissions to load
2019-07-19 15:28:31 -04:00
John Sully
f094402c33
Any +x bit is acceptable
...
Former-commit-id: 156e596f9c7a922bc3361652b74b78bbeab0f2dc
2019-07-19 15:26:17 -04: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
John Sully
8d526d9354
Any +x bit is acceptable
...
Former-commit-id: fc58516cca72fc9db97bc4c388f9fa692d115df4
2019-07-19 01:42:05 -04:00
John Sully
38205b5526
Modules must have execute permissions to load
2019-07-19 01:37:34 -04:00