Commit Graph

249 Commits

Author SHA1 Message Date
Francesco Mazzoli
7a7a43ff14 Streamline block reads, do CRC more on the fly.
This is in preparation with a deeper refactor of reading from Go
in general. The big difference that we have now which we did not
have before is that we now have CRCs for every single page.
2025-10-01 14:14:44 +01:00
Miroslav Crnic
86fc9fd03b SPSC: fix double close with MultiWaiter 2025-09-30 17:06:22 +01:00
Miroslav Crnic
6aac33c62e SPSC: add support for waiting multiple queues 2025-09-26 17:46:30 +01:00
Miroslav Crnic
abca852efb bump go version to 1.25 + warnings fix 2025-09-26 11:30:35 +01:00
Miroslav Crnic
6724f05691 Fixes after static analyser 2025-09-23 12:44:20 +01:00
Miroslav Crnic
239b623e56 registry: add unit tests 2025-09-22 15:14:21 +01:00
Francesco Mazzoli
93f1143355 Remove dead code 2025-09-18 21:53:37 +01:00
Francesco Mazzoli
01f9d5addf Improve FUSE, run all tests with it
The FUSE driver, up to now, had no way to know when the user had
"explicitly" closed a file. Instead it linked the TernFS file on
flush, which could cause nasty situation. The classic example
is a fork causing the FD to a TernFS file being present in the forked
process, and then the process dying causing a spurious flush.

This commit adds a way to detect when a flush is due to a close(),
which allows us to link the file only in the cases where that happened,
which is a much better heuristic and close to what we do in the kernel
module.

This commit also contains various other improvements to make all tests
pass under FUSE. The big remaining item is changing how files are read
(they're currently read all upfront and then kept in memory).
2025-09-18 18:09:43 +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
af58e27615 Reference AES back to Intel's ICP library
That libray was released under Apache 2.0, whereas the PDF unfortunately
does not provide a license allowing for use of its example code.
2025-09-11 13:12:40 +01:00
Joshua Leahy
4d59472fad Remove iostream from Common.hpp (iosfwd should do) 2025-09-11 13:12:40 +01:00
Joshua Leahy
752d9c074a Sink code from XmonAgent.hpp to XmonAgent.cpp 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
Joshua Leahy
65712e178a Remove encumbered comments from Int64AddOperator 2025-09-04 15:50:27 +00:00
Francesco Mazzoli
2ccdfd1d44 Factor out go files in more meaningful directories
Since we're going to add licenses soon
2025-09-04 15:07:35 +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
Francesco Mazzoli
21aa58c4e9 unlikely stuff 2025-08-25 08:43:21 +00:00
Miroslav Crnic
11ec289606 udpsocket: dont crash on nic flap 2025-08-10 13:59:24 +00:00
Miroslav Crnic
a70a1c4d6a msgs: prepare for adding location to blockservices 2025-06-26 12:55:00 +00:00
Saulius Grusnys
f6d8fec49a add endpoint to update blockservice path (#444) 2025-05-14 17:20:27 +01:00
Miroslav Crnic
8cedd17e6e msgs: deprecate AllBlockServices to add location 2025-05-14 08:34:21 +00:00
Miroslav Crnic
c53af171e5 make scratch file gc-able on release
* shard: support ScrapTransientFile

* scratch: scrap file on release
2025-03-18 12:49:44 +00:00
Miroslav Crnic
25b2cd965e shard: transient file deadline part of entry 2025-03-18 10:03:08 +00:00
Miroslav Crnic
1e2788f321 shard: always apply entries in proxy location 2025-02-04 09:19:59 +00:00
Miroslav Crnic
3f3ad038e7 shard: log slow proxied requests 2025-01-30 15:54:05 +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
f931e3c0d5 msgs: remove ConverBlockReq/Resp 2024-12-02 08:16:44 +00:00
Miroslav Crnic
5726a2e308 shuckle: assign writable services per location + messages cleanup 2024-11-28 15:42:44 +00:00
Miroslav Crnic
d196121677 shardDB: new SpanBody format (#402) 2024-11-28 13:58:05 +00:00
Miroslav Crnic
637543f0a0 shard: enforce no duplicate failure domains 2024-11-25 17:57:57 +00:00
Miroslav Crnic
1a47089b3d shard: proxy read/write 2024-11-17 16:38:43 +00:00
Miroslav Crnic
5f24b43184 shuckle: support locations 2024-11-14 09:26:44 +00:00
Nick Chapman
f3d77f9c86 More fixes to sampling output format (#390) 2024-11-13 14:51:06 +00:00
Nick Chapman
25d904b2d1 Update EggsTime C++ format to match EggsTime Go format (#389) 2024-11-13 09:55:58 +00:00
Miroslav Crnic
a73413ce7e shard: correct check for block services from shuckle 2024-10-15 10:09:18 +00:00
Miroslav Crnic
a6a6e8df12 logsdb: temporarily disable leader election 2024-10-11 15:19:03 +00:00
Miroslav Crnic
d1936caf6b logsdb: leader election extra logging 2024-10-11 13:48:08 +00:00
Miroslav Crnic
48c3aa7d4a logsdb: enable partial leader election 2024-10-11 09:52:18 +01:00
Miroslav Crnic
75dfd723c0 shuckle: fix ClearCdcInfoReq name 2024-09-17 10:05:46 +00:00
Miroslav Crnic
b2ea95091a shuckle: support cdc replica moving across hosts 2024-09-16 17:31:47 +01:00
Miroslav Crnic
59fc480e85 shuckle: remove unused requests 2024-09-16 15:21:06 +01:00
Miroslav Crnic
2dec9ec117 cdc: register location 2024-09-12 14:27:55 +01:00
Miroslav Crnic
f8c4096dc9 shard: register location 2024-09-12 14:27:27 +01:00
Miroslav Crnic
8ac93a4c54 shuckle: add location for all services 2024-09-11 16:59:19 +01:00
Miroslav Crnic
76695ec22b shard: check enough current block services 2024-09-02 16:49:31 +00:00