Why does performance degradation and collection loading & release failure occur due to entity upsert? #40408
-
Hi. When using entity upsert, Empty segments (L0) are created in the collection. As a resut, Timeout occur during Milvus collection loading and release. DataCoord Logs
QueryCoord Logs
Birdwatcher
cf. I have removed the logs for the other collections. Q1. Why does empty segments (L0) appear when performing an entity upsert? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 5 replies
-
upsert = delete + insert Datanode triggers compaction actions to erase entities by the IDs from L0 segment. The empty L0 segments mean their IDs have been processed. Empty L0 segments will be remove by GC(garbage collection) of milvus. GC action is triggered with an interval of 1 hour. Intensive/continually upsert action will downgrade search performance because it is a heavier operation than normal insert. The log doesn't show the root cause why load() timeout. |
Beta Was this translation helpful? Give feedback.
upsert = delete + insert
Each time you upsert an entity, milvus will trigger a delete action to delete by the entity's id and an insert action to insert a new entity.
All the deleted IDs are records in L0 segment.
With more upsert/delete actions, you will see more L0 segments generated.
Datanode triggers compaction actions to erase entities by the IDs from L0 segment. The empty L0 segments mean their IDs have been processed. Empty L0 segments will be remove by GC(garbage collection) of milvus. GC action is triggered with an interval of 1 hour.
Intensive/continually upsert action will downgrade search performance because it is a heavier operation than normal insert.
The log doesn't show th…