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

[Feature]: Add Qdrant test container module #7503

Closed
russcam opened this issue Sep 6, 2023 · 5 comments · Fixed by #8353
Closed

[Feature]: Add Qdrant test container module #7503

russcam opened this issue Sep 6, 2023 · 5 comments · Fixed by #8353

Comments

@russcam
Copy link

russcam commented Sep 6, 2023

Module

New Module

Problem

Qdrant is a vector search engine/database that is becoming popular for search and recommendations use cases. Qdrant provides docker images but there isn't currently an official java test container. This issue proposes adding one.

Solution

Add a qdrant module with an official java TestContainer

Benefit

Provides a qdrant test container for folks that need it

Alternatives

Folks who need a qdrant test container each define it themselves

Would you like to help contributing this feature?

Yes

@russcam russcam changed the title [Feature]: [Feature]: Add Qdrant test container module Sep 6, 2023
@eddumelendez
Copy link
Member

Hi @russcam , thanks for the suggestion. Can you share the docker image and github repository, please?

Also, the following information would be useful:

  • Does it provides a JDBC driver?
  • Does it allow to set username, password, database name via env vars?
  • Does it allow scripts execution automatically? See Initializing a fresh instance
  • How much takes to start the service inside the container? Can be improved by adding some flags to the initialization?
  • How much resources consumes? (E.g memory)

@russcam
Copy link
Author

russcam commented Sep 10, 2023

Hi @eddumelendez,

  • Does it provides a JDBC driver?

It supports a HTTP REST API and gRPC API. There's a community client, but for Testcontainer tests, a HTTP client is sufficient.

  • Does it allow to set username, password, database name via env vars?

It allows setting an API key via env vars. API keys are the only current mechanism of auth.

It doesn't need this. Qdrant has a notion of collections in which it holds vectors and their payloads. No collections need to exist when starting Qdrant.

  • How much takes to start the service inside the container? Can be improved by adding some flags to the initialization?

It's very quick. If there are existing collections bind mounted, then Qdrant can take some time to become ready, loading collections and vectors into RAM. But I would not expect this to be a typical usage for Testcontainers.

  • How much resources consumes? (E.g memory)

Anecdotally, it's lightweight on resources.

I've opened an equivalent PR for Testcontainers for .NET, if it helps: testcontainers/testcontainers-dotnet#994

@eddumelendez
Copy link
Member

Hi @russcam, thanks for the information provided. I'll discuss this with the team as we are currently reviewing the modules topic.

@eddumelendez
Copy link
Member

Hi, we have decided to not host the module. However, if you would like to host and release the module on your own you can make it available in our Module Catalog

@eddumelendez eddumelendez closed this as not planned Won't fix, can't repro, duplicate, stale Nov 21, 2023
@eddumelendez
Copy link
Member

Hi @russcam, after revisiting this topic again we are interested in having Qdrant as a module. Would you like to contribute?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants