...
upsert
all the items.- It will be problematic slow if the collection is huge.
- Insert new collection B data & rename the new collection B as A.
- In a distributed system, it is pretty costly(
Performance
,Availability
,Complexity
) to update the state globally.
- In a distributed system, it is pretty costly(
As CollectionAlias
works as an extra pointer to the existing collection in the RootCoordinator
, we can implement hot reloading at a much lower cost compared to the 1
, 2
approaches.
Public Interfaces
...
- Users can't drop the
collection
if thecollection
is referenced by analias
. DescribeCollection
now returnsaliases
Code Block |
---|
message DescribeCollectionResponse { common.Status status = 1; schema.CollectionSchema schema = 2; int64 collectionID = 3; repeated string virtual_channel_names = 4; repeated string physical_channel_names = 5; uint64 created_timestamp = 6; uint64 created_utc_timestamp = 7; |
...
// NEW |
...
repeated string aliases = 8; |
...
} service MilvusService { |
...
// Users are required to drop the aliases first before dropping the collection. |
...
rpc DropCollection(DropCollectionRequest) returns (common.Status) {} |
...
...
// DescribeCollectionResponse containes `aliases` that refer to this collection.
|
...
rpc DescribeCollection(DescribeCollectionRequest) returns (DescribeCollectionResponse) {} |
...
} |
...
Design Details
Changes to the MetaTable
...