Documentation
¶
Index ¶
- Constants
- func NewReplicaClientFromURL(scheme, host, urlPath string, query url.Values, userinfo *url.Userinfo) (litestream.ReplicaClient, error)
- type ReplicaClient
- func (c *ReplicaClient) DeleteAll(ctx context.Context) error
- func (c *ReplicaClient) DeleteLTXFiles(ctx context.Context, a []*ltx.FileInfo) error
- func (c *ReplicaClient) GenerationsV3(ctx context.Context) ([]string, error)
- func (c *ReplicaClient) Init(ctx context.Context) error
- func (c *ReplicaClient) LTXFilePath(level int, minTXID, maxTXID ltx.TXID) string
- func (c *ReplicaClient) LTXFiles(ctx context.Context, level int, seek ltx.TXID, useMetadata bool) (ltx.FileIterator, error)
- func (c *ReplicaClient) LTXLevelDir(level int) string
- func (c *ReplicaClient) OpenLTXFile(ctx context.Context, level int, minTXID, maxTXID ltx.TXID, offset, size int64) (io.ReadCloser, error)
- func (c *ReplicaClient) OpenSnapshotV3(ctx context.Context, generation string, index int) (io.ReadCloser, error)
- func (c *ReplicaClient) OpenWALSegmentV3(ctx context.Context, generation string, index int, offset int64) (io.ReadCloser, error)
- func (c *ReplicaClient) Path() string
- func (c *ReplicaClient) SnapshotsV3(ctx context.Context, generation string) ([]litestream.SnapshotInfoV3, error)
- func (c *ReplicaClient) Type() string
- func (c *ReplicaClient) WALSegmentsV3(ctx context.Context, generation string) ([]litestream.WALSegmentInfoV3, error)
- func (c *ReplicaClient) WriteLTXFile(ctx context.Context, level int, minTXID, maxTXID ltx.TXID, rd io.Reader) (info *ltx.FileInfo, err error)
Constants ¶
const ReplicaClientType = "file"
ReplicaClientType is the client type for this package.
Variables ¶
This section is empty.
Functions ¶
func NewReplicaClientFromURL ¶ added in v0.5.3
func NewReplicaClientFromURL(scheme, host, urlPath string, query url.Values, userinfo *url.Userinfo) (litestream.ReplicaClient, error)
NewReplicaClientFromURL creates a new ReplicaClient from URL components. This is used by the replica client factory registration.
Types ¶
type ReplicaClient ¶
type ReplicaClient struct {
Replica *litestream.Replica
// contains filtered or unexported fields
}
ReplicaClient is a client for writing LTX files to disk.
func NewReplicaClient ¶
func NewReplicaClient(path string) *ReplicaClient
NewReplicaClient returns a new instance of ReplicaClient.
func (*ReplicaClient) DeleteAll ¶ added in v0.5.0
func (c *ReplicaClient) DeleteAll(ctx context.Context) error
DeleteAll deletes all LTX files.
func (*ReplicaClient) DeleteLTXFiles ¶ added in v0.5.0
DeleteLTXFiles deletes LTX files.
func (*ReplicaClient) GenerationsV3 ¶ added in v0.5.7
func (c *ReplicaClient) GenerationsV3(ctx context.Context) ([]string, error)
GenerationsV3 returns a list of v0.3.x generation IDs in the replica.
func (*ReplicaClient) Init ¶ added in v0.5.3
func (c *ReplicaClient) Init(ctx context.Context) error
Init is a no-op for file replica client as no initialization is required.
func (*ReplicaClient) LTXFilePath ¶ added in v0.5.0
func (c *ReplicaClient) LTXFilePath(level int, minTXID, maxTXID ltx.TXID) string
LTXFilePath returns the path to an LTX file.
func (*ReplicaClient) LTXFiles ¶ added in v0.5.0
func (c *ReplicaClient) LTXFiles(ctx context.Context, level int, seek ltx.TXID, useMetadata bool) (ltx.FileIterator, error)
LTXFiles returns an iterator over all LTX files on the replica for the given level. The useMetadata parameter is ignored for file backend as ModTime is always available from readdir.
func (*ReplicaClient) LTXLevelDir ¶ added in v0.5.0
func (c *ReplicaClient) LTXLevelDir(level int) string
LTXLevelDir returns the path to a given level.
func (*ReplicaClient) OpenLTXFile ¶ added in v0.5.0
func (c *ReplicaClient) OpenLTXFile(ctx context.Context, level int, minTXID, maxTXID ltx.TXID, offset, size int64) (io.ReadCloser, error)
OpenLTXFile returns a reader for an LTX file at the given position. Returns os.ErrNotExist if no matching index/offset is found.
func (*ReplicaClient) OpenSnapshotV3 ¶ added in v0.5.7
func (c *ReplicaClient) OpenSnapshotV3(ctx context.Context, generation string, index int) (io.ReadCloser, error)
OpenSnapshotV3 opens a v0.3.x snapshot file for reading. The returned reader provides LZ4-decompressed data.
func (*ReplicaClient) OpenWALSegmentV3 ¶ added in v0.5.7
func (c *ReplicaClient) OpenWALSegmentV3(ctx context.Context, generation string, index int, offset int64) (io.ReadCloser, error)
OpenWALSegmentV3 opens a v0.3.x WAL segment file for reading. The returned reader provides LZ4-decompressed data.
func (*ReplicaClient) Path ¶
func (c *ReplicaClient) Path() string
Path returns the destination path to replicate the database to.
func (*ReplicaClient) SnapshotsV3 ¶ added in v0.5.7
func (c *ReplicaClient) SnapshotsV3(ctx context.Context, generation string) ([]litestream.SnapshotInfoV3, error)
SnapshotsV3 returns snapshots for a generation, sorted by index.
func (*ReplicaClient) Type ¶
func (c *ReplicaClient) Type() string
Type returns "file" as the client type.
func (*ReplicaClient) WALSegmentsV3 ¶ added in v0.5.7
func (c *ReplicaClient) WALSegmentsV3(ctx context.Context, generation string) ([]litestream.WALSegmentInfoV3, error)
WALSegmentsV3 returns WAL segments for a generation, sorted by index then offset.
func (*ReplicaClient) WriteLTXFile ¶ added in v0.5.0
func (c *ReplicaClient) WriteLTXFile(ctx context.Context, level int, minTXID, maxTXID ltx.TXID, rd io.Reader) (info *ltx.FileInfo, err error)
WriteLTXFile writes an LTX file to the replica. Extracts timestamp from LTX header and sets it as the file's ModTime to preserve original creation time.