160 Commits

Author SHA1 Message Date
John Sully
2038fa270a Merge commit '491949ee5bf4ffbfc746ea4ed5a6d673b0e2fb81' into redis_6_merge
Former-commit-id: 09e8fb17cd0889ad17461e48446221b3955f5a8f
2020-04-14 18:44:42 -04:00
John Sully
9039879f80 Merge commit '2ad427f862084e0e18fbd6c313af35ccdb6c68f7' into redis_6_merge
Former-commit-id: d71c4c221580221c2c31b5e3b5d23bab50a544dc
2020-04-14 18:30:26 -04:00
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
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
John Sully
a0447f23ac Fix failure to AUTH with master when masterauth is set last
Former-commit-id: 3fdc8608f35b9e333a1c789b039d16722a6ceef5
2020-04-06 01:24:59 -04:00
John Sully
9b2392107c Add the ability to set a starting core # when setting thread affinity
Former-commit-id: 9e2e2067c6df5919f1c6b8b9e6e3457c7edc0755
2020-04-04 22:58:17 -04:00
John Sully
2684a266c8 Fix subkey expires not replicating correctly, and AOF issues
Former-commit-id: bd183cdee13081a02efef5df75edf2292b872a16
2020-04-04 21:52:27 -04:00
John Sully
549b15d5a2 Merge branch 'unstable' into redis_6_merge
Former-commit-id: 294615531347d7db5d1b0c6a021ac9b05e0bcb48
2020-03-30 00:52:12 -04:00
John Sully
12f76b2b95 Allow active replicas to connect to each other when replica-serve-stale-data is set
Former-commit-id: f2ca2aa1f70956a0309d6a2441417a80383fd717
2020-03-30 00:51:40 -04:00
John Sully
9c4b66b9a4 Merge branch 'unstable' into redis_6_merge
Former-commit-id: 908cf5042ebcd7870166bd1a0bb450f37e5f3b4d
2020-03-25 22:12:22 -04:00
John Sully
71fe6f7ba9 Fix issue #143
Former-commit-id: 6ec1641294b23e22a2a5dc5cc6098a02ce234df3
2020-03-25 21:55:31 -04:00
John Sully
b443553a3d Give a better error when handling std::terminate
Former-commit-id: 7b79ec360ba046da6d9dbf3cc731bbdee1458d34
2020-03-25 16:27:24 -04:00
John Sully
b1c9dcaa05 Merge branch 'unstable' into redis_6_merge
Former-commit-id: 718aee242dd75abd16a5a6a89353d2a35f37b010
2020-03-25 15:47:12 -04:00
John Sully
436ffa98de Merge branch 'RELEASE_5' into unstable
Former-commit-id: a0bc2084128f991697d3e1b7473d14c55afdd785
2020-03-19 15:38:16 -04:00
John Sully
833f5b39f4 Log which thread a message came from
Former-commit-id: bc1eccb66d3302d6c99588fb4a5a879e1ef243b1
2020-03-19 15:37:24 -04:00
John Sully
61176a1a5e Merge branch 'unstable' into redis_6_merge
Former-commit-id: 4671cd6002c50dd8484e59fd7434878053340702
2020-03-15 18:47:27 -04:00
John Sully
af3afa979a Handle HTTP error codes with MOTD
Former-commit-id: 2ec0b2cd206f2c73fabcda5d59751b013aa8cfbf
2020-03-15 18:47:01 -04:00
John Sully
97537d0525 Merge branch 'unstable' into redis_6_merge
Former-commit-id: 07effa392564f3c53989600e803103f3e3951fe7
2020-03-15 18:33:24 -04:00
John Sully
143ae07899 Update MOTD URL
Former-commit-id: cd76a71de393eb527f98024ea85a9492ef0c36ca
2020-03-15 18:32:05 -04:00
John Sully
e39dd04f6c Merge branch 'unstable' into redis_6_merge
Former-commit-id: 52fd4445a472fa3112e96c6a7ef66ecdfe6ce9f5
2020-03-04 17:13:01 -05:00
John Sully
550413070c MOTD refactor
Former-commit-id: 6c78ec7c41223b3381e19fdf78478f66b4959dc9
2020-03-04 16:22:55 -05:00
John Sully
4ae77acde4 Rename cron command to KEYDB.CRON and add help
Former-commit-id: 1b925119b5ad24ab3a91763bf9f4633f5bc9fef4
2020-03-01 19:18:21 -05:00
John Sully
cb82710daf Rename cron command to KEYDB.CRON and add help
Former-commit-id: 3eb847e28f6df45528dcebc6761290ff60248e78
2020-03-01 19:17:58 -05:00
John Sully
0af756d4d7 Merge branch 'unstable' into redis_6_merge
Former-commit-id: 9dc8f30e4783d7e2e9749b155f6bf3df57c536a7
2020-02-28 23:56:26 -05:00
John Sully
f2c68909dc Fix not respecting max clients config, issue #147
Former-commit-id: 54c96d19954fbddcfd2a307e436ca3290c76e0fb
2020-02-28 22:04:42 -05:00
John Sully
014db04212 Change Redis to KeyDB
Former-commit-id: 51ea3cf30ca99be8064fc95c8ddd0d61fdcc5c5d
2020-02-17 23:46:01 -05:00
John Sully
67eccf74ba Change Redis to KeyDB
Former-commit-id: 6ad6c1d780f26a0785f39586b074ac3bb3132e09
2020-02-17 23:45:40 -05:00
John Sully
950cda8ea5 Incorrect use of std::atomic
Former-commit-id: 5dc84850addff084c95f9280718fcb1d6fee3b82
2020-02-17 19:07:13 -05:00
John Sully
bd5ffe7069 Merge branch 'unstable' into redis_6_merge
Former-commit-id: 6a71de7835f427cebb23e4c2f0d19ed63a02f09e
2020-02-16 19:14:51 -05:00
John Sully
b6db2d32ad Graceful shutdown of server threads when quit is requested
Former-commit-id: b9db899f6ccea62222170c6eec264d403a7a911d
2020-02-16 18:53:46 -05:00
John Sully
fbaa46505c Merge branch 'unstable' into redis_6_merge
Former-commit-id: 18a5f46b6138e8a975dda0ed4897d19eed756d24
2020-02-11 02:39:08 -05:00
John Sully
d4c1e98124 Implement an error handler so bug #125 can't happen
Former-commit-id: 16a019dba053fd0654116ff98a2ad0b66a9ed4e6
2020-02-11 01:41:00 -05:00
John Sully
30ece138d5 Fix issue #119
Former-commit-id: 46224721237616c345f6726b721a354d7bda71df
2020-02-10 19:52:57 -05:00
John Sully
6193e9ad4f Merge remote-tracking branch 'redis/6.0' into redis_merge
Former-commit-id: ef9a3cadcf94326bf2f163db7698aad9a3c01690
2020-01-27 02:55:48 -05:00
John Sully
1116b63a0e Initial implementation of the CRON command
Former-commit-id: 3204a39ada15ec33ac7926dc8b8f0e1875b99acb
2020-01-21 19:50:28 -05:00
John Sully
174a8b886d pro launch should respect KEYDB_PRO_DIRECTORY
Former-commit-id: d5f8df59977194ee0cfce798364eb5620435e6f3
2020-01-06 14:24:37 -05:00
John Sully
e530793e82 Multimaster requires Active Replication
Former-commit-id: 4d4eca54336c73848ffa36cb1778b7c853f77f7f
2019-12-21 18:24:02 -05:00
Petr Vaněk
8146f24391 Rename redis.conf to keydb.conf
Former-commit-id: 4b01ad1e30568a5385881accedd8a841c7a7882f
2019-12-21 15:00:24 -05:00
John Sully
643a0e730f Launch the pro binary with --enable-pro
Former-commit-id: ab365ce3da864bbcd0d8a9c77ba55dad365ffdff
2019-12-17 23:52:19 -05:00
John Sully
27c23b0c9b Fix issue #83
Former-commit-id: 3028a890ef11cd99b2c7538de0f480d2466eb150
2019-11-21 20:05:16 -05:00
John Sully
051bde5d3d Fix issue #107, active replicas do their own expires
Former-commit-id: 8e4f323439df29a5e8c0de9db7a848291721fd07
2019-11-20 19:44:31 -05:00
John Sully
8c6f775cf7 Cluster multithreading fixes
Former-commit-id: 3dd78a6101df0a980e520dcb55d80651bfc5a3a7
2019-11-14 20:14:24 -05:00
John Sully
7bdc24a86d Remove the DB lock, its unnecessary
Former-commit-id: 631f863dd89cd642e2023beabf8b31cdc84bbdff
2019-10-24 20:18:48 -04:00
John Sully
b1190c24a8 Optimize deadlock detection, fix callstack for ASM, and annotate locks
Note: This change moves our assembly code to use the GNU Assembler because NASM seems to be incapable of emitting the necessary debug information for callstack unwinding to work.

Former-commit-id: 600fc241cfe79b9b32ac6010c6ea0c66747f0f15
2019-10-22 21:34:51 -04:00
John Sully
2980e06c9f Implement the lastmodified query for the OBJECT command
Former-commit-id: 3a3b59a0543148956797ce4ad9d08095051517b9
2019-10-13 14:12:09 -04:00
John Sully
ac243ae4bf Implement the EXPIREMEMBERAT command
Former-commit-id: 203e341bf4427723903d8d3de03af2f0ef043a3f
2019-10-13 13:15:13 -04:00
John Sully
650085d61a Add millisecond support for EXPIREMEMBER command
Former-commit-id: 6e6cd84ad7dc9e5763ab36668cbbf8ca6743f8d9
2019-10-13 12:57:50 -04:00
John Sully
e57d2e24c9 Update more slave instances to use replica (Issue #75)
Former-commit-id: 252725d50fc9d4ff2b6e9246a36c38176d61beae
2019-10-13 12:29:20 -04:00
John Sully
05d7536b02 Update a few uses of slave to use the new replica terminology (Issue #75)
Former-commit-id: c15633ea9e784ef0e12e4015a75245661a8cf1b7
2019-10-13 12:12:05 -04:00