milvus/pkg/streaming/util/message/broadcast_test.go
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

24 lines
589 B
Go

package message
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/milvus-io/milvus/pkg/v2/util/funcutil"
)
func TestBroadcastResult(t *testing.T) {
r := BroadcastResult[*CreateDatabaseMessageHeader, *CreateDatabaseMessageBody]{
Message: nil,
Results: map[string]*AppendResult{
"v1": {},
"v2": {},
"abc" + funcutil.ControlChannelSuffix: {},
},
}
assert.ElementsMatch(t, []string{"v1", "v2"}, r.GetVChannelsWithoutControlChannel())
assert.NotNil(t, r.GetControlChannelResult())
}