dragonfly/src/server
Shahar Mike 54c9633cb8
feat(dbslice): Add self-laundering iterator in DbSlice (#2815)
A self-laundering iterator will enable us to, eventually, yield from fibers while holding an iterator. For example:

```cpp
auto it1 = db_slice.Find(...);
Yield();  // Until now - this could have invalidated `it1`
auto it2 = db_slice.Find(...);
```

Why is this a good idea? Because it will enable yielding inside PreUpdate() which will allow breaking down of writing huge entries in small quantities to disk/network, eliminating the need to allocate huge chunks of memory just for serialization.

Also, it'll probably unlock future developments as well, as yielding can be useful in other contexts.
2024-04-09 12:00:52 +03:00
..
acl chore: add a boilerplate for bloom filter family (#2782) 2024-03-28 19:26:34 +02:00
cluster feat(cluster): Send number of keys for incoming and outgoing migrations. (#2858) 2024-04-08 21:17:03 +03:00
detail feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
journal fix: #2745 don't start migration process again after apply the same the same config is applied (#2822) 2024-04-03 10:21:27 +03:00
search fix: sanitizers clang build and clean up some warnings (#2793) 2024-03-29 17:13:37 +02:00
testdata feat(json): Deserialize ReJSON format (#2725) 2024-03-14 17:23:31 +02:00
tiering feat(tiering): TieredStorageV2 (#2849) 2024-04-09 09:03:51 +03:00
bitops_family.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
bitops_family.h
bitops_family_test.cc
blocking_controller.cc fix(transaction): Replace with armed sync point (#2708) 2024-03-14 14:40:32 +00:00
blocking_controller.h
blocking_controller_test.cc bug(server): set connection flags block/pause flag on all blocking commands (#2816) 2024-04-09 09:49:33 +03:00
bloom_family.cc feat: add bf.(m)add and bf.(m)exists commands (#2801) 2024-03-31 15:50:21 +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 fix(channel store): add acquire/release pair in fast update path (#2704) 2024-03-09 11:49:18 +03:00
channel_store.h chore: remove core/fibers (#2723) 2024-03-14 12:02:33 +00:00
CMakeLists.txt refactor: clean cluster slot migration code (#2848) 2024-04-05 16:44:25 +03:00
command_registry.cc feat(transaction): Idempotent callbacks (immediate runs) (#2453) 2024-04-03 23:06:57 +03:00
command_registry.h feat(transaction): Idempotent callbacks (immediate runs) (#2453) 2024-04-03 23:06:57 +03:00
common.cc fix: #2745 don't start migration process again after apply the same the same config is applied (#2822) 2024-04-03 10:21:27 +03:00
common.h feat(server): support cluster replication (#2748) 2024-03-26 15:26:19 +02:00
config_registry.cc
config_registry.h
conn_context.cc
conn_context.h refactor: clean cluster slot migration code (#2848) 2024-04-05 16:44:25 +03:00
container_utils.cc bug(server): set connection flags block/pause flag on all blocking commands (#2816) 2024-04-09 09:49:33 +03:00
container_utils.h bug(server): set connection flags block/pause flag on all blocking commands (#2816) 2024-04-09 09:49:33 +03:00
db_slice.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
db_slice.h feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
debugcmd.cc feat(server): support cluster replication (#2748) 2024-03-26 15:26:19 +02:00
debugcmd.h fix: #2745 don't start migration process again after apply the same the same config is applied (#2822) 2024-04-03 10:21:27 +03:00
dfly_bench.cc chore: remove core/fibers (#2723) 2024-03-14 12:02:33 +00:00
dfly_main.cc chore: Introduce fiber stack allocator (#2730) 2024-03-18 13:51:33 +02:00
dflycmd.cc fix: test_replicaof_reject_on_load crash on stop (#2818) 2024-04-09 10:01:32 +03:00
dflycmd.h fix(cluster): Save replica ID per replica (#2735) 2024-03-19 13:42:48 +02:00
dragonfly_test.cc fix: propagate memcached flags to replica (#2807) 2024-04-01 10:20:36 +03:00
engine_shard_set.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
engine_shard_set.h feat(transaction): Idempotent callbacks (immediate runs) (#2453) 2024-04-03 23:06:57 +03:00
engine_shard_set_test.cc
error.h
generic_family.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
generic_family.h feat(generic_family): implement RANDOMKEY command (#2639) 2024-02-27 16:03:21 +02:00
generic_family_test.cc fix(BgSave): async from sync (#2702) 2024-03-14 13:31:58 +02:00
hll_family.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
hll_family.h
hll_family_test.cc
hset_family.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +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
io_mgr.cc feat(tiering): Simple OpManager (#2781) 2024-04-04 20:24:12 +03:00
io_mgr.h feat(tiering): DiskStorage (#2770) 2024-03-27 21:31:35 +03:00
io_utils.cc
io_utils.h chore: remove core/fibers (#2723) 2024-03-14 12:02:33 +00:00
json_family.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
json_family.h
json_family_test.cc chore: Support json paths without root selector (#2747) 2024-03-19 21:09:52 +03:00
list_family.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
list_family.h
list_family_test.cc
main_service.cc fix(server): Do not block admin-port commands (#2842) 2024-04-07 13:55:52 +03:00
main_service.h feat(server): support cluster replication (#2748) 2024-03-26 15:26:19 +02:00
malloc_stats.cc
memory_cmd.cc chore: Introduce fiber stack allocator (#2730) 2024-03-18 13:51:33 +02:00
memory_cmd.h
multi_command_squasher.cc chore: remove core/fibers (#2723) 2024-03-14 12:02:33 +00:00
multi_command_squasher.h chore: remove core/fibers (#2723) 2024-03-14 12:02:33 +00:00
multi_test.cc feat(transaction): Idempotent callbacks (immediate runs) (#2453) 2024-04-03 23:06:57 +03:00
protocol_client.cc feat: add flag masteruser (#2693) 2024-03-15 08:41:24 +02:00
protocol_client.h chore: remove core/fibers (#2723) 2024-03-14 12:02:33 +00:00
rdb_extensions.h chore: serialize SBF (#2846) 2024-04-09 09:57:24 +03:00
rdb_load.cc chore: serialize SBF (#2846) 2024-04-09 09:57:24 +03:00
rdb_load.h chore: serialize SBF (#2846) 2024-04-09 09:57:24 +03:00
rdb_save.cc chore: serialize SBF (#2846) 2024-04-09 09:57:24 +03:00
rdb_save.h chore: serialize SBF (#2846) 2024-04-09 09:57:24 +03:00
rdb_test.cc chore: serialize SBF (#2846) 2024-04-09 09:57:24 +03:00
replica.cc fix(replication): replication with multi shard sync enabled lagging (#2823) 2024-04-02 14:53:35 +00:00
replica.h feat(server): support cluster replication (#2748) 2024-03-26 15:26:19 +02:00
script_mgr.cc chore: remove core/fibers (#2723) 2024-03-14 12:02:33 +00:00
script_mgr.h chore: remove core/fibers (#2723) 2024-03-14 12:02:33 +00:00
serializer_commons.cc
serializer_commons.h
server_family.cc fix(server): Do not block admin-port commands (#2842) 2024-04-07 13:55:52 +03:00
server_family.h fix(server): Do not block admin-port commands (#2842) 2024-04-07 13:55:52 +03:00
server_family_test.cc fix(transaction): nullptr access on non transactional commands (#2724) 2024-03-14 10:07:24 +02: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 feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
set_family.h
set_family_test.cc
slowlog.cc
slowlog.h
snapshot.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
snapshot.h chore: remove core/fibers (#2723) 2024-03-14 12:02:33 +00:00
stream_family.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
stream_family.h
stream_family_test.cc chore: make usan asan optional and enable them on CI (#2631) 2024-03-04 11:00:46 +02:00
string_family.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
string_family.h feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
string_family_test.cc feat(transaction): Idempotent callbacks (immediate runs) (#2453) 2024-04-03 23:06:57 +03:00
table.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
table.h feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
test_utils.cc feat(tiering): TieredStorageV2 (#2849) 2024-04-09 09:03:51 +03:00
test_utils.h chore: remove core/fibers (#2723) 2024-03-14 12:02:33 +00:00
tiered_storage.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
tiered_storage.h feat(tiering): TieredStorageV2 (#2849) 2024-04-09 09:03:51 +03:00
tiered_storage_test.cc feat(tiering): TieredStorageV2 (#2849) 2024-04-09 09:03:51 +03:00
top_keys.cc
top_keys.h
top_keys_test.cc
transaction.cc bug(server): set connection flags block/pause flag on all blocking commands (#2816) 2024-04-09 09:49:33 +03:00
transaction.h bug(server): set connection flags block/pause flag on all blocking commands (#2816) 2024-04-09 09:49:33 +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
version_monitor.h
zset_family.cc feat(dbslice): Add self-laundering iterator in DbSlice (#2815) 2024-04-09 12:00:52 +03:00
zset_family.h
zset_family_test.cc