Skip to content

milvus-2.0.0

Compare
Choose a tag to compare
@yanliang567 yanliang567 released this 25 Jan 12:14
· 7216 commits to master since this release
6336e23

v2.0.0

Release date: 2022-01-25

Compatibility

Milvus version Python SDK version Java SDK version Go SDK version Node.js SDK version
2.0.0 2.0.0 2.0.2 2.0.0 2.0.0

We are excited to announce the general release of Milvus 2.0 and it is now considered as production ready. Without changing the existing functionality released in the PreGA release, we fixed several critical bugs reported by users. We sincerely encourage all users to upgrade your Milvus to 2.0 release for better stability and performance.

Improvements

  • Changes the default consistency level to Bounded Staleness:
    If consistency level Strong is adopted during a search, Milvus waits until data is synchronized before the search, thus spending longer even on a small dataset. Under the the default consistency level of Bounded Staleness, newly inserted data remain invisible for a could of seconds before they can be retrieved. For more information, see Guarantee Timestamp in Search Requests.

  • #15223 Makes query nodes send search or query results by RPC.

Bug fixes

  • Writing blocked by message storage quota exceed exception:

    • #15221 Unsubscribes channel when closing Pulsar consumer.
    • #15230 Unsubscribes channel after query node is down.
    • #15284 Adds retry logic when pulsar consumer unsubscribes channel.
    • #15353 Unsubscribes topic in data coord.
  • Resource leakage:

    • #15303 Cleans flow graph if failed to watchChannel.
    • #15237 Calls for releasing memory in case that error occurs.
    • #15013 Closes payload writer when error occurs.
    • #14630 Checks leakage of index CGO object.
    • #14543 Fixes that Pulsar reader is not close.
    • #15068 Fixes that file is not close when ReadAll returns error in local chunk manager.
    • #15305 Fixes query node search exceptions will cause memory leak.
  • High memory usage:

    • #15196 Releases memory to OS after index is built.
    • #15180 Refactors flush manager injection to reduce goroutine number.
    • #15100 Fixes storage memory leak caused by runtime.SetFinalizer.
  • Cluster hang:

    • #15181 Stops handoff if the segment has been compacted.
    • #15189 Retains nodeInfo when query coord panic at loadBalanceTask.
    • #15250 Fixes collectResultLoop hang after search timeout.
    • #15102 Adds flow graph manager and event manager.
    • #15161 Panic when recover query node failed.
    • #15347 Makes index node panic when failed to save meta to MetaKV.
    • #15343 Fixes Pulsar client bug.
    • #15370 Releases collection first when drop collection.
  • Incorrect returned data:

    • #15177 Removes global sealed segments in historical.
    • #14758 Fixes that deleted data returned when handoff is done for the segment.

Known issues

  • #14077 Core dump happens under certain workload and it is still under reproducing.
    Solution: The system will be recovered automatically.
  • #15283 Cluster fails to recover because Pulsar's failure to create consumer Pulsar #13920.
    Solution: Restart pulsar cluster.
  • The default dependency Pulsar use old log4j2 version and contains security vulnerability.
    Solution: Upgrade pulsar dependency to 2.8.2. We will soon release a minor version to upgrade Pulsar to newer releases.
  • #15371 Data coord may fail to cleanup channel subscription if balance and node crash happens at same time.
    Solution: Remove the channel subscription with Pulsar admin.