Skip to content

Releases: milvus-io/milvus

milvus-0.7.1

01 Apr 13:10
895829c
Compare
Choose a tag to compare

New features

  • Added new distance metrics, including substructure and superstructure, for the FLAT index type. These metrics are used for substructure and superstructure search of chemical structures.#1603.

Enhancements

  • Improved the performance of the compact operation. #1619
  • Improved search performance using CPU, especially for scenarios with multiple, concurrent connections. #267
  • Improved the search performance when nq is less than the number of threads in the CPU. #1690
  • Milvus performs a combined search for same search requests from multiple clients, thus significantly improving search speed. #1728
  • Upgraded Mishards to 0.7.1. #1698

Bug fixes

Refer to CHANGELOG for details.

milvus-0.7.0

11 Mar 09:51
de409be
Compare
Choose a tag to compare

New features

  • Vector deletion
    Added support to delete one or multiple vectors. If you performed vector deletion on a collection, later search operations for this collection are limited to part of the index types, including FLAT, IVFLAT, IVFSQ8, etc. Milvus is planned to support other index types in the upcoming versions.#861

  • Get vector by ID
    Added support to get vector data by ID. #861

  • Flush and compact
    Added support to flushing and compaction. You can configure flushing at an interval or manual flushing to avoid data loss. If some vectors are deleted from a segment, the space taken by the deleted vectors cannot be released automatically. You can compact segments in a collection to release space. #861 #1426

  • Change Milvus server configurations during runtime
    Added support to update Milvus server configurations during runtime. You can use Milvus clients to update the parameters. Changes to some parameters take effect immediately without restarting Milvus. #665

  • Write-Ahead logging (WAL)
    Added support for WAL, which significantly improves the reliability of data operations. You can configure WAL settings in the Milvus server configuration file (server_config.yaml). #830

  • RESTful API
    Added RESTful API. Refer to RESTful API Readme for more information.

  • Go SDK
    Added Go SDK. Refer to https://github.com/milvus-io/milvus-sdk-go for more information.

  • HNSW index support
    Added support for HNSW index type. Refer to Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs for more information about HNSW. #853

  • Jaccard/Hamming/Tanimoto distance support
    Added support for Jaccard distance, Hamming distance, and Tanimoto distance. #823

  • Pushgateway support in Prometheus
    Added support for Pushgateway in Prometheus. Pushgateway makes it possible for short-lived, batch metrics to be acquired by Prometheus. #813

  • AVX 512
    Added support for AVX 512 instruction set. Milvus theoretically supports all CPUs with AVX 512. #1122

Changes

  • Interface updates for index creation and vector search
    Starting from Milvus 0.7.0, part of the Milvus client parameters for index creation and vector search use JSON strings as values.

  • Milvus server configuration file updates
    Starting from Milvus 0.7.0, the Milvus server configuration file (server_config.yaml) is updated to 0.2 with parameter changes.

  • Term updates
    Starting from Milvus 0.7.0, Table is named as Collection in Milvus.

Bug fixes

  • Resolved the issue that duplicate IDs may be generated when inserting vector data using auto-generated IDs. #1508

milvus-0.6.0

07 Dec 09:05
6ade560
Compare
Choose a tag to compare

New features

  • CPU-only Milvus

    Milvus v0.6.0 provides Docker images for both CPU-only and GPU support Milvus. Milvus compilation on Docker is also supported on machines with or without GPU. #192

  • Table partitioning

    Add table partitioning funtion to secure fast query performance for incremental data. Partitioning APIs are added to Python, Java and C++ SDK to support partition creation, vector insertion into a specified partition and query against a specified partition, etc. #245

  • Experimental features

    The experimental features in Milvus are still under development and subject to change. They may contain unknown errors, and are intended for testing and user feedback gathering.

    • Mishards

      Propose Mishards, a Milvus sharding middleware, as the distributed deployment solution. Mishards provides unlimited extension of memory and computation capacity through request forwarding, read/write splitting, horizontal scalability and dynamic extension. #232

    • New index types

      Start supporting new experimental index types such as SPTAG-KDT, SPTAG-BKT, RNSG and IVFPQ. SPTAG#438 RNSG#554 IVFPQ#324

  • Index test reports

    Provide performance test reports for IVFFLAT, IVFSQ8 and IVFSQ8H indexes.

Improvements

  • Milvus internal FAISS

    In addition to original FAISS, Milvus has made deep optimizations to increase query performance and support more index types such as IVFSQ8H. Now this part of internal FAISS is open sourced. #585

  • Multiple GPUs for index building

    Support index building by multiple GPUs to reduce index building and overall query time. You can specify multiple GPUs for index building process through Milvus configuration parameter build_index_resources. #414

Bug fixes

  • Solved the issue of increased memory usage during vector queries. #335

milvus-0.5.3

13 Nov 11:44
Compare
Choose a tag to compare
  • Double the transmission speed of search results to the client application through the following updates to gRPC:

    • Optimize messages.
    • Change the API of generated code.
    • Remove compression.
  • Python SDK

    • Divide the storage of search result ids and distances into separate arrays, which reduces the API response time.
    • Add a new option to retrieve a specific target vector in search results: id = results.id_array[i][j], distance = results.distance_array[i][j].
    • Add a new option for looping over arrays, which takes much less time if nq and topk is large.
      >> for id_list, dis_list in zip(results.id_array, results.distance_array):
      >>     for id, dis in zip(id_list, dis_list):
      >>        print("id={}, distance={}".format(id, dis))
      
  • Java SDK

    • Add keepalive and idleTimeout settings when connecting to Milvus server.
    • Now users can retrieve search result ids and distances separately through getResultIdsList and getResultDistancesList with better performance, or they can retrieve them together as a list of QueryResult objects through getQueryResultsList.
  • C++ SDK

    • Now C++ SDK uses shared library.
    • Add README file.
  • Enhance the search performance of IVF_SQ8H.

milvus-0.5.2

07 Nov 08:06
7c658f8
Compare
Choose a tag to compare
  • Hotfix: Search failed: Table file doesn't exist.
  • Add Japanese README.
  • Change config parameter default value.

milvus-0.5.1

04 Nov 07:05
Compare
Choose a tag to compare

In this release, following functions are added or improved.

  • Solve more queries more memory usage issue.
  • Solve searching vectors slower and slower.
  • Add GPU searching threshold to control GPU execution trigger point.
  • Support Pure GPU mode for IVFSQ8 and IVFFlat.
  • Allow CPU to build the index.
  • Speed up project compilation.

milvus-0.5.0

21 Oct 16:28
Compare
Choose a tag to compare

In this release, following functions are added or improved.

New Feature:

Add new index IVFSQ8 Hybrid.
Add preload data on system startup phase.
Add new Java SDK
Remove API: DeleteByDate
Improvement:

Improve result merge performance
Detailed release information, please check CHANGELOG.md