2024-06-24 02:34:12 +00:00
|
|
|
package wal
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
|
|
|
"github.com/milvus-io/milvus/internal/proto/streamingpb"
|
2024-06-27 07:11:05 +00:00
|
|
|
"github.com/milvus-io/milvus/pkg/streaming/walimpls"
|
2024-06-24 02:34:12 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
// OpenerBuilder is the interface for build wal opener.
|
|
|
|
type OpenerBuilder interface {
|
|
|
|
// Name of the wal builder, should be a lowercase string.
|
|
|
|
Name() string
|
|
|
|
|
|
|
|
Build() (Opener, error)
|
|
|
|
}
|
|
|
|
|
|
|
|
// OpenOption is the option for allocating wal instance.
|
|
|
|
type OpenOption struct {
|
|
|
|
Channel *streamingpb.PChannelInfo
|
|
|
|
InterceptorBuilders []walimpls.InterceptorBuilder // Interceptor builders to build when open.
|
|
|
|
}
|
|
|
|
|
|
|
|
// Opener is the interface for build wal instance.
|
|
|
|
type Opener interface {
|
|
|
|
// Open open a wal instance.
|
|
|
|
Open(ctx context.Context, opt *OpenOption) (WAL, error)
|
|
|
|
|
|
|
|
// Close closes the opener resources.
|
|
|
|
Close()
|
|
|
|
}
|