John Sully
065ee57c8d
Run KEYS async
...
Former-commit-id: 214a54a815ff66ef4a1526da90296787240ecdf9
2019-11-19 22:12:52 -05:00
John Sully
408a28bd64
Multiple threads should be able to get the same snapshot provided its not too old
...
Former-commit-id: 054331098ee18dfb1887fd2b0a67688ef894823e
2019-11-19 17:40:35 -05:00
John Sully
80f9b812ca
Ensure iterating the keyspace still works during background save
...
Former-commit-id: 23d7a8a293f253262801bc6ce88ad85e4e38f59a
2019-11-19 15:47:06 -05:00
John Sully
a60925c949
Final design of forkless background save. expires NYI
...
Former-commit-id: e2dc24b441bf52b181c820c853e0bc7524254f3f
2019-11-18 19:47:12 -05:00
John Sully
a9f20f0a38
Merge branch 'unstable' into advanced_db
...
Former-commit-id: 7530d93cd5c4a9fc4e6466abcf96edbdd8daea9e
2019-11-18 15:22:17 -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
60c35d6ea7
Remove race conditions
...
Former-commit-id: 5a8cb77d0df7f319809ff965a72fe46925f49289
2019-10-22 23:26:37 -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
0e0e9e73f9
Forkless background save. NOT OPTIMIZED
...
Former-commit-id: bd9d8e05b0430efd226be773c0530828f1f6b428
2019-10-20 23:54:05 -04:00
John Sully
0c7f279b2c
Factor out dependencies on rdb_child_pid which will be going away
...
Former-commit-id: 2ab4c6b99e3f3cb9f216bd81e78914a6fcd394f6
2019-10-17 23:10:45 -04:00
John Sully
48787c8a03
Dependencies for forkless RDB saving
...
Former-commit-id: c12be594754ac8079f467e0fa9f8580bd65e3a55
2019-10-17 22:53:50 -04:00
John Sully
6ee58a3b21
Ensure RDB saving only uses data from the persistent data struct, and cleanup inheritance
...
Former-commit-id: fcdda67d87b3076023f459532c75392b72768a51
2019-10-17 17:20:47 -04:00
John Sully
c2b5a8802e
Support serializing all types
...
Former-commit-id: dfdd41f15c0567925f02fd5df779f597ab16894d
2019-10-16 14:23:28 -04:00
John Sully
cec6f0e934
Cleanup inheritance
...
Former-commit-id: e8debc83e8271cf8d76c5084923cf6e1ea7af3b4
2019-10-16 13:45:36 -04:00
John Sully
afa487ca54
Merge branch 'unstable' into advanced_db
...
Former-commit-id: 88152a8f4f9b4e3a82d5f1416930d39bfa91eb47
2019-10-16 13:23:19 -04:00
John Sully
4dc728c1ce
Fix crash adding expire to key with a subkey expire already set
...
Former-commit-id: 18a3768e07eb8c4feb4a666d95a19d97267ac381
2019-10-16 12:26:48 -04:00
John Sully
2e0a7b7821
Fix clang warnings
...
Former-commit-id: c4f086ae936e1ba5ed97c2f0810ddb6a4de25be6
2019-10-13 15:48:55 -04:00
John Sully
20a5b1bc15
Fix failing travis CI build
...
Former-commit-id: 3f0c1f94ebeb19133f1f62b8b3a82871dbd5f73f
2019-10-13 15:41:53 -04:00
John Sully
a2bd45dbd3
Add the IStorage interface and wire it up
...
Former-commit-id: 898efbfc0c7038818083ea29fdd63cafa47721fb
2019-10-13 15:24:08 -04:00
John Sully
f9f4c719d4
Isolate the persistent parts of the database from the runtime parts
...
Former-commit-id: 8d63f5b560d067a634f2ef671962be8815c9e23c
2019-10-13 15:24:08 -04:00
John Sully
b4a34cd600
Hide the database dict
...
Former-commit-id: 024365521c2b74275839562ba9326b6ea26d3836
2019-10-13 15:13:01 -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
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
John Sully
0a00341a80
Implement TTL and PERSIST commands for subkeys. Also ensure expiremember replaces any old subkey expiries
...
Former-commit-id: 16f96efbe7c6c27f2a79f5b472447407f905df15
2019-10-13 12:03:25 -04:00
John Sully
dba52de8ca
Fix issue #88 - don't let seperate KeyDB processes listen on the same port
...
Former-commit-id: 4631119179df5cff638e9b8c51b030cef89a6c02
2019-10-13 10:02:21 -04:00
John Sully
4cac0ca35a
Implement left and right shift BITOP operators
...
Former-commit-id: ba365298ed37a76f0a8630e0ec6c86393293aebe
2019-09-28 00:10:46 -04:00
John Sully
4f19c5de9f
Fix multi master bugs: 1. we fail to create the temp file. 2. We use a master RDB as our backup even though we merged databases (and therefore it is not representitive)
...
Former-commit-id: e776474f68a2824bb7d4082c41991a9a9f3a9c9d
2019-09-26 20:35:51 -04:00
John Sully
bd4ed482c4
KEYS now only blocks one database
...
Former-commit-id: 18d42a5c353f76533a0ccc4ded24ed089cedacc8
2019-09-12 18:51:10 -04:00
John Sully
a21a7a8ee9
Fix race condition in PUB/SUB and other async reply commands where the client can be freed before our handler is executed on the client thread. When this occurs the client pointer is dangling
...
Former-commit-id: 46a78c69e718f0aeb5e62f33c59458b15b8d9bc6
2019-08-26 20:18:52 -04:00
John Sully
f8884fed3a
Fix crash setting expire on a key with an existing subkey expiration
...
Former-commit-id: 4858fd893c8e638b0efdcd3ab2c6dc188a6dc6bd
2019-07-29 17:09:51 -04:00
John Sully
e3b97286ca
RREPLAY failures should be logged
...
Former-commit-id: 08b6a04055e950e53f043391ec9f9a09f654b1ee
2019-07-24 22:49:30 -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
94645b33dd
Initial prototype of EXPIREMEMBER command
...
Former-commit-id: 0b3d74ea67d616a6869cbd66198c8dd7ffa72eb7
2019-07-23 18:53:58 -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
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
John Sully
c178b67ded
Merge commit '9c1932beeb6e307c2fbeadcfff8954e517189ae8' into unstable
...
Former-commit-id: 821c12c482d20b15dfb5a6eeab52e167997627d8
2019-07-19 00:32:43 -04:00
John Sully
33acb40633
Merge commit '985e5b2c608eade2a60e50a6a177f13381c9c8d8' into unstable
...
Former-commit-id: 4602f8c391409e9dd59f1fbee6a5ef011b219ca1
2019-07-19 00:01:56 -04:00
John Sully
6e461c3cc3
Fix compile errors from merges
...
Former-commit-id: 27a927fe0011536c6539d7c2a79ccfdaf78cee22
2019-07-18 23:35:51 -04:00
Angus Pearson
12c8823c93
Add char* typeNameCanonicalize(robj*) to remove duplicate code between SCAN and TYPE commands,
...
and to keep OBJ_* enum to string canonicalization in one place.
Former-commit-id: 3cdc6e8d846e88cf4e250b2643662bde2a9317c5
2019-07-18 23:31:31 -04:00
John Sully
bd3cc0bb95
Resolve race on neterr variable
...
Former-commit-id: 1512274f4c51dc4e8f4e3d11df2f35e051c0c079
2019-07-18 17:11:28 -04:00
John Sully
857f778b38
Make object refcounts atomic, technically it doesn't need to be currently but the semantics are complicated and error prone. This is much safer with little performance impact
...
Former-commit-id: e310d33c121550f69b1c06d101db0c3f944a7fb0
2019-07-18 15:49:12 -04:00
John Sully
add714913b
Implement test mode to make finding bugs easier
...
Former-commit-id: 971f69fe1ff9cce50492a47f306b312457e50b9f
2019-07-15 14:55:18 -04:00
John Sully
ff0065df91
Fix more locking deadlocks
...
Former-commit-id: 3081b6f98b5e7a9f3ef7cfe040236070398b081c
2019-07-12 23:51:45 -04:00
John Sully
8cd37fae2c
Fix deadlock with client and ae locks
...
Former-commit-id: 8630339e43c1de1cd723bdfdca8ab5924e2cb8b0
2019-07-12 20:46:50 -04:00
John Sully
35e23ca988
Fix compile errors on GCC v5
...
Former-commit-id: 1f08a0efb33511ddc75c2acc62199bfcd0860137
2019-07-11 20:20:01 -04:00
John Sully
8ba25371a5
Fix active replication offset synchronization accounting, and enable the wait command
...
Former-commit-id: a5784ef09e71a9a45780a8f3dbab875b1f1fe1a5
2019-07-11 17:00:23 -04:00
Salvatore Sanfilippo
9c1932beeb
Merge pull request #6116 from AngusP/scan-types
...
SCAN: New Feature `SCAN cursor [TYPE type]` modifier suggested in issue #6107
2019-07-08 12:53:34 +02:00