Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. upsert all the items.
    • It will be problematic slow if the collection is huge.
  2. 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.

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 the collection is referenced by an alias .
  • DescribeCollection now returns aliases
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

...