Versions Compared

Key

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

Current state: Accepted

...

Code Block
class MilvusClient {
 public:
    static std::shared_ptr<MilvusClient>
    Create();

    virtual Status
    Connect(const ConnectParam& connect_param) = 0;

    virtual Status
    Disconnect() = 0;

    virtual Status
    CreateCollection(const CollectionSchema& schema) = 0;

    virtual Status
    HasCollection(const std::string& collection_name, bool& has) = 0;

    virtual Status
    DropCollection(const std::string& collection_name) = 0;

    virtual Status
    LoadCollection(const std::string& collection_name, const TimeoutSetting* timeout) = 0;

    virtual Status
    ReleaseCollection(const std::string& collection_name) = 0;

    virtual Status
    DescribeCollection(const std::string& collection_name, CollectionDesc& collection_desc) = 0;

    virtual Status
    GetCollectionStatistics(const std::string& collection_name, bool do_flush, CollectionStat& collection_stat) = 0;

    virtual Status
    ShowCollections(const std::vector<std::string>& collection_names, CollectionsInfo& collection_desc) = 0;
};


Design Details

TODO lists

  1. API Design → Reference Java 1.1 SDK, Pymilvus SDK
  2. Initial version of the code, finish all the frameworks, including how the sdk communicate with milvus cluster, how we do unit test.
  3. Finish DDL, DML , Control  API implementation
  4. Unit Test 
  5. Usage examples
  6. API Document
  7. CI Test

ORM

To be decidedProject framework

 The C++ sdk can be designed as two levels:

  • the orm classes: ConnectionInstance/Collection/Partition/Index/Schema/Parameters, and maybe ConnectionPool
  • the client implementation: a class to maintain grpc channel, a class to transfer parameters to rpc interface


CI Workflow

Use github ci process to run code lint, clang format check, compile project and run unittest.

Use mergify to automatically add ci-passed label.

Use code coverage tool to generate report and upload to codecov.io.


API Document

Add description for each class/method/constant, follow the Doxygen comment style.


ORM

To be determined.


C++ versions to support

Support C++ version above C++11. The Reason is:

...

Released: with Milvus 2.1 

Authors:  @matrixji @ArkaprabhaChakraborty @yhmo

...