mirror of
https://github.com/versity/scoutfs.git
synced 2026-08-28 11:56:38 +00:00
d89e16214d4a33c8803c64416ed494c7798d767d
The fence-and-reclaim test runs a bunch of scenarios and makes sure that the fence agent was run on the appropriate mount's rids. Unfortunately the checks were racey. The check itself only looked at the log once to see if the rid had been fenced. Each check had steps before that would wait until the rid should have been fenced and could be checked. Those steps were racey. They'd do things like make sure a fence request wasn't pending, but never waited for it to be created in the first place. They'd falsely indicate that the log should be checked and when the rid wasn't found in the log the test would fail. In logs of failures we'd see that the rids were fenced after this test failed and moved on to the next. This simplifies the checks. It gets rid of all the intermediate steps and just waits around for the rid to be fenced, with a timeout. This avoids the flakey tests. Signed-off-by: Zach Brown <zab@versity.com>
Introduction
scoutfs is a clustered in-kernel Linux filesystem designed to support large archival systems. It features additional interfaces and metadata so that archive agents can perform their maintenance workflows without walking all the files in the namespace. Its cluster support lets deployments add nodes to satisfy archival tier bandwidth targets.
The design goal is to reach file populations in the trillions, with the archival bandwidth to match, while remaining operational and responsive.
Highlights of the design and implementation include:
- Fully consistent POSIX semantics between nodes
- Atomic transactions to maintain consistent persistent structures
- Integrated archival metadata replaces syncing to external databases
- Dynamic seperation of resources lets nodes write in parallel
- 64bit throughout; no limits on file or directory sizes or counts
- Open GPLv2 implementation
Community Mailing List
Please join us on the open scoutfs-devel@scoutfs.org mailing list hosted on Google Groups
Languages
C
86.4%
Shell
9.9%
Roff
2.5%
TeX
0.8%
Makefile
0.4%