Documentation ¶
Index ¶
- type ChunkStorage
- type FilesystemStorage
- func (m *FilesystemStorage) Close()
- func (m *FilesystemStorage) DeleteLatestVersion(chunk apis.ChunkNum) error
- func (m *FilesystemStorage) DeleteVersion(chunk apis.ChunkNum, version apis.Version) error
- func (m *FilesystemStorage) GetLatestVersion(chunk apis.ChunkNum) (apis.Version, error)
- func (m *FilesystemStorage) ListChunksWithData() ([]apis.ChunkNum, error)
- func (m *FilesystemStorage) ListChunksWithLatest() ([]apis.ChunkNum, error)
- func (m *FilesystemStorage) ListVersions(chunk apis.ChunkNum) ([]apis.Version, error)
- func (m *FilesystemStorage) ReadVersion(chunk apis.ChunkNum, version apis.Version) ([]byte, error)
- func (m *FilesystemStorage) SetLatestVersion(chunk apis.ChunkNum, latest apis.Version) error
- func (m *FilesystemStorage) WriteVersion(chunk apis.ChunkNum, version apis.Version, data []byte) error
- type MemoryStorage
- func (m *MemoryStorage) Close()
- func (m *MemoryStorage) DeleteLatestVersion(chunk apis.ChunkNum) error
- func (m *MemoryStorage) DeleteVersion(chunk apis.ChunkNum, version apis.Version) error
- func (m *MemoryStorage) GetLatestVersion(chunk apis.ChunkNum) (apis.Version, error)
- func (m *MemoryStorage) ListChunksWithData() ([]apis.ChunkNum, error)
- func (m *MemoryStorage) ListChunksWithLatest() ([]apis.ChunkNum, error)
- func (m *MemoryStorage) ListVersions(chunk apis.ChunkNum) ([]apis.Version, error)
- func (m *MemoryStorage) ReadVersion(chunk apis.ChunkNum, version apis.Version) ([]byte, error)
- func (m *MemoryStorage) SetLatestVersion(chunk apis.ChunkNum, latest apis.Version) error
- func (m *MemoryStorage) StatsForTesting() int
- func (m *MemoryStorage) WriteVersion(chunk apis.ChunkNum, version apis.Version, data []byte) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChunkStorage ¶
type ChunkStorage interface { // List chunks for which we have *any* stored versions, in no particular order ListChunksWithData() ([]apis.ChunkNum, error) // List all versions we have for a certain chunk, in ascending order // If the chunk doesn't exist at all, no error is returned -- just an empty slice. ListVersions(chunk apis.ChunkNum) ([]apis.Version, error) // Read the entire contents of a particular version of a particular chunk // note: version *cannot* be AnyVersion ReadVersion(chunk apis.ChunkNum, version apis.Version) ([]byte, error) // Write the entire contents of a new version for a chunk. // data cannot be larger than apis.MaxChunkSize. The storage layer may pad // out the written data with additional zeroes, up to apis.MaxChunkSize. WriteVersion(chunk apis.ChunkNum, version apis.Version, data []byte) error // Delete an existing version of a chunk. DeleteVersion(chunk apis.ChunkNum, version apis.Version) error // List chunks for which we've stored a latest version. ListChunksWithLatest() ([]apis.ChunkNum, error) // Get the "latest version" (to report to clients) of a particular chunk. // Returns an error if no version was stored for this chunk. GetLatestVersion(chunk apis.ChunkNum) (apis.Version, error) // Update the "latest version" (to report to clients) of a particular chunk. SetLatestVersion(chunk apis.ChunkNum, latest apis.Version) error // Remove records storing the latest version for a particular chunk. DeleteLatestVersion(chunk apis.ChunkNum) error // Empty any caches and tear down all storage state. // Use of other methods after call this method is undefined behavior. Calling Close() again has no effect. Close() }
An interface to a storage system for chunks and version information. This interface is expected to be write-immediate; changes made should be flushed to disk before each mutation returns. This interface is NOT normally threadsafe! Uses of it must be confined to a single thread.
func ConfigureBlockStorage ¶
func ConfigureBlockStorage(devicepath string) (ChunkStorage, error)
Given a path to a raw block device, construct an interface by which a chunkserver can store chunks
func ConfigureFilesystemStorage ¶
func ConfigureFilesystemStorage(basepath string) (ChunkStorage, error)
Given a base path for storage of files in a modern filesystem, construct an interface by which a chunkserver can store chunks.
func ConfigureMemoryStorage ¶
func ConfigureMemoryStorage() (ChunkStorage, error)
Creates an in-memory-only location to store data, and construct an interface by which a chunkserver can store chunks
type FilesystemStorage ¶
type FilesystemStorage struct {
// contains filtered or unexported fields
}
func (*FilesystemStorage) Close ¶
func (m *FilesystemStorage) Close()
func (*FilesystemStorage) DeleteLatestVersion ¶
func (m *FilesystemStorage) DeleteLatestVersion(chunk apis.ChunkNum) error
func (*FilesystemStorage) DeleteVersion ¶
func (*FilesystemStorage) GetLatestVersion ¶
func (*FilesystemStorage) ListChunksWithData ¶
func (m *FilesystemStorage) ListChunksWithData() ([]apis.ChunkNum, error)
func (*FilesystemStorage) ListChunksWithLatest ¶
func (m *FilesystemStorage) ListChunksWithLatest() ([]apis.ChunkNum, error)
func (*FilesystemStorage) ListVersions ¶
func (*FilesystemStorage) ReadVersion ¶
func (*FilesystemStorage) SetLatestVersion ¶
func (*FilesystemStorage) WriteVersion ¶
type MemoryStorage ¶
type MemoryStorage struct {
// contains filtered or unexported fields
}
func (*MemoryStorage) Close ¶
func (m *MemoryStorage) Close()
func (*MemoryStorage) DeleteLatestVersion ¶
func (m *MemoryStorage) DeleteLatestVersion(chunk apis.ChunkNum) error
func (*MemoryStorage) DeleteVersion ¶
func (*MemoryStorage) GetLatestVersion ¶
func (*MemoryStorage) ListChunksWithData ¶
func (m *MemoryStorage) ListChunksWithData() ([]apis.ChunkNum, error)
func (*MemoryStorage) ListChunksWithLatest ¶
func (m *MemoryStorage) ListChunksWithLatest() ([]apis.ChunkNum, error)
func (*MemoryStorage) ListVersions ¶
func (*MemoryStorage) ReadVersion ¶
func (*MemoryStorage) SetLatestVersion ¶
func (*MemoryStorage) StatsForTesting ¶
func (m *MemoryStorage) StatsForTesting() int
returns semi-fake storage usage stats for testing