dataexport

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 3, 2024 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const GTIDHelpInstructions = `please ensure that you have GTID-based replication enabled`

Variables

View Source
var DefaultReplicatorFlags = map[string]string{"-v": ""}

DefaultReplicatorFlags are flags that are dialect agnostic ones that are passed into the replicator command.

Functions

func NewCRDBSource

func NewCRDBSource(
	ctx context.Context, settings Settings, conn *dbconn.PGConn, logger zerolog.Logger, testOnly bool,
) (*crdbSource, error)

func NewMySQLSource

func NewMySQLSource(
	ctx context.Context, settings Settings, conn *dbconn.MySQLConn,
) (*mysqlSource, error)

func NewPGSource

func NewPGSource(ctx context.Context, settings Settings, conn *dbconn.PGConn) (*pgSource, error)

Types

type PGReplicationSlotSettings

type PGReplicationSlotSettings struct {
	SlotName     string
	Plugin       string
	DropIfExists bool
}

type Settings

type Settings struct {
	RowBatchSize int

	PG PGReplicationSlotSettings

	CRDBPTSExtensionFreq     time.Duration
	CRDBPTSExtensionLifetime time.Duration
}

type Source

type Source interface {
	CDCCursor() string
	Conn(ctx context.Context) (SourceConn, error)
	Close(ctx context.Context) error

	// HistoryRetention means to extend the expiration of a protected timestamp (PTS). A
	// SELECT ... AS OF SYSTEM TIME command with a PTS will not be invalidated by garbage collection.
	// A PTS is created when creating the
	// cockroachdb datasource (i.e. NewCRDBSource()) via the crdb_internal.protect_mvcc_history(<timestamp>, <lifetime>,
	// <description>).
	// At time t, if extend the history retention job, the job's expiration timestamp will be updated to {t + <lifetime>}.
	HistoryRetentionJobManagement(ctx context.Context, logger zerolog.Logger, exportFinished chan struct{}, renewInterval time.Duration, extensionCnt *int64, testOnly bool, ts *testutils.FetchTestingKnobs) (jobManagementFinished *errgroup.Group)
	ReplicatorCommand(bin string, target dbconn.Conn, db tree.Name, sc tree.Name, replicatorArgs string) (*exec.Cmd, error)
}

func InferExportSource

func InferExportSource(
	ctx context.Context, settings Settings, conn dbconn.Conn, logger zerolog.Logger, testOnly bool,
) (Source, error)

type SourceConn

type SourceConn interface {
	Export(ctx context.Context, writer io.Writer, table dbtable.VerifiedTable, shard rowverify.TableShard) error
	Close(ctx context.Context) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL