milvus/internal
cai.zhang ac8c5fcd5d
enhance: Remove pre-marking segments as L2 during clustering compaction (#36799)
issue: #36686 

This pr will remove pre-marking segments as L2 during clustering
compaction in version 2.5, and ensure compatibility with version 2.4.

The core of this change is to **ensure that the many-to-many lineage
derivation logic is correct, making sure that both the parent and child
cannot simultaneously exist in the target segment view.**

feature:
  - Clustering compaction no longer marks the input segments as L2.
- Add a new field `is_invisible` to `segmentInfo`, and mark segments
that have completed clustering but have not yet built indexes as
`is_invisible` to prevent them from being loaded prematurely."
- Do not mark the input segment as `Dropped` before the clustering
compaction is completed.
- After compaction fails, only the result segment needs to be marked as
Dropped.

compatibility:
- If the upgraded task has not failed, there are no compatibility
issues.
- If the status after the upgrade is `MetaSaved`, then skip the stats
task based on whether TmpSegments is empty.
  - If the failure occurs before `MetaSaved`:
- there are no ResultSegments, and InputSegments have not been marked as
dropped yet.
    - the level of input segments need to revert to LastLevel
  - If the failure occurs after `MetaSaved`:
- ResultSegments have already been generated, and InputSegments have
been marked as Dropped. At this point, simply make the ResultSegments
visible.
- the level of ResultSegments needs to be set to L1(in order to
participate in mixCompaction)

---------

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2024-10-23 17:15:28 +08:00
..
allocator fix: Rootcoord stuck at graceful stop progress (#36880) 2024-10-17 12:15:25 +08:00
core fix: fix missing return value in chunked column (#37064) 2024-10-22 10:29:19 -07:00
datacoord enhance: Remove pre-marking segments as L2 during clustering compaction (#36799) 2024-10-23 17:15:28 +08:00
datanode feat: management WebUI homepage (#36822) 2024-10-23 11:29:28 +08:00
distributed feat: management WebUI homepage (#36822) 2024-10-23 11:29:28 +08:00
flushcommon fix: loss small bm25 binlogs (#36942) 2024-10-17 14:49:23 +08:00
http feat: management WebUI homepage (#36822) 2024-10-23 11:29:28 +08:00
indexnode feat: management WebUI homepage (#36822) 2024-10-23 11:29:28 +08:00
json enhance: Gin & restfulv1 handler use sonic json (#35020) 2024-08-05 16:44:17 +08:00
kv fix: fix make generate-mockery panic with go1.22 (#36830) 2024-10-17 12:11:31 +08:00
metastore fix: Load original key if ts is MaxTimestamp (#36934) 2024-10-17 14:11:29 +08:00
mocks fix: fix make generate-mockery panic with go1.22 (#36830) 2024-10-17 12:11:31 +08:00
parser/planparserv2 enhance: Update antlr version and refine parsing not in (#36745) 2024-10-11 14:03:21 +08:00
proto enhance: Remove pre-marking segments as L2 during clustering compaction (#36799) 2024-10-23 17:15:28 +08:00
proxy feat: management WebUI homepage (#36822) 2024-10-23 11:29:28 +08:00
querycoordv2 feat: management WebUI homepage (#36822) 2024-10-23 11:29:28 +08:00
querynodev2 feat: management WebUI homepage (#36822) 2024-10-23 11:29:28 +08:00
registry Add querynode client wrapper and avoid grpc in standalone mode (#27781) 2023-10-19 11:10:07 +08:00
rootcoord feat: management WebUI homepage (#36822) 2024-10-23 11:29:28 +08:00
storage feat: added more checks for function creation check (#36766) 2024-10-13 17:43:22 +08:00
streamingcoord enhance: add streaming client metrics (#36523) 2024-10-08 21:25:19 +08:00
streamingnode fix: use binlog counter to trigger flush but not stats log (#37037) 2024-10-23 15:07:29 +08:00
tso enhance: move rocksmq from internal to pkg module (#33881) 2024-06-25 21:18:15 +08:00
types feat: Support stats task to sort segment by PK (#35054) 2024-09-02 14:19:03 +08:00
util feat: management WebUI homepage (#36822) 2024-10-23 11:29:28 +08:00
.mockery.yaml fix: mockery config (#35834) 2024-08-30 09:49:00 +08:00