20927 Commits

Author SHA1 Message Date
Vivek Saini
faf9359e10 Merge pull request #60 from Snapchat/merge_os_apr_13
Merge in changes from Open Source.

For the most part, this encompasses two changes:

- Adding partial sync capabilities to multi-master
- Adding ReadWrite locks to prevent global lock issues when forking threads, specifically with regards to the time thread.
2022-05-02 13:26:21 -04:00
John Sully
343c47a935 Ensure recreated tables use the same settings as ones made at boot 2022-04-27 23:38:55 +00:00
John Sully
6e4e75af9c Ensure recreated tables use the same settings as ones made at boot 2022-04-27 23:38:55 +00:00
John Sully
b011bcbe93 Ensure we are responsive during storagecache clears 2022-04-27 17:32:40 +00:00
John Sully
cfa9ba8eb1 Ensure we are responsive during storagecache clears 2022-04-27 17:32:40 +00:00
John Sully
c7108ac57e PSYNC production fixes 2022-04-26 02:07:28 +00:00
John Sully
b37a68c8f1 PSYNC production fixes 2022-04-26 02:07:28 +00:00
John Sully
3d2a25fa33 acceptTLS is threadsafe like the non TLS version 2022-04-26 01:55:22 +00:00
John Sully
1bf92015dc acceptTLS is threadsafe like the non TLS version 2022-04-26 01:55:22 +00:00
John Sully
68957b279a With TLS throttle accepts if server is under heavy load - do not change non TLS behavior 2022-04-26 01:55:22 +00:00
John Sully
914da1f62c With TLS throttle accepts if server is under heavy load - do not change non TLS behavior 2022-04-26 01:55:22 +00:00
John Sully
33a4d78a90 Make active client balancing a configurable option 2022-04-26 01:55:22 +00:00
John Sully
dcaca5d79c Make active client balancing a configurable option 2022-04-26 01:55:22 +00:00
Vivek Saini
54f746f99b Removed mergeReplicationId 2022-04-26 01:55:22 +00:00
Vivek Saini
a0208b7301 Removed mergeReplicationId 2022-04-26 01:55:22 +00:00
Vivek Saini
78efb2f629 call aeThreadOnline() earlier 2022-04-26 01:55:22 +00:00
Vivek Saini
d7b4f1e492 call aeThreadOnline() earlier 2022-04-26 01:55:22 +00:00
Vivek Saini
d441901c39 Inclusive language 2022-04-26 01:55:22 +00:00
Vivek Saini
4d053b1aa1 Inclusive language 2022-04-26 01:55:22 +00:00
Vivek Saini
09f216fb03 Remove asserts, RW lock can go below zero in cases of aeAcquireLock 2022-04-26 01:55:22 +00:00
Vivek Saini
738f4d44bd Remove asserts, RW lock can go below zero in cases of aeAcquireLock 2022-04-26 01:55:22 +00:00
Vivek Saini
b1b6d31305 placement new instead of memcpy 2022-04-26 01:55:22 +00:00
Vivek Saini
09067046f6 placement new instead of memcpy 2022-04-26 01:55:22 +00:00
Christian Legge
0f26a14276 Save and restore master info in rdb to allow active replica partial sync (#371)
* save replid for all masters in rdb

* expanded rdbSaveInfo to hold multiple master structs

* parse repl-masters from rdb

* recover replid info from rdb in active replica mode, attempt partial sync

* save offset from rdb into correct variable

* don't change replid based on master in active rep

* save and load psync info from correct fields
2022-04-26 01:55:22 +00:00
Christian Legge
0ed0745d90 Save and restore master info in rdb to allow active replica partial sync (#371)
* save replid for all masters in rdb

* expanded rdbSaveInfo to hold multiple master structs

* parse repl-masters from rdb

* recover replid info from rdb in active replica mode, attempt partial sync

* save offset from rdb into correct variable

* don't change replid based on master in active rep

* save and load psync info from correct fields
2022-04-26 01:55:22 +00:00
Vivek Saini
cde7939fe1 Defensive asserts for RWLock 2022-04-26 01:55:22 +00:00
Vivek Saini
6a89ac329c Defensive asserts for RWLock 2022-04-26 01:55:22 +00:00
Vivek Saini
3fadb9787a Integrate readwritelock with Pro Code 2022-04-26 01:55:22 +00:00
Vivek Saini
c529f0e1ed Integrate readwritelock with Pro Code 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
bdfd34cf10 use atomic_load for g_pserver->mstime 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
4af996e32e use atomic_load for g_pserver->mstime 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
8f6c6bb6a4 need to include stdint for uintptr_t 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
eb46be3685 need to include stdint for uintptr_t 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
2c881b390a cannot mod a pointer 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
0f187c7465 cannot mod a pointer 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
f189bbb4e4 remove nullptr subtraction 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
d63c5acb20 remove nullptr subtraction 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
e0548b4722 check ziplist len to avoid crash on empty ziplist convert 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
8f3f127203 check ziplist len to avoid crash on empty ziplist convert 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
60a85737e6 remove unused var in networking.cpp 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
203e4e228f remove unused var in networking.cpp 2022-04-26 01:55:22 +00:00
John Sully
9dad9f6ef4 Fix MALLOC=memkind build issues 2022-04-26 01:55:22 +00:00
John Sully
57ccb88641 Fix MALLOC=memkind build issues 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
78086d6293 set thread as offline when waiting for time thread lock 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
5e2d3fafae set thread as offline when waiting for time thread lock 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
aa07287c05 time thread lock uses fastlock instead of std::mutex 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
6d1cd00f15 time thread lock uses fastlock instead of std::mutex 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
24a586cdf1 only need to include readwritelock in ae 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
fa0a60240b only need to include readwritelock in ae 2022-04-26 01:55:22 +00:00
Malavan Sotheeswaran
4d4acaa155 hide forklock object in ae 2022-04-26 01:55:22 +00:00