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
- API Design → Reference Java 1.1 SDK, Pymilvus SDK
- Initial version of the code, finish all the frameworks, including how the sdk communicate with milvus cluster, how we do unit test.
- Finish DDL, DML , Control API implementation
- Unit Test
- Usage examples
- API Document
- 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
...