F

falafel

Name Last Update
cmd Loading commit data...
debian Loading commit data...
vagrant Loading commit data...
vendor Loading commit data...
.cb.yml Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
block_server.go Loading commit data...
block_server_test.go Loading commit data...
config.go Loading commit data...
coordination.go Loading commit data...
coordination_test.go Loading commit data...
etcd_local_test.go Loading commit data...
falafel.go Loading commit data...
falafel.pb.go Loading commit data...
falafel.proto Loading commit data...
falafel_test.go Loading commit data...
fsck.go Loading commit data...
integration_test.go Loading commit data...
log2.go Loading commit data...
log2_amd64.s Loading commit data...
meta_server.go Loading commit data...
meta_server_test.go Loading commit data...
rpc.go Loading commit data...
topology.go Loading commit data...
topology_test.go Loading commit data...

A minimal distributed filesystem.

This software implements a very simple ("toy") distributed filesystem, designed to require a minimal amount of operational effort. It is an exploratory exercise in the scope of efficient long-term archival, so the focus is more on reliability and scaling rather than raw performance (also, see "toy" above).

It is called a filesystem in a loose sense: it does not provide POSIX semantics, but a limited read/write/list API.

A cluster contains two kinds of nodes, block servers and coordinators. Block servers expose physical disks via a trivial block storage interface. Coordinators deal with the file metadata, and coordinate themselves for global operations (gc / fsck).