Files
wehub-resource-sync 498b235461
Build and test / Build and test AMD64 Ubuntu 22.04 (push) Failing after 0s
Publish Builder / amazonlinux2023 (push) Failing after 1s
Build and test / UT for Go (push) Has been skipped
Publish KRTE Images / KRTE (push) Failing after 1s
Build and test / Integration Test (push) Has been skipped
Build and test / Upload Code Coverage (push) Has been skipped
Publish Builder / rockylinux9 (push) Failing after 1s
Publish Builder / ubuntu22.04 (push) Failing after 0s
Publish Builder / ubuntu24.04 (push) Failing after 0s
Publish Gpu Builder / publish-gpu-builder (push) Failing after 1s
Publish Test Images / PyTest (push) Failing after 0s
Build and test / UT for Cpp (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:31:17 +08:00

45 lines
1.3 KiB
Go

package compactor
import (
"context"
"github.com/milvus-io/milvus/internal/compaction"
"github.com/milvus-io/milvus/internal/flushcommon/io"
"github.com/milvus-io/milvus/internal/storage"
"github.com/milvus-io/milvus/pkg/v3/proto/datapb"
"github.com/milvus-io/milvus/pkg/v3/util/merr"
)
// NamespaceCompactor compacts data with the same namespace together.
// Input segments must be sorted by namespace (partition key).
type NamespaceCompactor struct {
*mixCompactionTask
}
func checkInputSorted(plan *datapb.CompactionPlan) bool {
for _, segment := range plan.GetSegmentBinlogs() {
if !segment.GetIsSortedByNamespace() {
return false
}
}
return true
}
func (c *NamespaceCompactor) Compact() (*datapb.CompactionPlanResult, error) {
if !checkInputSorted(c.plan) {
return nil, merr.WrapErrIllegalCompactionPlan("input segments must be sorted by namespace")
}
res, err := c.mixCompactionTask.Compact()
if err != nil {
return nil, err
}
// TODO: after compact
return res, nil
}
func NewNamespaceCompactor(ctx context.Context, plan *datapb.CompactionPlan, binlogIO io.BinlogIO, cm storage.ChunkManager, compactionParams compaction.Params, sortByFieldIDs []int64) *NamespaceCompactor {
return &NamespaceCompactor{
mixCompactionTask: NewMixCompactionTask(ctx, binlogIO, cm, plan, compactionParams, sortByFieldIDs),
}
}