readme: Add a section about architecture

This commit is contained in:
Łukasz Magiera 2020-04-06 21:42:57 +02:00
parent 2c98869d96
commit 0bc12be059
2 changed files with 44 additions and 0 deletions

View File

@ -8,6 +8,47 @@
The sector-storage project provides a implementation-nonspecific reference implementation of the [specs-storage](https://github.com/filecoin-project/specs-storage) interface.
## Architecture
![high-level architecture](docs/sector-storage.svg)
### `Manager`
Manages is the top-level piece of the storage system gluing all the other pieces
together. It also implements scheduling logic.
### `package stores`
This package implements the sector storage subsystem. Fundamentally the storage
is divided into `path`s, each path has it's UUID, and stores a set of sector
'files'. There are currently 3 types of sector files - `unsealed`, `sealed`,
and `cache`.
Paths can be shared between nodes by sharing the underlying filesystem.
### `stores.Local`
The Local store implements SectorProvider for paths mounted in the local
filesystem. Paths can be shared between nodes, and support shared filesystems
such as NFS.
stores.Local implements all native filesystem-related operations
### `stores.Remote`
The Remote store extends Local store, handles fetching sector files into a local
store if needed, and handles removing sectors from non-local stores.
### `stores.Index`
The Index is a singleton holding metadata about storage paths, and a mapping of
sector files to paths
### `LocalWorker`
LocalWorker implements the Worker interface with ffiwrapper.Sealer and a
store.Store instance
## License
The Filecoin Project is dual-licensed under Apache 2.0 and MIT terms:

3
docs/sector-storage.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 75 KiB