Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] Asyncio support #2455

Closed
wants to merge 7 commits into from
Closed

[FEAT] Asyncio support #2455

wants to merge 7 commits into from

Conversation

brcarry
Copy link
Contributor

@brcarry brcarry commented Dec 17, 2024

  • Support async delete, get, insert, query, search, hybrid_search, upsert, create_collection, drop_collection, describe_collection
  • Support adding interceptor to aio channel
  • Use _async_channel.channel_ready() in _wait_for_channel_ready instead of polling logic by _async_channel.get_state()
  • Add _async parameter in connections.py to determine whether to establish a synchronous or asynchronous connection
  • Update __init__.py to allow importing AsyncMilvusClient
  • Add a simple code example for AsyncMilvusClient

Signed-off-by: Ruichen Bao [email protected]

- Support async delete, get, insert, query, search, hybrid_search, upsert, create_collection, drop_collection, describe_collection
- Support adding interceptor to aio channel
- Retry checking connect state instead of channel_ready_future in connect_milvus

Signed-off-by: Ruichen Bao <[email protected]>
… "_async" check, optimize "_wait_for_channel_ready"

- Refactor AsyncGrpcHandler to inherit GrpcHandler Class, enabling reuse of existing sync methods
- Remove unnecessary "_async" check in async methods
- Replace previous polling logic `_async_channel.get_state()` by `_async_channel.channel_ready()` in `_wait_for_channel_ready`

Signed-off-by: Ruichen Bao <[email protected]>
- Provide only asynchronous interfaces in AsyncMilvusClient
- Convert `_prepare_row/batch_insert/upsert_request`, `create_index`, and `load_collection` and their related functions to asynchronous implementations
- Retain only functions being used in async_utility.py

Signed-off-by: Ruichen Bao <[email protected]>
… for async client

- Update `__init__.py` to allow importing AsyncMilvusClient
- Add a simple code example for AsyncMilvusClient
- Add the previously missing `_async_create_collection_with_schema` method

Signed-off-by: Ruichen Bao <[email protected]>
- Add `_async` parameter in `connections.py` to determine whether to establish a synchronous or asynchronous connection
- Fix `__all__` is not sorted in `__init__.py` which failed in code lint check

Signed-off-by: Ruichen Bao <[email protected]>
- Rename `async_*` methods as `async def` already indicates this is an async method. For example: `async_create_collection` → `create_collection`
- Add a class doc for `AsyncMilvusClient`
- Remove commented-out code in example

Signed-off-by: Ruichen Bao <[email protected]>
@sre-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: brcarry
To complete the pull request process, please assign xuanyang-cn after the PR has been reviewed.
You can assign the PR to them by writing /assign @xuanyang-cn in a comment when ready.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@mergify mergify bot added the dco-passed label Dec 17, 2024
@mergify mergify bot mentioned this pull request Dec 17, 2024
@brcarry brcarry closed this Dec 17, 2024
@mergify mergify bot added the ci-passed label Dec 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants