Zhen Ye 19e5e9f910
enhance: broadcaster will lock resource until message acked (#44508)
issue: #43897

- Return LastConfirmedMessageID when wal append operation.
- Add resource-key-based locker for broadcast-ack operation to protect
the coord state when executing ddl.
- Resource-key-based locker is held until the broadcast operation is
acked.
- ResourceKey support shared and exclusive lock.
- Add FastAck execute ack right away after the broadcast done to speed
up ddl.
- Ack callback will support broadcast message result now.
- Add tombstone for broadcaster to avoid to repeatedly commit DDL and
ABA issue.

---------

Signed-off-by: chyezh <chyezh@outlook.com>
2025-09-24 20:58:05 +08:00

26 lines
485 B
Go

package balance
import (
"context"
"github.com/milvus-io/milvus/internal/streamingcoord/server/balancer"
"github.com/milvus-io/milvus/pkg/v2/util/syncutil"
)
var singleton = syncutil.NewFuture[balancer.Balancer]()
func Register(balancer balancer.Balancer) {
singleton.Set(balancer)
}
func GetWithContext(ctx context.Context) (balancer.Balancer, error) {
return singleton.GetWithContext(ctx)
}
func Release() {
if !singleton.Ready() {
return
}
singleton.Get().Close()
}