Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultOptions ¶
func DefaultOptions() *options
Types ¶
type Manager ¶
type Manager struct {
// we need lock to access pbqMap, since deregister will be called inside pbq
// and each pbq will be inside a go routine, and also entire PBQ could be managed
// through a go routine (depends on the orchestrator)
sync.RWMutex
// contains filtered or unexported fields
}
Manager helps in managing the lifecycle of PBQ instances
func NewManager ¶
func NewManager(ctx context.Context, vertexName string, pipelineName string, vr int32, storeProvider wal.Manager, windowType window.Type, opts ...PBQOption) (*Manager, error)
NewManager returns new instance of manager We don't intend this to be called by multiple routines.
func (*Manager) CreateNewPBQ ¶
func (m *Manager) CreateNewPBQ(ctx context.Context, partitionID partition.ID) (ReadWriteCloser, error)
CreateNewPBQ creates new pbq for a partition
func (*Manager) GetPBQ ¶
func (m *Manager) GetPBQ(partitionID partition.ID) ReadWriteCloser
GetPBQ returns pbq for the given ID
func (*Manager) ListPartitions ¶
ListPartitions returns all the pbq instances
type PBQ ¶
PBQ Buffer queue which is backed with a persisted store, each partition will have a PBQ associated with it
func (*PBQ) Close ¶
Close is used by the writer to indicate close of context we should flush pending messages to store
func (*PBQ) GC ¶
GC cleans up the PBQ and also the store associated with it. GC is invoked after the Reader (ProcessAndForward) has finished forwarding the output to ISB.
func (*PBQ) ReadCh ¶
func (p *PBQ) ReadCh() <-chan *window.TimedWindowRequest
ReadCh exposes read channel to read the window requests from the PBQ close on read channel indicates COB
type PBQOption ¶
type PBQOption func(options *options) error
func WithChannelBufferSize ¶
WithChannelBufferSize sets buffer size option
func WithReadBatchSize ¶
WithReadBatchSize sets read batch size option
func WithReadTimeout ¶
WithReadTimeout sets read timeout option
type ReadWriteCloser ¶
type ReadWriteCloser interface {
Reader
WriteCloser
}
ReadWriteCloser is an unified interface to PBQ read and write interfaces. Close is only for Writer.
type Reader ¶
type Reader interface {
// ReadCh exposes channel to read from PBQ
ReadCh() <-chan *window.TimedWindowRequest
// GC does garbage collection, it deletes all the persisted data from the store
GC() error
}
Reader provides methods to read from PBQ.
type WriteCloser ¶
type WriteCloser interface {
// Write writes the TimedWindowRequest to PBQ
// persist to decide if the data should be persisted or not
// during replay persist will be false
Write(ctx context.Context, msg *window.TimedWindowRequest, persist bool) error
// CloseOfBook (cob) closes PBQ, no writes will be accepted after cob
CloseOfBook()
// Close to handle context close on writer
// Any pending data can be flushed to the persistent store at this point.
Close() error
}
WriteCloser provides methods to write data to the PQB and close the PBQ. No data can be written to PBQ after cob.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package partition is a tuple containing (start, end) time and an optional slot.
|
Package partition is a tuple containing (start, end) time and an optional slot. |
|
aligned/fs
Package fs implements write-ahead-log on FileSystem.
|
Package fs implements write-ahead-log on FileSystem. |
|
unaligned/fs
Package fs implements write-ahead-log on FileSystem.
|
Package fs implements write-ahead-log on FileSystem. |