You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Values are loaded by PixelsSinkConfig and mapped from keys in the properties file.
Core Keys
Key
Default
Notes
sink.datasource
engine
Source type: engine, kafka, or storage.
sink.mode
retina
Sink type: retina, csv, proto, flink, or none.
sink.datasource.rate.limit
-1
Rate limit for source ingestion. -1 disables.
sink.datasource.rate.limit.type
semaphore
Rate limiter type used by FlushRateLimiterFactory. 'guava' or 'semaphore'
Notes on sink.datasource
engine reads CDC logs directly from Debezium Engine.
storage reads CDC logs from files dumped by sink.proto output; schema reference: sink.proto.
kafka reads from a set of Kafka topics; this mode is deprecated and not actively tested.
Notes on sink.mode
retina connects to one or more Retina services via RPC and sends UpdateRecord or StreamUpdateRecord requests defined in retina.proto.
csv is mainly for debugging.
proto converts row change events and transaction metadata into sink.proto format, writes them in order to one or more files, and registers file paths in ETCD. These files can be read by sink.datasource=storage. This provides the highest CDC read efficiency and is used in paper experiments.
flink starts a server for external programs to pull data via RPC and continue ingestion, for example pixels-lance or pixels-flink.
none writes no output and is useful for testing or observing source-side metrics.
Source and Sink
Transaction
Only supported in Retina sink mode.
Key
Default
Notes
sink.trans.batch.size
100
Batch size for transaction processing.
sink.trans.mode
batch
Transaction mode: single, record, or batch.
transaction.timeout
300
Transaction timeout in seconds.
Notes on sink.trans.mode:
single means each Retina request writes exactly one transaction.
batch means a single Retina request may carry multiple transactions.
single and batch both support cross-table transactions. record disables cross-table transactions and only processes single-table transactions.
Note: In the Retina paper experiments, sink.monitor.freshness.level=embed is used to query freshness from Trino. This requires the last column of each table to be freshness_ts.