Commit Graph

147 Commits

Author SHA1 Message Date
Miroslav Crnic
abb1580708 shard/cdc: fix atomic shared_ptr usage 2025-12-02 21:24:24 +00:00
Miroslav Crnic
9164876cb6 shard: x-location wait only on CreateDirectoryInode
Waiting on each CDC operation is too expensive.
The only race we have a problem with is during directory creation,
where an observer must not see the directory before it is fully created.
This is a targeted fix until we can implement a more general solution.
2025-12-02 16:10:19 +00:00
Miroslav Crnic
ee23f44d42 shard: update leaders at other location lastSeen 2025-12-01 23:37:06 +00:00
Miroslav Crnic
de0a23090d shard: fix use after free 2025-11-28 19:07:34 +00:00
Miroslav Crnic
b262674e9c shard: wait other locations on CDC writes
CDC coordinates cross shard transactions.
State machines in it guarantee ordering of events.
In order for order to be guaranteed in all locations,
we need to ensure that all locations have applied the state.
2025-11-26 20:05:36 +00:00
Miroslav Crnic
2d7abe35b4 shard: support wait for state applied req 2025-11-12 09:12:07 +00:00
Miroslav Crnic
f95775e614 shard: metrics as simple counters 2025-10-24 16:57:23 +01:00
Miroslav Crnic
d96abd3083 minor fixes 2025-10-16 17:12:37 +00:00
Miroslav Crnic
924e75674f shard: support multiple reader threads 2025-10-16 12:39:11 +01:00
Miroslav Crnic
0d4b7ec885 shard: use multiple SPSC queues
It allows for better prioritization and removes copies from/to wrapper.
2025-09-26 17:46:30 +01:00
Joshua Leahy
7a4e466ac6 Make TernFS open source 2025-09-17 18:20:23 +01:00
Miroslav Crnic
c29f3191d8 core: common option parsing 2025-09-17 09:07:20 +00:00
Miroslav Crnic
8c75dd0d89 registry: changes to core/messages 2025-09-17 09:07:14 +00:00
Joshua Leahy
4d59472fad Remove iostream from Common.hpp (iosfwd should do) 2025-09-11 13:12:40 +01:00
Joshua Leahy
99b56195ec Replace wyhash with something licensable
Unfortunately Lemire's wyhash code was licensed as Apache, we'd rather
have something compatible with GPLv2. This probably a more appropriate
choice anyway.
2025-09-11 13:12:40 +01:00
Miroslav Crnic
92d25d04da shuckle: rename to registry prepare for replace 2025-09-08 08:59:08 +00:00
Francesco Mazzoli
4096e73818 Kill all references to internal services 2025-09-03 10:35:40 +00:00
Francesco Mazzoli
110705db8d EggsFS -> TernFS rename
Things not done because probably disruptive:

* kmod filesystem string
* sysctl/debugfs/trace
* metrics names
* xmon instance names

Some of these might be renamed too, but starting with a relatively
safe set.
2025-09-03 09:29:53 +01:00
Miroslav Crnic
a70a1c4d6a msgs: prepare for adding location to blockservices 2025-06-26 12:55:00 +00:00
Miroslav Crnic
5043e6d09a remove unusued appNameSuffix option 2025-06-23 12:03:49 +00:00
Miroslav Crnic
ee8306abb3 shard: reduce block service fetch on followers 2025-05-02 08:21:42 +00:00
Miroslav Crnic
7b24bfbac8 shards: increase heartbeat interval 2025-05-02 07:52:00 +00:00
Miroslav Crnic
1e2788f321 shard: always apply entries in proxy location 2025-02-04 09:19:59 +00:00
Miroslav Crnic
9326879c5f shard: increase proxied requests timeout 2025-02-03 10:31:21 +00:00
Miroslav Crnic
3f3ad038e7 shard: log slow proxied requests 2025-01-30 15:54:05 +00:00
Miroslav Crnic
1075b61885 shard: forward response for applied requests 2025-01-28 16:28:55 +00:00
Miroslav Crnic
96a86364ab blocks/shard: reduce blockservice space propagation 2024-12-10 12:46:37 +00:00
Miroslav Crnic
452ff75ea0 shard: allow initiating spans at non default locations 2024-12-03 13:08:22 +00:00
Miroslav Crnic
6948f36bc7 shard: support multiple locations in operations 2024-12-02 09:47:48 +00:00
Miroslav Crnic
5726a2e308 shuckle: assign writable services per location + messages cleanup 2024-11-28 15:42:44 +00:00
Miroslav Crnic
c92946cfcb shard: fix location tag 2024-11-18 16:27:20 +00:00
Miroslav Crnic
5bc4ca2781 shard: add location to stats 2024-11-18 15:48:33 +00:00
Miroslav Crnic
1a47089b3d shard: proxy read/write 2024-11-17 16:38:43 +00:00
Miroslav Crnic
edd5a37a82 shard: separate read thread 2024-11-06 08:58:44 +00:00
Miroslav Crnic
48c3aa7d4a logsdb: enable partial leader election 2024-10-11 09:52:18 +01:00
Miroslav Crnic
c5454b9361 shard: log more info when req invalid 2024-09-19 07:17:38 +00:00
Miroslav Crnic
2b738e01c7 shard/cdc: location output in log 2024-09-12 14:06:38 +00:00
Miroslav Crnic
1dc770f15f shard: format app name to be same as service name 2024-09-12 13:52:31 +00:00
Miroslav Crnic
f8c4096dc9 shard: register location 2024-09-12 14:27:27 +01:00
Miroslav Crnic
1b258dc422 all: migrate to new BlockServiceInfo 2024-07-23 13:53:07 +01:00
Miroslav Crnic
49723653f8 shuckle: BlockServiceInfo backward compatibility
* shuckle: rename BlockServiceInfo to BlockServiceInfoWithoutFlagsLastChanged

* shuckle: handle AllBlockServices
2024-07-23 13:10:57 +01:00
Miroslav Crnic
c7b6a1cbeb stats: stop producing them 2024-07-09 15:57:01 +01:00
Miroslav Crnic
99aa882575 gcmigrate: support sharding 2024-06-20 15:30:51 +00:00
Miroslav Crnic
9e13d6b56e shard: support checkpointed responses 2024-06-13 15:39:37 +01:00
Miroslav Crnic
2cd15fc0be core: various protocol changes 2024-06-13 09:13:11 +01:00
Miroslav Crnic
7aac745457 shard/cdc: fetch all replicas quickly unless in do not replicate mode 2024-06-12 16:08:29 +00:00
Miroslav Crnic
6eaed4ff0e core: remove Stopped (unused) 2024-06-12 15:10:58 +00:00
Miroslav Crnic
170f2fbc61 logsdb: add stats and expose in shard/cdc 2024-06-10 16:24:49 +01:00
Miroslav Crnic
1f145c030e shard/cdc: support snapshoting 2024-05-23 10:17:59 +01:00
Miroslav Crnic
4e574374ca shard/cdc: cleanup logsdb options, hostmon name match service name 2024-05-22 10:21:41 +00:00