milvus-io / milvus-lite

A lightweight version of Milvus
Apache License 2.0
240 stars 29 forks source link

Memory usage of milvus lite #152

Open wangyan828 opened 1 month ago

wangyan828 commented 1 month ago

We encountered the following issues when using milvus-server to start the service and using milvus lite:

  1. When starting the milvus -server service, does the service default to loading all databases into memory?
  2. Is there a way to achieve this: when starting a service without connecting to the database, the database will not be loaded into memory?
  3. Is it possible to load the relevant databases into memory when using them and release memory when the client disconnects?
junjiejiangjjj commented 1 month ago

If you are using a version <2.4.x, you can call release_collection to release memory. If you are using a version >=2.4.x, the collection will not be automatically loaded into memory. Similarly, release_collection is also used to release memory.

wangyan828 commented 1 month ago

If you are using a version <2.4.x, you can call release_collection to release memory. If you are using a version >=2.4.x, the collection will not be automatically loaded into memory. Similarly, release_collection is also used to release memory.

Has version 2.4. X and above changed the name of milvus to milvus lite?

junjiejiangjjj commented 1 month ago

If you are using a version <2.4.x, you can call release_collection to release memory. If you are using a version >=2.4.x, the collection will not be automatically loaded into memory. Similarly, release_collection is also used to release memory.

Has version 2.4. X and above changed the name of milvus to milvus lite?

yeah, 2.4.x changed the package name to milvus-lite and provided different interfaces

wangyan828 commented 1 month ago

If you are using a version <2.4.x, you can call release_collection to release memory. If you are using a version >=2.4.x, the collection will not be automatically loaded into memory. Similarly, release_collection is also used to release memory.

Has version 2.4. X and above changed the name of milvus to milvus lite?

yeah, 2.4.x changed the package name to milvus-lite and provided different interfaces

Thanks. Do you have any plans to provide a compilation and installation method, as our project rarely uses Python and mostly uses C++?

junjiejiangjjj commented 1 month ago

If you are using a version <2.4.x, you can call release_collection to release memory. If you are using a version >=2.4.x, the collection will not be automatically loaded into memory. Similarly, release_collection is also used to release memory.

Has version 2.4. X and above changed the name of milvus to milvus lite?

yeah, 2.4.x changed the package name to milvus-lite and provided different interfaces

Thanks. Do you have any plans to provide a compilation and installation method, as our project rarely uses Python and mostly uses C++?

The 2.4.x version of milvus-lite can also be started as a gRPC service and then accessed using the C++ client.

>>> from milvus_lite.server import Server
>>> s = Server('./test.db', 'localhost:19530')
>>> s.start()
True
>>> s._p.wait()
wangyan828 commented 1 month ago

If you are using a version <2.4.x, you can call release_collection to release memory. If you are using a version >=2.4.x, the collection will not be automatically loaded into memory. Similarly, release_collection is also used to release memory.

Has version 2.4. X and above changed the name of milvus to milvus lite?

yeah, 2.4.x changed the package name to milvus-lite and provided different interfaces

Thanks. Do you have any plans to provide a compilation and installation method, as our project rarely uses Python and mostly uses C++?

The 2.4.x version of milvus-lite can also be started as a gRPC service and then accessed using the C++ client.

>>> from milvus_lite.server import Server
>>> s = Server('./test.db', 'localhost:19530')
>>> s.start()
True
>>> s._p.wait()

If this method is used, is it possible for a service to only use one database? Is there any way to manage multiple local databases with one service?

junjiejiangjjj commented 1 month ago

If you are using a version <2.4.x, you can call release_collection to release memory. If you are using a version >=2.4.x, the collection will not be automatically loaded into memory. Similarly, release_collection is also used to release memory.

Has version 2.4. X and above changed the name of milvus to milvus lite?

yeah, 2.4.x changed the package name to milvus-lite and provided different interfaces

Thanks. Do you have any plans to provide a compilation and installation method, as our project rarely uses Python and mostly uses C++?

The 2.4.x version of milvus-lite can also be started as a gRPC service and then accessed using the C++ client.

>>> from milvus_lite.server import Server
>>> s = Server('./test.db', 'localhost:19530')
>>> s.start()
True
>>> s._p.wait()

If this method is used, is it possible for a service to only use one database? Is there any way to manage multiple local databases with one service?

No, a service only supports one local database

wangyan828 commented 1 month ago

If you are using a version <2.4.x, you can call release_collection to release memory. If you are using a version >=2.4.x, the collection will not be automatically loaded into memory. Similarly, release_collection is also used to release memory.

Has version 2.4. X and above changed the name of milvus to milvus lite?

yeah, 2.4.x changed the package name to milvus-lite and provided different interfaces

Thanks. Do you have any plans to provide a compilation and installation method, as our project rarely uses Python and mostly uses C++?

The 2.4.x version of milvus-lite can also be started as a gRPC service and then accessed using the C++ client.

>>> from milvus_lite.server import Server
>>> s = Server('./test.db', 'localhost:19530')
>>> s.start()
True
>>> s._p.wait()

If this method is used, is it possible for a service to only use one database? Is there any way to manage multiple local databases with one service?

No, a service only supports one local database

Why can't manage multiple databases with one service? What are the benefits of managing one database with one service? Because our current scenario may require multiple databases.

junjiejiangjjj commented 1 month ago

If you are using a version <2.4.x, you can call release_collection to release memory. If you are using a version >=2.4.x, the collection will not be automatically loaded into memory. Similarly, release_collection is also used to release memory.

Has version 2.4. X and above changed the name of milvus to milvus lite?

yeah, 2.4.x changed the package name to milvus-lite and provided different interfaces

Thanks. Do you have any plans to provide a compilation and installation method, as our project rarely uses Python and mostly uses C++?

The 2.4.x version of milvus-lite can also be started as a gRPC service and then accessed using the C++ client.

>>> from milvus_lite.server import Server
>>> s = Server('./test.db', 'localhost:19530')
>>> s.start()
True
>>> s._p.wait()

If this method is used, is it possible for a service to only use one database? Is there any way to manage multiple local databases with one service?

No, a service only supports one local database

Why can't manage multiple databases with one service? What are the benefits of managing one database with one service? Because our current scenario may require multiple databases.

The purpose of the project is to enable users to more easily utilize the vector search features of Milvus. Therefore, only a small subset of Milvus's features has been integrated. If you want to use the full range of features, it is recommended to use Milvus directly.

wangyan828 commented 1 month ago

The purpose of the project is to enable users to more easily utilize the vector search features of Milvus. Therefore, only a small subset of Milvus's features has been integrated. If you want to use the full range of features, it is recommended to use Milvus directly.

  1. Is there a plan to launch a service to access multiple databases in Milvus Lite in the future?
  2. In the information I know, Milvus is more suitable for cloud deployment, and our application scenarios require local deployment; Our scenario requires adding local document file data from computer users to the database, with a data volume of approximately millions. Would this be more suitable for using milvus or milvus lite?
junjiejiangjjj commented 1 month ago

The purpose of the project is to enable users to more easily utilize the vector search features of Milvus. Therefore, only a small subset of Milvus's features has been integrated. If you want to use the full range of features, it is recommended to use Milvus directly.

  1. Is there a plan to launch a service to access multiple databases in Milvus Lite in the future?
  2. In the information I know, Milvus is more suitable for cloud deployment, and our application scenarios require local deployment; Our scenario requires adding local document file data from computer users to the database, with a data volume of approximately millions. Would this be more suitable for using milvus or milvus lite?

Why are multiple databases necessary? Can't a single database with multiple collections meet the requirements?

The current milvus-lite version has a QPS of less than 3 for 1 million 768-dimensional vectors, so it is recommended to use Milvus.

wangyan828 commented 1 month ago

The purpose of the project is to enable users to more easily utilize the vector search features of Milvus. Therefore, only a small subset of Milvus's features has been integrated. If you want to use the full range of features, it is recommended to use Milvus directly.

  1. Is there a plan to launch a service to access multiple databases in Milvus Lite in the future?
  2. In the information I know, Milvus is more suitable for cloud deployment, and our application scenarios require local deployment; Our scenario requires adding local document file data from computer users to the database, with a data volume of approximately millions. Would this be more suitable for using milvus or milvus lite?

Why are multiple databases necessary? Can't a single database with multiple collections meet the requirements?

The current milvus-lite version has a QPS of less than 3 for 1 million 768-dimensional vectors, so it is recommended to use Milvus.

  1. We haven't used vector databases much before, and the previous design approach was to design a database for each business. We can consider creating multiple collections for a database as you mentioned.
  2. Do you have any fan groups related to Milvus Lite? Can I join the group chat for discussion?
junjiejiangjjj commented 1 month ago
  1. Do you have any fan groups related to Milvus Lite? Can I join the group chat for discussion?

English Community: https://github.com/milvus-io/milvus?tab=readme-ov-file#community Chinese Community: https://github.com/milvus-io/milvus/blob/master/README_CN.md#%E7%A4%BE%E5%8C%BA

wangyan828 commented 1 month ago

Chinese Community: https://github.com/milvus-io/milvus/blob/master/README_CN.md#%E7%A4%BE%E5%8C%BA

Is there any way to add me to the WeChat group in China?Thanks~

junjiejiangjjj commented 1 month ago

Chinese Community: https://github.com/milvus-io/milvus/blob/master/README_CN.md#%E7%A4%BE%E5%8C%BA

Is there any way to add me to the WeChat group in China?Thanks~

Just scan the QR code above.