antirez
6e9ffa93eb
Diskless replica: a few aesthetic changes to replication.c.
2019-07-08 18:32:47 +02:00
Oran Agra
29754ebe22
diskless replication on slave side (don't store rdb to file), plus some other related fixes
...
The implementation of the diskless replication was currently diskless only on the master side.
The slave side was still storing the received rdb file to the disk before loading it back in and parsing it.
This commit adds two modes to load rdb directly from socket:
1) when-empty
2) using "swapdb"
the third mode of using diskless slave by flushdb is risky and currently not included.
other changes:
--------------
distinguish between aof configuration and state so that we can re-enable aof only when sync eventually
succeeds (and not when exiting from readSyncBulkPayload after a failed attempt)
also a CONFIG GET and INFO during rdb loading would have lied
When loading rdb from the network, don't kill the server on short read (that can be a network error)
Fix rdb check when performed on preamble AOF
tests:
run replication tests for diskless slave too
make replication test a bit more aggressive
Add test for diskless load swapdb
2019-07-08 15:37:48 +03: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
Angus Pearson
00c9b4f15d
Change typeNameCanonicalize -> getObjectTypeName, and other style changes
2019-07-08 11:04:37 +01:00
Guy Korland
664d7d6e84
fix build tracking.c should be tracking.o
...
thanks to @rafie
2019-07-07 18:28:15 +03:00
Salvatore Sanfilippo
0990dfa58e
Merge pull request #6162 from madolson/dev-unstable-config-refactor
...
Refactored yesno configs so there is less duplication
2019-07-07 17:13:11 +02:00
Salvatore Sanfilippo
985e5b2c60
Merge pull request #6161 from swilly22/redismodule-loading-ctx-flag
...
Extend REDISMODULE_CTX_FLAGS to indicate if redis is loading
2019-07-07 17:01:29 +02:00
John Sully
514640f314
Redis only does this in beforeSleep function - doing extra calls like we do causes test issues
...
Former-commit-id: d013ad9ebaf3c2bf38121349ed9b98e16439c734
2019-07-06 00:53:20 -04:00
John Sully
725dd6539f
Add back user space buffering of RDB save
...
Former-commit-id: d918ca6fa57a6149b86b4effc787dbdde7350133
2019-07-06 00:36:23 -04:00
John Sully
95f0357746
Fix additional warning related to new() overloads
...
Former-commit-id: 218111eb7244643bd13af47b878622c429535288
2019-07-05 23:42:39 -04:00
Salvatore Sanfilippo
3ffea1c914
Merge pull request #6022 from itamarhaber/RedisModule_ReplyWithCString
...
Adds RedisModule_ReplyWithCString
2019-07-05 20:25:18 +02:00
antirez
f3a8b5001d
Client side caching: RESP2 support.
2019-07-05 12:24:28 +02:00
antirez
d6204fe246
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-07-04 18:34:53 +02:00
Oran Agra
527c297efb
missing per-skiplist overheads in MEMORY USAGE
...
these had severe impact for small zsets, for instance ones with just one
element that is longer than 64 (causing it not to be ziplist encoded)
2019-07-04 15:20:49 +03:00
antirez
6aeb2627de
Client side caching: fix invalidate message len and content.
2019-07-04 14:07:23 +02:00
antirez
4b5027845e
Client side caching: implement trackingInvalidateKey().
2019-07-03 19:16:20 +02:00
antirez
a4e44726d0
Client side caching: hook inside call() for tracking.
2019-07-03 12:42:16 +02:00
antirez
b826cf89f1
Client side caching: CLIENT TRACKING subcommand.
2019-07-03 11:58:20 +02:00
Angus Pearson
17e98d8851
RESP3 double representation for -infinity is ,-inf\r\n
, not -inf\r\n
2019-07-02 14:28:48 +01:00
antirez
b54789d472
Client side caching: enable tracking mode.
2019-06-30 06:19:08 -04:00
antirez
7f9de752de
Client side caching: fields and flags for tracking mode.
2019-06-29 20:08:41 -04:00
antirez
a152f483cd
Client side caching: add new file and description.
2019-06-29 09:09:38 -04:00
John Sully
9983a59895
Fix additional warnings
...
Former-commit-id: 1531cfb7eea1824fb40da596b3446baa4312355c
2019-06-27 16:29:36 -04:00
John Sully
f5f4815041
Fix mac build breaks
...
Former-commit-id: 16a89f21dc0beb23b7eb8f2e378d076da918c0d6
2019-06-27 15:04:09 -04:00
John Sully
dbc8272acf
Fix libcxxabi clang compile failure in travis, as well as bool issue due to old clang
...
Former-commit-id: 79e5160e376cfedc690d351d49c3327d5f48c580
2019-06-18 00:42:01 -04:00
John Sully
d4d6e7756d
Fix Travis CI issue
...
Former-commit-id: 8238d3207e484e5c9515d00ee7d2247168c03612
2019-06-17 23:56:23 -04:00
John Sully
d65ce6fbbc
Fix issues with relaxed memory model architectures
...
Former-commit-id: e37bc4ad40e852b67ee14e5aa87fd2f398f00eed
2019-06-17 23:00:12 -04:00
John Sully
db5af7990d
Remove unnecessary recursive lock
...
Former-commit-id: 0f78b8b91729374f76f562049e16c0556da00959
2019-06-17 23:00:12 -04:00
John Sully
a849655efd
missing file :)
...
Former-commit-id: 19061fe04f22dc2dcb4547a4c74eccfb89cae785
2019-06-17 23:00:12 -04:00
John Sully
d5b47e6997
Fix test failures due to assert
...
Former-commit-id: 9c901eb65f98008f0962c5edc33aadc15ec6f619
2019-06-17 23:00:12 -04:00
John Sully
9725fadaba
convert the pending write list to a vector for better performance and less cache thrashing
...
Former-commit-id: ae33ff3a6ef6d47bab63cf8362055c1ed210dbad
2019-06-17 23:00:12 -04:00
John Sully
924509f52f
Move more code out of the GIL
...
Former-commit-id: 59dbd625c143c1a890d4387f7a32c997f0d64f5f
2019-06-17 23:00:12 -04:00
John Sully
9a050ffb42
Remove an unnecessary lock that eats performance
...
Former-commit-id: 8eb4e355b934e394608b082c7d1973152238fa1f
2019-06-17 23:00:12 -04:00
John Sully
049ca9bf58
Even the next up thread should sleep in the futex
...
Former-commit-id: 8b76b01bfe710603bcdc101da6eb27afcee7e1b1
2019-06-17 23:00:12 -04:00
John Sully
dd7cbbe730
Fallback to a futex if we spin for a long time
...
Former-commit-id: ec57b4b0248bba671e388a2257b1bd65ed8d0f44
2019-06-17 23:00:12 -04:00
Madelyn Olson
bf7eb02d3e
Refactored yesno configs so there was less duplication
2019-06-13 12:18:25 -07:00
Angus Pearson
49edda41b9
Spelling cannonical -> canonical
2019-06-13 17:49:33 +01:00
swilly22
7077d14afe
Extend REDISMODULE_CTX_FLAGS to indicate if redis is currently loading from either RDB or AOF
2019-06-12 15:37:19 +03:00
John Sully
7fc6f7f607
Enable load balancing of UNIX sockets across threads
...
Former-commit-id: 46d6caa47c57fa13055615dfc2376b0962468b81
2019-06-11 01:34:36 -04:00
Angus Pearson
5ca48db2e2
Add char* typeNameCanonicalize(robj*) to remove duplicate code between SCAN and TYPE commands,
...
and to keep OBJ_* enum to string canonicalization in one place.
2019-06-10 17:41:44 +01:00
Salvatore Sanfilippo
2af8ebe147
Merge pull request #6149 from madolson/acl-spelling
...
Fixed some spelling issues in ACL codepath including a user facing error
2019-06-07 22:54:52 +02:00
Madelyn Olson
67a4bcac1b
Fixed some spelling issues in ACL codepath including user facing error
2019-06-07 13:25:22 -07:00
artix
ec45f5b395
Redis Benchmark: prevent CONFIG failure from exiting program
2019-06-05 16:34:55 +02:00
John Sully
193522b54e
Fix crash adding duplicate replica. Just send an error instead
...
Former-commit-id: 97b65ce19c09188acd0d662aad8d774a55531437
2019-06-02 15:50:50 -04:00
Oran Agra
f7833d560d
make redis purge jemalloc after flush, and enable background purging thread
...
jemalloc 5 doesn't immediately release memory back to the OS, instead there's a decaying
mechanism, which doesn't work when there's no traffic (no allocations).
this is most evident if there's no traffic after flushdb, the RSS will remain high.
1) enable jemalloc background purging
2) explicitly purge in flushdb
2019-06-02 15:33:14 +03:00
Yuan Zhou
4620bfb47a
aof: fix assignment for aof_fsync_offset
...
Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
2019-05-29 14:48:46 +08:00
Angus Pearson
4bbaf621a1
Implement SCAN cursor [TYPE type]
modifier suggested in issue #6107 .
...
Add tests to check basic functionality of this optional keyword, and also tested with
a module (redisgraph). Checked quickly with valgrind, no issues.
Copies name the type name canonicalisation code from `typeCommand`, perhaps this would
be better factored out to prevent the two diverging and both needing to be edited to
add new `OBJ_*` types, but this is a little fiddly with C strings.
The [redis-doc](https://github.com/antirez/redis-doc/blob/master/commands.json ) repo
will need to be updated with this new arg if accepted.
A quirk to be aware of here is that the GEO commands are backed by zsets not their own
type, so they're not distinguishable from other zsets.
Additionally, for sparse types this has the same behaviour as `MATCH` in that it may
return many empty results before giving something, even for large `COUNT`s.
2019-05-22 16:39:04 +01:00
John Sully
2679450489
Implement MOTD feature in keydb-cli
...
Former-commit-id: a6c56416fc1bf09f1ecbae45195290209aa93c89
2019-05-21 15:12:12 -04:00
John Sully
dd5152f836
Fix regressions from RESP3 changes in commit c8304b099d82dba4da35f4cfaa99595bcdb46d1a
...
Former-commit-id: c5cbb77fc7e3b2b5124b9432e144d8c74190c755
2019-05-20 23:39:44 -04:00
John Sully
b7fff89e3e
The unstable branch doesn't have a version #
...
Former-commit-id: d7f21f02b30c3f9092dbf9aec75481baf45c3311
2019-05-20 16:12:26 -04:00