dragonfly/src/server
Roman Gershman b9f8671df9
chore(tiering): add protection against overruning memory budget (#3327)
chore(tiering): Introduce second chance replacement strategy

Introduce hot/cold replacement strategy https://www.geeksforgeeks.org/second-chance-or-clock-page-replacement-policy/

Also, add protection against overruning memory budget
Finally, cancel in-flight offloading requests for entries that were looked up.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-07-18 03:52:43 -04:00
..
acl chore(tiering): add protection against overruning memory budget (#3327) 2024-07-18 03:52:43 -04:00
cluster chore(tiering): add protection against overruning memory budget (#3327) 2024-07-18 03:52:43 -04:00
detail fix(json_family): fix JSON.STRAPPEND command for JSON legacy mode (#3264) 2024-07-18 09:30:27 +04:00
journal feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
search refactor: Use DbContext, OpArgs and Transaction to access DbSlice (#3311) 2024-07-12 08:13:16 +03:00
testdata feat(json): Deserialize ReJSON format (#2725) 2024-03-14 17:23:31 +02:00
tiering chore(tiering): Fixes (#3225) 2024-07-16 11:30:21 +03:00
bitops_family.cc refactor: Use DbContext, OpArgs and Transaction to access DbSlice (#3311) 2024-07-12 08:13:16 +03:00
bitops_family.h
bitops_family_test.cc
blocking_controller.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
blocking_controller.h feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
blocking_controller_test.cc fix: Proper shutdown sequence with Namespaces (#3333) 2024-07-17 16:58:22 +03:00
bloom_family.cc refactor: Use DbContext, OpArgs and Transaction to access DbSlice (#3311) 2024-07-12 08:13:16 +03:00
bloom_family.h feat: add bf.(m)add and bf.(m)exists commands (#2801) 2024-03-31 15:50:21 +03:00
bloom_family_test.cc feat: add bf.(m)add and bf.(m)exists commands (#2801) 2024-03-31 15:50:21 +03:00
channel_store.cc feat(server): expiry notifications (#3154) 2024-06-24 16:23:40 +03:00
channel_store.h feat(server): expiry notifications (#3154) 2024-06-24 16:23:40 +03:00
CMakeLists.txt feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
command_registry.cc feat(json): MSET (#3167) 2024-06-13 12:33:24 +03:00
command_registry.h chore: get rid of kv_args and replace it with slices to full_args (#3101) 2024-06-05 14:25:26 +03:00
common.cc fix: total_stash_overflows statistic (#3248) 2024-07-01 10:43:08 +03:00
common.h feat: yield when serialization is in progress (#3220) 2024-07-11 16:55:53 +03:00
config_registry.cc
config_registry.h
conn_context.cc chore: provide basic logging to catch possible command errors (#3213) 2024-06-26 14:21:05 +03:00
conn_context.h feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
container_utils.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
container_utils.h chore: bpop prints (#3076) 2024-05-25 11:11:18 +03:00
db_slice.cc chore(tiering): add protection against overruning memory budget (#3327) 2024-07-18 03:52:43 -04:00
db_slice.h fix(migration): Use transactions! (#3266) 2024-07-16 14:06:34 +03:00
debugcmd.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
debugcmd.h chore(tiered): minor fixes + expose buffer allocation type stats (#3234) 2024-06-29 11:42:17 +03:00
dfly_bench.cc chore: improve dfly_bench stats (#3320) 2024-07-16 20:02:11 +03:00
dfly_main.cc chore: reset enable_direct_fd to avoid socket leakage in kernel (#3051) 2024-05-16 09:44:53 +03:00
dflycmd.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
dflycmd.h fix: remove acl-check and cancel instead when REPLCONF ACK fails to validate (#2920) 2024-05-01 09:57:11 +03:00
dragonfly_test.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
engine_shard_set.cc fix: Proper shutdown sequence with Namespaces (#3333) 2024-07-17 16:58:22 +03:00
engine_shard_set.h fix: Proper shutdown sequence with Namespaces (#3333) 2024-07-17 16:58:22 +03:00
engine_shard_set_test.cc
error.h fix(json_family): fix JSON.GET commmand for JSON legacy mode (#3261) 2024-07-05 14:27:23 +04:00
generic_family.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
generic_family.h fix(generic_family): fix RenameGeneric command for non-string data types (#3181) 2024-06-20 14:03:05 +04:00
generic_family_test.cc fix(unit tests): fix generic family info test (#3187) 2024-06-20 18:08:41 +03:00
hll_family.cc refactor: Use DbContext, OpArgs and Transaction to access DbSlice (#3311) 2024-07-12 08:13:16 +03:00
hll_family.h
hll_family_test.cc Add support for Sparse HLL PFADD (#2761) 2024-04-11 10:54:59 +03:00
hset_family.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
hset_family.h
hset_family_test.cc
http_api.cc fix: authorize the http connection to call commands (#2863) 2024-04-08 13:19:01 +03:00
http_api.h chore: preparation for basic http api (#2764) 2024-03-25 12:12:31 +02:00
json_family.cc fix(json_family): fix JSON.STRAPPEND command for JSON legacy mode (#3264) 2024-07-18 09:30:27 +04:00
json_family.h feat: implement json.merge (#2960) 2024-04-29 23:40:38 +03:00
json_family_test.cc fix(json_family): fix JSON.STRAPPEND command for JSON legacy mode (#3264) 2024-07-18 09:30:27 +04:00
list_family.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
list_family.h
list_family_test.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
main_service.cc fix: Proper shutdown sequence with Namespaces (#3333) 2024-07-17 16:58:22 +03:00
main_service.h feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
malloc_stats.cc chore: update helio together with new mimalloc version (#3040) 2024-05-13 12:48:05 +03:00
memory_cmd.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
memory_cmd.h chore: minor fixes (#3082) 2024-05-26 10:14:02 +03:00
multi_command_squasher.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
multi_command_squasher.h feat(server): master stop sending exec opcode to replica (#3289) 2024-07-09 14:48:31 +03:00
multi_test.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
namespaces.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
namespaces.h feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
protocol_client.cc chore: allow calling Context::ReportError from I/O dispatch fiber (#3182) 2024-06-17 10:58:24 +03:00
protocol_client.h chore: update helio together with new mimalloc version (#3040) 2024-05-13 12:48:05 +03:00
rdb_extensions.h chore: serialize SBF (#2846) 2024-04-09 09:57:24 +03:00
rdb_load.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
rdb_load.h fix(tiering): Throttle snapshot load (#3249) 2024-07-04 17:10:23 +03:00
rdb_save.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
rdb_save.h chore: update helio together with new mimalloc version (#3040) 2024-05-13 12:48:05 +03:00
rdb_test.cc chore: serialize SBF (#2846) 2024-04-09 09:57:24 +03:00
replica.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
replica.h feat(server): remove multi shard sync from replication (#3085) 2024-05-27 14:44:37 +03:00
script_mgr.cc chore: provide basic logging to catch possible command errors (#3213) 2024-06-26 14:21:05 +03:00
script_mgr.h chore: minor fixes (#3082) 2024-05-26 10:14:02 +03:00
serializer_commons.cc
serializer_commons.h
server_family.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
server_family.h feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
server_family_test.cc feat: client tracking optout (#3158) 2024-06-11 16:32:38 +03:00
server_state.cc feat(transaction): Idempotent callbacks (immediate runs) (#2453) 2024-04-03 23:06:57 +03:00
server_state.h feat(transaction): Idempotent callbacks (immediate runs) (#2453) 2024-04-03 23:06:57 +03:00
set_family.cc refactor: Use DbContext, OpArgs and Transaction to access DbSlice (#3311) 2024-07-12 08:13:16 +03:00
set_family.h
set_family_test.cc fix(set): fix random in SRANDMEMBER and SPOP commands (#3022) 2024-05-13 10:08:01 +03:00
slowlog.cc
slowlog.h
snapshot.cc feat: yield when serialization is in progress (#3220) 2024-07-11 16:55:53 +03:00
snapshot.h feat: yield when serialization is in progress (#3220) 2024-07-11 16:55:53 +03:00
stream_family.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
stream_family.h
stream_family_test.cc feat(streams): Stream optimizations (#3091) 2024-05-29 15:55:26 +03:00
string_family.cc chore(tiering): add protection against overruning memory budget (#3327) 2024-07-18 03:52:43 -04:00
string_family.h chore: small tiering fixes (#2966) 2024-05-02 18:00:46 +00:00
string_family_test.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
table.cc feat(tiering): simple offload loop (#2987) 2024-05-06 22:28:45 +03:00
table.h feat(server): expiry notifications (#3154) 2024-06-24 16:23:40 +03:00
test_utils.cc chore(tiering): add protection against overruning memory budget (#3327) 2024-07-18 03:52:43 -04:00
test_utils.h feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
tiered_storage.cc chore(tiering): add protection against overruning memory budget (#3327) 2024-07-18 03:52:43 -04:00
tiered_storage.h chore: bypass decoding/encoding of the data when performing offloading (#3315) 2024-07-15 13:16:43 +03:00
tiered_storage_test.cc chore(tiering): add protection against overruning memory budget (#3327) 2024-07-18 03:52:43 -04:00
top_keys.cc
top_keys.h
top_keys_test.cc chore: pull latest helio (#3009) 2024-05-05 22:43:59 +03:00
transaction.cc chore(tiering): add protection against overruning memory budget (#3327) 2024-07-18 03:52:43 -04:00
transaction.h feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
tx_base.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
tx_base.h feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
version.cc.in
version.h feat(server): check master journal lsn in replica (#2778) 2024-04-01 17:51:31 +03:00
version_monitor.cc chore: pull latest helio (#3009) 2024-05-05 22:43:59 +03:00
version_monitor.h
zset_family.cc feat(namespaces): Initial support for multi-tenant (#3260) 2024-07-16 19:34:49 +03:00
zset_family.h
zset_family_test.cc chore: optimize zpopminmax operations (#3291) 2024-07-09 14:52:25 +03:00