Documentation
¶
Index ¶
- Constants
- func NewReplicaClientFromURL(scheme, host, urlPath string, query url.Values, userinfo *url.Userinfo) (replicate.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) SetLogger(logger *slog.Logger)
- func (c *ReplicaClient) SnapshotsV3(ctx context.Context, generation string) ([]replicate.SnapshotInfoV3, error)
- func (c *ReplicaClient) Type() string
- func (c *ReplicaClient) WALSegmentsV3(ctx context.Context, generation string) ([]replicate.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 ¶
func NewReplicaClientFromURL(scheme, host, urlPath string, query url.Values, userinfo *url.Userinfo) (replicate.ReplicaClient, error)
NewReplicaClientFromURL creates a new ReplicaClient from URL components. This is used by the replica client factory registration.
Types ¶
type ReplicaClient ¶
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 ¶
func (c *ReplicaClient) DeleteAll(ctx context.Context) error
DeleteAll deletes all LTX files.
func (*ReplicaClient) DeleteLTXFiles ¶
DeleteLTXFiles deletes LTX files.
func (*ReplicaClient) GenerationsV3 ¶
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 ¶
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 ¶
func (c *ReplicaClient) LTXFilePath(level int, minTXID, maxTXID ltx.TXID) string
LTXFilePath returns the path to an LTX file.
func (*ReplicaClient) LTXFiles ¶
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 ¶
func (c *ReplicaClient) LTXLevelDir(level int) string
LTXLevelDir returns the path to a given level.
func (*ReplicaClient) OpenLTXFile ¶
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 ¶
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 ¶
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) SetLogger ¶
func (c *ReplicaClient) SetLogger(logger *slog.Logger)
func (*ReplicaClient) SnapshotsV3 ¶
func (c *ReplicaClient) SnapshotsV3(ctx context.Context, generation string) ([]replicate.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 ¶
func (c *ReplicaClient) WALSegmentsV3(ctx context.Context, generation string) ([]replicate.WALSegmentInfoV3, error)
WALSegmentsV3 returns WAL segments for a generation, sorted by index then offset.
func (*ReplicaClient) WriteLTXFile ¶
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.