12492 Commits

Author SHA1 Message Date
antirez
c38bc83f47 PSYNC2: meaningful offset implemented.
A very commonly signaled operational problem with Redis master-replicas
sets is that, once the master becomes unavailable for some reason,
especially because of network problems, many times it wont be able to
perform a partial resynchronization with the new master, once it rejoins
the partition, for the following reason:

1. The master becomes isolated, however it keeps sending PINGs to the
replicas. Such PINGs will never be received since the link connection is
actually already severed.
2. On the other side, one of the replicas will turn into the new master,
setting its secondary replication ID offset to the one of the last
command received from the old master: this offset will not include the
PINGs sent by the master once the link was already disconnected.
3. When the master rejoins the partion and is turned into a replica, its
offset will be too advanced because of the PINGs, so a PSYNC will fail,
and a full synchronization will be required.

Related to issue #7002 and other discussion we had in the past around
this problem.


Former-commit-id: 5d6e8fe3e3e43162f0c57f580b6e8432274fca30
2020-04-14 17:56:09 -04:00
Oran Agra
031d5044bf reduce repeated calls to use_diskless_load
this function possibly iterates on the module list


Former-commit-id: 99762dac23e26a217fcd66531ee4ca9b4d13a7ac
2020-04-14 17:34:36 -04:00
John Sully
c168ae6cfe Fix merge conflicts from cherry-pick
Former-commit-id: 57956b3fd2d05581c976f58d07e245896d3a515b
2020-04-14 17:33:54 -04:00
antirez
f7e8240900 Remove RDB files used for replication in persistence-less instances.
Former-commit-id: b323645227a3e2cc5928e649586221aba508b10d
2020-04-14 17:27:05 -04:00
Johannes Truschnigg
0ef7e8e0b2 Signal systemd readiness atfer Partial Resync
"Partial Resynchronization" is a special variant of replication success
that we have to tell systemd about if it is managing redis-server via a
Type=Notify service unit.


Former-commit-id: dd9502f373eb7e32aee69a30dcb521bea3ccd3ad
2020-04-14 17:22:30 -04:00
Guy Benoish
49dda32114 Diskless-load emptyDb-related fixes
1. Call emptyDb even in case of diskless-load: We want modules
   to get the same FLUSHDB event as disk-based replication.
2. Do not fire any module events when flushing the backups array.
3. Delete redundant call to signalFlushedDb (Called from emptyDb).


Former-commit-id: aa8a3077a2d20e66e34f72f2860d0cc3daad496e
2020-04-14 17:21:10 -04:00
ShooterIT
5675053269 Implements sendfile for redis. 2020-04-14 23:56:34 +08:00
Salvatore Sanfilippo
e0ffd17591 Merge pull request #7085 from guybe7/timeout_err_typo
Typo in getTimeoutFromObjectOrReply's error reply
2020-04-14 11:40:51 +02:00
antirez
af61c07d74 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2020-04-14 11:23:57 +02:00
antirez
48bf742428 Fix zsetAdd() top comment spelling. 2020-04-14 11:23:44 +02:00
Salvatore Sanfilippo
b2964ad18d Merge pull request #7095 from hwware/typofixacl
fix spelling in acl.c
2020-04-14 11:15:26 +02:00
antirez
8f2760da7b Merge branch 'unstable' of github.com:/antirez/redis into unstable 2020-04-14 10:52:45 +02:00
antirez
bce3d16a33 Fix function names in zslDeleteNode() top comment. 2020-04-14 10:52:40 +02:00
John Sully
2ecff6eccf Merge branch 'keydbpro' into PRO_RELEASE_6
Former-commit-id: 1dd55bec28e7bba38ff9fbd7c6b22b23b911a4eb
2020-04-14 01:01:20 -04:00
hwware
3a31999ecc fix spelling in acl.c 2020-04-14 00:16:29 -04:00
John Sully
8fb3be9ce1 Cache fake client in replicaFeedSlaves
Former-commit-id: 8e81e5f29e718395b32a60ff263808305d0b5818
2020-04-13 22:45:15 -04:00
John Sully
4ed8f38a13 Don't do active replica work if we're not an active replica
Former-commit-id: 63dd1fb599cfe959c0298825ed56ab06335b3fd7
2020-04-13 22:35:06 -04:00
John Sully
dfdc0cefdd Optimize replicaFeedSlaves by removing use of snprintf
Former-commit-id: 32561a99124542461de283d5035f869b5fc9bc2f
2020-04-13 22:11:34 -04:00
Itamar Haber
658f6ea302 Prevents default save configuration being reset...
...when using any command line argument
2020-04-13 17:28:11 +03:00
Jamie Scott
3ba9724d16 minor fix 2020-04-12 17:56:58 -07:00
Jamie Scott
61d84fed33 Adding acllog-max-len to Redis.conf
While playing with ACLs I noticed that acllog-max-len wasn't in the redis.conf, but was a supported config. 

This PR documents and adds the directive to the redis.conf file.
2020-04-12 00:10:19 -07:00
Guy Benoish
517acf75cf Typo in getTimeoutFromObjectOrReply's error reply 2020-04-11 15:05:01 +03:00
Salvatore Sanfilippo
c62528f9e2 Merge pull request #7074 from hayleeliu/unstable
fix spelling mistake in bitops.c
2020-04-10 10:15:25 +02:00
antirez
c4dd2bd0cd RESP3: change streams items from maps to arrays.
Streams items are similar to dictionaries, however they preserve both
the order, and allow for duplicated field names. So a map is not a
semantically sounding way to deal with this.

https://twitter.com/antirez/status/1248261087553880069
2020-04-10 10:12:26 +02:00
antirez
2b2d36a2b8 Merge branch 'faster-rdb-loading' into unstable 2020-04-09 19:15:13 +02:00
antirez
ce7bfb275d Use the special static refcount for stack objects. 2020-04-09 16:25:30 +02:00
antirez
9d24b6f810 RDB: refactor some RDB loading code into dbAddRDBLoad(). 2020-04-09 16:21:48 +02:00
antirez
df90feb894 incrRefCount(): abort on statically allocated object. 2020-04-09 16:20:41 +02:00
antirez
b10fb451ce More powerful DEBUG RELOAD.
Related to #3243.
2020-04-09 12:10:10 +02:00
liumiuyong
911896febb FIX: truncate max/min longitude,latitude related geo_point (ex: {180, 85.05112878} ) 2020-04-09 17:48:29 +08:00
antirez
c7e7743d18 RDB: clarify a condition in rdbLoadRio(). 2020-04-09 11:09:40 +02:00
antirez
f9c0953fdd RDB: load files faster avoiding useless free+realloc.
Reloading of the RDB generated by

    DEBUG POPULATE 5000000
    SAVE

is now 25% faster.

This commit also prepares the ability to have more flexibility when
loading stuff from the RDB, since we no longer use dbAdd() but can
control exactly how things are added in the database.
2020-04-09 10:24:46 +02:00
antirez
a27cd352d3 Speedup: unblock clients on keys in O(1).
See #7071.
2020-04-08 12:55:57 +02:00
hayleeliu
4406928a90 fix spelling mistake in bitops.c 2020-04-08 18:20:32 +08:00
antirez
9a604033dd Fix ACL HELP table missing comma. 2020-04-08 10:56:47 +02:00
antirez
d7b07d3ded Fix ACL HELP table missing comma. 2020-04-08 10:56:31 +02:00
mymilkbottles
a953c6e55b Judge the log level in advance 2020-04-07 16:53:13 +02:00
antirez
fdd6da647d Speedup INFO by counting client memory incrementally.
Related to #5145.

Design note: clients may change type when they turn into replicas or are
moved into the Pub/Sub category and so forth. Moreover the recomputation
of the bytes used is problematic for obvious reasons: it changes
continuously, so as a conservative way to avoid accumulating errors,
each client remembers the contribution it gave to the sum, and removes
it when it is freed or before updating it with the new memory usage.
2020-04-07 16:53:13 +02:00
qetu3790
5680ddd31d fix comments about RESIZE DB opcode in rdb.c
fix comments about RESIZE DB opcode in rdb.c
2020-04-07 16:53:13 +02:00
antirez
b2f6881d83 Clarify redis.conf comment about lazyfree-lazy-user-del. 2020-04-07 16:53:13 +02:00
zhaozhao.zz
73e7bcc598 lazyfree: add a new configuration lazyfree-lazy-user-del
Delete keys in async way when executing DEL command, if
lazyfree-lazy-user-del is yes.
2020-04-07 16:53:13 +02:00
antirez
87924d6731 LCS: more tests. 2020-04-07 16:52:57 +02:00
antirez
e835f0fe0c LCS: allow KEYS / STRINGS to be anywhere.
Initially they needed to be at the end so that we could extend to N
strings in the future, but after further consideration I no longer
believe it's worth it.
2020-04-07 16:52:57 +02:00
antirez
106501fab0 LCS tests. 2020-04-07 16:52:57 +02:00
antirez
e46275a1dc LCS: get rid of STOREIDX option. Fix get keys helper. 2020-04-07 16:52:57 +02:00
antirez
9682cd452f LCS: fix stale comment. 2020-04-07 16:52:57 +02:00
antirez
28cf335ba8 LCS: output LCS len as well in IDX mode. 2020-04-07 16:52:57 +02:00
antirez
a3690e8af7 LCS: MINMATCHLEN and WITHMATCHLEN options. 2020-04-07 16:52:57 +02:00
antirez
3c9778ce79 LCS: 7x speedup by accessing the array with better locality. 2020-04-07 16:52:57 +02:00
antirez
7ee6ee5982 LCS: implement KEYS option. 2020-04-07 16:52:57 +02:00