Commit Graph

495 Commits

Author SHA1 Message Date
Miroslav Crnic
239b623e56 registry: add unit tests 2025-09-22 15:14:21 +01:00
Francesco Mazzoli
136d55bff0 Cleanup CRC32C code
Specifically:

* Extend tables so that they won't wrap around wrongly for big sizes
    (we would never hit this since our blocks are at most a few MBs
    big).
* Use CRC instructions to compute remainders.
2025-09-21 22:22:22 +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
6edd7bdd6a registry 2025-09-17 13:43:42 +01:00
Miroslav Crnic
74d99c92d2 logsdbtests: marked test for disabled functionality as skipped 2025-09-17 10:00:10 +00: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
Joshua Leahy
d72f1b494d Make C++ functional tests pass 2025-09-11 13:12:40 +01:00
Miroslav Crnic
a4d42be8a4 cdc/shard: fix metrics export 2025-09-09 12:17:17 +00:00
Francesco Mazzoli
4702eca3d5 Label docker images with repository 2025-09-08 10:38:52 +00: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
Joshua Leahy
05799dc1ed Fix gf_tables.py
The C file has been manually modified and does not match what is
autogenerated, this brings it back into sync.
2025-09-04 12:43:44 +00:00
Francesco Mazzoli
ac77d763a3 Limit third-party make concurrency 2025-09-03 23:11:12 +01: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
dd03ba4614 shard: fix sysmlinks 2025-09-02 11:59:52 +00:00
Miroslav Crnic
f3f5b4b0e2 cdc: dont flush on each log entry
We manually control flush of the WAL.
We persist the changes outside the loop by calling flush() with sync.
Since we only send responses after flush we will never send information
about anything that was not persisted.
2025-08-28 08:26:11 +00:00
Francesco Mazzoli
21aa58c4e9 unlikely stuff 2025-08-25 08:43:21 +00:00
Francesco Mazzoli
786073adbf Do not move entries when printing out error message 2025-08-13 10:45:22 +00:00
Francesco Mazzoli
0c25fbb497 Retry on make directory if mtime is too recent 2025-08-13 10:28:22 +00:00
Miroslav Crnic
11ec289606 udpsocket: dont crash on nic flap 2025-08-10 13:59:24 +00:00
Miroslav Crnic
51c89fb81a shard: dont validate inode from spans request 2025-07-23 12:21:21 +00: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
5b924fb272 cdc: log soft unlink edge lock error 2025-06-06 09:40:26 +00:00
Miroslav Crnic
71570f7cdc cdc: remove alert on rare race with gc 2025-06-05 15:04:29 +00:00
Miroslav Crnic
12b325be3b shard: stop raising BAD_BLOCK_PROOF alert 2025-06-03 10:55:34 +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
Pavel Rustanovich
a25a8c92ea dbtools: fix sampled size for multi-location files 2025-05-07 14:18:42 +00:00
Miroslav Crnic
ed145c4ebf dbtools: gather sample stats for all locations 2025-05-06 07:22:02 +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
0c23405295 sharddbtools: fix duplicate failure domain check 2025-04-17 20:02:29 +00:00
Miroslav Crnic
b01268e638 shardbtools: sample-files fix 2025-04-07 13:17:44 +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
d3918a2c60 shard: no deadline when making file transient 2025-03-18 11:34:16 +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
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