milvus/CHANGELOG.md
yanliang567 4edbab35d2
[skip ci]Update typo in changelog md (#11710)
Signed-off-by: yanliang567 <yanliang.qiao@zilliz.com>
2021-11-15 18:57:22 +08:00

974 lines
40 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Changelog
Please mark all change in change log and use the issue from GitHub
# Milvus 1.1.0 (2021-06-16)
## Bug
- \#4897 Query results contain some deleted ids.
- \#5164 Exception should be raised if insert or delete entity on the none-existed partition.
- \#5191 Mishards throw "index out of range" error after continually search/insert for a period of time.
- \#5398 Random crash after request is executed.
- \#5537 Failed to load bloom filter after suddenly power off.
- \#5574 IVF_SQ8 and IVF_PQ cannot be built on multiple GPUs.
- \#5747 Search with big nq and topk crash milvus.
## Features
- \#1434 Storage: enabling s3 storage support (implemented by Unisinsight).
- \#5142 Support keeping index in GPU memory.
## Improvements
- \#5115 Relax the topk limit from 16384 to 1M for CPU search.
- \#5204 Improve IVF query on GPU when no entity deleted.
- \#5544 Relax the index_file_size limit from 4GB to 128Gb.
## Feature
- \#3977 Support logging to stdout
## Improvement
- \#4754 Reduce the package download size of grpc-milvus for C++ SDK
## Task
# Milvus 0.10.6 (2021-02-23)
## Bug
- \#4683 A negative zero may be returned if the metric_type is Tanimoto
- \#4678 Server crash on BinaryFlat if dimension is not a power of 2
- \#4719 The GPU cache holds much more data than the configured value
## Feature
## Improvement
- \#1970 Improve the performance of BinaryFlat by AVX2
- \#3920 Add an optional parameter 'nbtis' for IVF_PQ
- \#4676,#4614 Support configurable metric labels cluster and instance for Prometheus (implemented by IQIYI)
## Task
# Milvus 0.10.5 (2021-01-07)
## Bug
- \#4296,#4554 Fix mishards add name-mismatched pod to read-only group
- \#4307 Specify partition to load for load_collection()
- \#4378 Multi-threads to call load_collection() and search() cause Milvus hang
- \#4484 Milvus only search default partition if search parameter 'partition_tags' contains '_default'
- \#4492 while share file system service became abnormal, the milvus can not supply query service
## Feature
- \#4504 Add a metric to display the number of files opened by Milvus
## Improvement
- \#4454 Optimize the process of indexing and querying
## Task
# Milvus 0.10.4 (2020-12-02)
## Bug
- \#3626 Fix server crash when searching with IVF_PQ on GPU
- \#3903 The performance of IVF_SQ8H in 0.10.3 is degraded
- \#3906 Fix the delete task state to avoid server crash
- \#4012 Milvus hangs when continually creating and dropping partitions
- \#4174 Fix out of memory caused by too many data loaded to GPU
- \#4318 Fix memory leak in IVF indexes
## Feature
- \#3773 Support IVF_PQ to run on FPGA (implemented by Montage-tech)
## Improvement
- \#3775 Improve search performance in the case that no item deleted
- \#4075 Improve performance for create large amount of partitions
## Task
# Milvus 0.10.3 (2020-9-21)
## Bug
- \#3536 Release search task in time to avoid excessive memory usage
- \#3656 Fix to check search params 'nprobe' of BIN_IVF_FLAT
- \#3742 If the GPU cache is too small, IVF_SQ8H using multiple GPUs will cause to crash
- \#3760 After IVF_SQ8H querying, an CUDA error will occur when Milvus exits
## Feature
## Improvement
- \#3213 Allow users to specify a distance type at runtime for Flat index
- \#3254 Allow more choices for the parameter m of IVF_PQ
- \#3606 The supported parameter 'nprobe' of IVF is expanded to [1, 16384]
- \#3639 The supported parameter 'topk' of searching is expanded to [1, 16384]
- \#3784 Upgrade mishards up to v0.10.3
## Task
# Milvus 0.10.2 (2020-08-15)
## Bug
- \#2890 Fix the index size caculation in cache
- \#2952 Fix the result merging of IVF_PQ IP
- \#2975 Fix config UT failed
- \#3012 If the cache is too small, queries using multiple GPUs will cause to crash
- \#3133 Reverse query result in mishards if metric type is IP
## Feature
## Improvement
- \#2653 Improve IVF search performance when NQ and nProbe are both large
- \#2828 Let Faiss not to compile half float by default
## Task
# Milvus 0.10.1 (2020-07-20)
## Bug
- \#2487 Enlarge timeout value for creating collection
- \#2487 HotFix release lock failed on NAS
- \#2557 Fix random crash of INSERT_DUPLICATE_ID case
- \#2578 Result count doesn't match target vectors count
- \#2585 Support IVF_PQ IP on GPU
- \#2598 Fix Milvus docker image report illegal instruction
- \#2617 Fix HNSW and RNSG index files size
- \#2637 Suit the range of HNSW parameters
- \#2642 Create index failed and server crashed
- \#2649 Search parameter of annoy has conflict with document
- \#2690 Remove body parser in show-partitions endpoints
- \#2692 Milvus hangs during multi-thread concurrent search
- \#2739 Fix mishards start failed
- \#2752 Milvus formats vectors data to double-precision and return to http client
- \#2767 Fix a bug of getting wrong nprobe limitation in knowhere on GPU version
- \#2768 After building the index, the number of vectors increases
- \#2774 Server down during loading data
- \#2776 Fix too many data copies during creating IVF index
- \#2813 To implemente RNSG IP
## Feature
## Improvement
- \#2932 Upgrade mishards for milvus 0.10.1
## Task
# Milvus 0.10.0 (2020-06-15)
## Bug
- \#2367 Fix inconsistent reading and writing when using mishards
- \#2368 Make read node detect delete behavior
- \#2394 Drop collection timeout if too many partitions created on collection
- \#2549 Launch server fail using demo config
- \#2564 cache.cache_size range check error
## Feature
- \#2363 Update branch version
- \#2510 Upgrade Milvus config
## Improvement
- \#2381 Upgrade FAISS to 1.6.3
- \#2429 Fix Milvus 0.9.1 performance degrade issue
- \#2441 Improve Knowhere code coverage
- \#2466 Optimize k-selection implemention of faiss gpu version
- \#2489 Add exception throw on mysql meta error
- \#2495 Add creating lock file failure reason.
- \#2516 Improve unit test coverage
- \#2548 Upgrade mishards for milvus v0.10.0
## Task
# Milvus 0.9.1 (2020-05-29)
## Bug
- \#2366 Reduce SQL execution times for collection contains lot of partitions
- \#2378 Duplicate data after server restart
- \#2395 Fix large nq cudaMalloc error
- \#2399 The nlist set by the user may not take effect
- \#2403 MySQL max_idle_time is 10 by default
- \#2450 The deleted vectors may be found on GPU
- \#2456 openblas library install failed
## Feature
## Improvement
- \#2353 Remove log_config from code and scripts
- \#2370 Clean compile warning
- \#2410 Logging build index progress
- \#2461 Upgrade mishards for milvus 0.9.1
# Milvus 0.9.0 (2020-05-15)
## Bug
- \#1705 Limit the insert data batch size
- \#1776 Error out when index SQ8H run in CPU mode
- \#1925 To flush all collections, flush cannot work
- \#1929 Skip MySQL meta schema field width check
- \#1946 Fix load index file CPU2GPU fail during searching
- \#1955 Switch create_index operation to background once client break connection
- \#1997 Index file missed after compact
- \#2002 Remove log error msg `Attributes is null`
- \#2073 Fix CheckDBConfigBackendUrl error message
- \#2076 CheckMetricConfigAddress error message
- \#2120 Fix Search expected failed if search params set invalid
- \#2121 Allow regex match partition tag when search
- \#2128 Check has_partition params
- \#2131 Distance/ID returned is not correct if searching with duplicate ids
- \#2141 Fix server start failed if wal directory exist
- \#2169 Fix SingleIndexTest.IVFSQHybrid unittest
- \#2194 Fix get collection info failed
- \#2196 Fix server start failed if wal is disabled
- \#2203 0.8.0 id=-1 is returned when total count < topk
- \#2228 Fix show partitions failed in http module
- \#2231 Use server_config to define hard-delete delay time for segment files
- \#2261 Re-define result returned by has_collection if collection in delete state
- \#2264 Milvus opened too many files when the metric_config.enable_monitor=true
- \#2266 Server hangs when using multi-clients to query different collections
- \#2280 has_partition should return true for `_default`
## Feature
- \#1751 Add api SearchByID
- \#1752 Add api GetVectorsByID
- \#1962 Add api HasPartition
- \#1965 FAISS/NSG/HNSW/ANNOY use unified distance calculation algorithm
- \#2054 Check if CPU instruction sets are illegal
- \#2057 Add a config parameter to switch off http server
- \#2059 Add lock file avoid multiple instances modifying data at the same time
- \#2064 Warn when use SQLite as metadata management
- \#2111 Check GPU environment before start server
- \#2206 Log file rotating
- \#2240 Obtain running rpc requests information
- \#2268 Intelligently detect openblas library in system to avoid installing from source code every time
- \#2283 Suspend the building tasks when any query comand arrives.
## Improvement
- \#221 Refactor LOG macro
- \#833 Catch exception in RolloutHandler and output in stderr
- \#1796 Compile Openblas with source code to improve the performance
- \#1942 Background merge file strategy
- \#2039 Support Milvus run on SSE CPUs
- \#2149 Merge server_cpu_config.template and server_gpu_config.template
- \#2153 Upgrade thirdparty oatpp to v1.0.0
- \#2167 Merge log_config.conf with server_config.yaml
- \#2173 Check storage permission
- \#2178 Using elkan K-Means to improve IVF
- \#2185 Change id to string format in http module
- \#2186 Update endpoints in http module
- \#2190 Fix memory usage is twice of index size when using GPU searching
- \#2248 Use hostname and port as instance label of metrics
- \#2252 Upgrade mishards APIs and requirements
- \#2256 k-means clustering algorithm use only Euclidean distance metric
- \#2300 Upgrade mishrads configuration to version 0.4
- \#2311 Update mishards methods
- \#2330 Change url for behavior 'get_entities_by_id'
- \#2347 Update http document for v0.9.0
- \#2358 Upgrade mishards for v0.9.0
## Task
# Milvus 0.8.0 (2020-04-15)
## Bug
- \#1276 SQLite throw exception after create 50000+ partitions in a table
- \#1762 Server is not forbidden to create new partition which tag is `_default`
- \#1789 Fix multi-client search cause server crash
- \#1832 Fix crash in tracing module
- \#1873 Fix index file serialize to incorrect path
- \#1881 Fix bad alloc when index files lost
- \#1883 Fix inserted vectors becomes all zero when index_file_size >= 2GB
- \#1901 Search failed with flat index
- \#1903 Fix invalid annoy result
- \#1910 C++ SDK GetIDsInSegment could not work for large dataset
## Feature
- \#261 Integrate ANNOY into Milvus
- \#1655 GPU index support delete vectors
- \#1660 IVF PQ CPU support deleted vectors searching
- \#1661 HNSW support deleted vectors searching
- \#1825 Add annoy index type in C++ sdk
- \#1849 NSG support deleted vectors searching
- \#1893 Log config information and device information
## Improvement
- \#1627 Move read/write index APIs into codec
- \#1784 Add Substructure and Superstructure in http module
- \#1858 Disable S3 build
- \#1882 Add index annoy into http module
- \#1885 Optimize knowhere unittest
- \#1886 Refactor log on search and insert request
- \#1897 Heap pop and push can be realized by heap_swap_top
- \#1921 Use TimeRecorder instead of chrono
- \#1928 Fix too many data and uid copies when loading files
- \#1930 Upgrade mishards to v0.8.0
## Task
# Milvus 0.7.1 (2020-03-29)
## Bug
- \#1301 Data in WAL may be accidentally inserted into a new table with the same name.
- \#1634 Fix search demo bug in HTTP doc
- \#1635 Vectors can be returned by searching after vectors deleted if `cache_insert_data` set true
- \#1648 The cache cannot be used all when the vector type is binary
- \#1651 Check validity of dimension when collection metric type is binary one
- \#1663 PQ index parameter 'm' validation
- \#1686 API search_in_files cannot work correctly when vectors is stored in certain non-default partition
- \#1689 Fix SQ8H search fail on SIFT-1B dataset
- \#1667 Create index failed with type: rnsg if metric_type is IP
- \#1708 NSG search crashed
- \#1724 Remove unused unittests
- \#1728 Optimize request handler to combine similar query
- \#1734 Opentracing for combined search request
- \#1735 Fix search out of memory with ivf_flat
- \#1747 Expected error status if search with partition_tag not existed
- \#1756 Fix memory exhausted during searching
- \#1781 Fix search hang with SQ8H
- \#1812 Fix incorrect request method in search example in http readme
- \#1818 Duplicate data generated after restart milvus server
## Feature
- \#1603 BinaryFlat add 2 Metric: Substructure and Superstructure
## Improvement
- \#267 Improve search performance: reduce delay
- \#342 Knowhere and Wrapper refactor
- \#1537 Optimize raw vector and uids read/write
- \#1546 Move Config.cpp to config directory
- \#1547 Rename storage/file to storage/disk and rename classes
- \#1548 Move store/Directory to storage/Operation and add FSHandler
- \#1572 Optimize config cpu/gpu cache_capacity setter
- \#1619 Improve compact performance
- \#1649 Fix Milvus crash on old CPU
- \#1653 IndexFlat (SSE) and IndexBinaryFlat performance improvement for small NQ
- \#1678 Remove CUSTOMIZATION macro
- \#1698 Upgrade mishards to v0.7.0
- \#1719 Improve Milvus log
- \#1754 Optimize behavior to get file ids from metadata in mishards
- \#1799 Update docker images to 0.7.1 in mishards
## Task
# Milvus 0.7.0 (2020-03-11)
## Bug
- \#715 Milvus crash when searching and building index simultaneously using SQ8H
- \#744 Don't return partition table for show_tables
- \#770 Server unittest run failed on low-end server
- \#805 IVFTest.gpu_seal_test unittest failed
- \#831 Judge branch error in CommonUtil.cpp
- \#977 Server crash when create tables concurrently
- \#990 Check gpu resources setting when assign repeated value
- \#995 Table count set to 0 if no tables found
- \#1010 Improve error message when offset or page_size is equal 0
- \#1022 Check if partition name is valid
- \#1028 Check if table exists when show partitions
- \#1029 Check if table exists when try to delete partition
- \#1066 Optimize http insert and search speed
- \#1022 Check if partition name is legal
- \#1028 Check if table exists when show partitions
- \#1029 Check if table exists when try to delete partition
- \#1066 Optimize http insert and search speed
- \#1067 Add binary vectors support in http server
- \#1075 Improve error message when page size or offset is illegal
- \#1082 Check page_size or offset value to avoid float
- \#1115 Http server support load table into memory
- \#1152 Error log output continuously after server start
- \#1211 Server down caused by searching with index_type: HNSW
- \#1240 Update license declaration
- \#1298 Unit test failed when on CPU2GPU case
- \#1359 Negative distance value returned when searching with HNSW index type
- \#1429 Server crashed when searching vectors with GPU
- \#1476 Fix vectors results bug when getting vectors from segments
- \#1484 Index type changed to IDMAP after compacted
- \#1491 Server crashed during adding vectors
- \#1499 Fix duplicated ID number issue
- \#1504 Avoid possible race condition between delete and search
- \#1507 set_config for insert_buffer_size is wrong
- \#1510 Add set interfaces for WAL configurations
- \#1511 Fix big integer cannot pass to server correctly
- \#1517 Result is not correct when search vectors in multi partition, index type is RNSG
- \#1518 Table count did not match after deleting vectors and compact
- \#1521 Make cache_insert_data take effect in-service
- \#1525 Add setter API for config preload_table
- \#1529 Fix server crash when cache_insert_data enabled
- \#1530 Set table file with correct engine type in meta
- \#1532 Search with ivf_flat failed with open-dataset: sift-256-hamming
- \#1535 Degradation searching performance with metric_type: binary_idmap
- \#1549 Fix server/wal config setting bug
- \#1556 Index file not created after table and index created
- \#1560 Search crashed with Super-high dimensional binary vector
- \#1564 Too low recall for glove-200-angular, ivf_pq index
- \#1571 Meta engine type become IDMAP after dropping index for BINARY table
- \#1574 Set all existing bitset in cache when applying deletes
- \#1577 Row count incorrect if delete vectors then create index
- \#1580 Old segment folder not removed after merge/compact if create_index is called before adding data
- \#1590 Server down caused by failure to write file during concurrent mixed operations
- \#1598 Server down during mixed operations
- \#1601 External link bug in HTTP doc
- \#1609 Refine Compact function
- \#1808 Building index params check for Annoy
- \#1852 Search index type<Annoy> failed with reason `failed to load index file`
## Feature
- \#216 Add CLI to get server info
- \#343 Add Opentracing
- \#665 Support get/set config via CLI
- \#759 Put C++ sdk out of milvus/core
- \#766 If partition tag is similar, wrong partition is searched
- \#771 Add server build commit info interface
- \#788 Add web server into server module
- \#813 Add push mode for prometheus monitor
- \#815 Support MinIO storage
- \#823 Support binary vector tanimoto/jaccard/hamming metric
- \#830 Support WAL(write-ahead logging)
- \#853 Support HNSW
- \#861 Support DeleteById / SearchByID / GetVectorById / Flush
- \#910 Change Milvus c++ standard to c++17
- \#1122 Support AVX-512 in FAISS
- \#1204 Add api to get table data information
- \#1250 Support CPU profiling
- \#1302 Get all record IDs in a segment by given a segment id
- \#1461 Add crud APIs and segments APIs into http module
- \#1463 Update config version to 0.2
- \#1531 Remove S3 related config
## Improvement
- \#738 Use Openblas / lapack from apt install
- \#758 Enhance config description
- \#791 Remove Arrow
- \#834 Add cpu mode for built-in Faiss
- \#848 Add ready-to-use config files to the Milvus repo for enhanced user experince
- \#860 Remove redundant checks in CacheMgr's constructor
- \#908 Move "primary_path" and "secondary_path" to storage config
- \#931 Remove "collector" from config
- \#966 Update NOTICE.md
- \#1002 Rename minio to s3 in Storage Config section
- \#1078 Move 'insert_buffer_size' to Cache Config section
- \#1105 Error message is not clear when creating IVFSQ8H index without gpu resources
- \#740, #849, #878, #972, #1033, #1161, #1173, #1199, #1190, #1223, #1222, #1257, #1264, #1269, #1164, #1303, #1304, #1324, #1388, #1459 Various fixes and improvements for Milvus documentation.
- \#1297 Hide partition_name parameter, avid user directly access partition table
- \#1234 Do S3 server validation check when Milvus startup
- \#1263 Allow system conf modifiable and some take effect directly
- \#1310 Add default partition tag for a table
- \#1320 Remove debug logging from faiss
- \#1426 Support to configure whether to enabled autoflush and the autoflush interval
- \#1444 Improve delete
- \#1448 General proto api for NNS libraries
- \#1480 Add return code for AVX512 selection
- \#1524 Update config "preload_table" description
- \#1544 Update resources name in HTTP module
- \#1567 Update yaml config description
## Task
- \#1327 Exclude third-party code from codebeat
- \#1331 Exclude third-party code from codacy
# Milvus 0.6.0 (2019-12-07)
## Bug
- \#228 Memory usage increased slowly during searching vectors
- \#246 Exclude src/external folder from code coverage for jenkin ci
- \#248 Reside src/external in thirdparty
- \#316 Some files not merged after vectors added
- \#327 Search does not use GPU when index type is FLAT
- \#331 Add exception handle when search fail
- \#340 Test cases run failed on 0.6.0
- \#353 Rename config.h.in to version.h.in
- \#374 sdk_simple return empty result
- \#377 Create partition success if tag name only contains spaces
- \#397 sdk_simple return incorrect result
- \#399 Create partition should be failed if partition tag existed
- \#412 Message returned is confused when partition created with null partition name
- \#416 Drop the same partition success repeatally
- \#440 Query API in customization still uses old version
- \#440 Server cannot startup with gpu_resource_config.enable=false in GPU version
- \#458 Index data is not compatible between 0.5 and 0.6
- \#465 Server hang caused by searching with nsg index
- \#485 Increase code coverage rate
- \#486 gpu no usage during index building
- \#497 CPU-version search performance decreased
- \#504 The code coverage rate of core/src/scheduler/optimizer is too low
- \#509 IVF_PQ index build trapped into dead loop caused by invalid params
- \#513 Unittest DELETE_BY_RANGE sometimes failed
- \#523 Erase file data from cache once the file is marked as deleted
- \#527 faiss benchmark not compatible with faiss 1.6.0
- \#530 BuildIndex stop when do build index and search simultaneously
- \#532 Assigin value to `table_name` from confest shell
- \#533 NSG build failed with MetricType Inner Product
- \#543 client raise exception in shards when search results is empty
- \#545 Avoid dead circle of build index thread when error occurs
- \#547 NSG build failed using GPU-edition if set gpu_enable false
- \#548 NSG search accuracy is too low
- \#552 Server down during building index_type: IVF_PQ using GPU-edition
- \#561 Milvus server should report exception/error message or terminate on mysql metadata backend error
- \#579 Build index hang in GPU version when gpu_resources disabled
- \#596 Frequently insert operation cost too much disk space
- \#599 Build index log is incorrect
- \#602 Optimizer specify wrong gpu_id
- \#606 No log generated during building index with CPU
- \#616 IP search metric_type is not supported by IVF_PQ index
- \#631 FAISS isn't compiled with O3 option
- \#636 (CPU) Create index PQ should be failed if table metric type set Inner Product
- \#649 Typo "partiton" should be "partition"
- \#654 Random crash when frequently insert vector one by one
- \#658 Milvus error out when building SQ8H index without GPU resources
- \#668 Update badge of README
- \#670 Random failure of unittest db_test::SEARCH_TEST
- \#674 Server down in stability test
- \#696 Metric_type changed from IP to L2
- \#705 Fix search SQ8H crash without GPU resource
## Feature
- \#12 Pure CPU version for Milvus
- \#77 Support table partition
- \#127 Support new Index type IVFPQ
- \#226 Experimental shards middleware for Milvus
- \#227 Support new index types SPTAG-KDT and SPTAG-BKT
- \#346 Support build index with multiple gpu
- \#420 Update shards merge part to match v0.5.3
- \#488 Add log in scheduler/optimizer
- \#502 C++ SDK support IVFPQ and SPTAG
- \#560 Add version in server config file
- \#605 Print more messages when server start
- \#644 Add a new rpc command to get milvus build version whether cpu or gpu
- \#709 Show last commit id when server start
## Improvement
- \#255 Add ivfsq8 test report detailed version
- \#260 C++ SDK README
- \#266 RPC request source code refactor
- \#274 Logger the time cost during preloading data
- \#275 Rename C++ SDK IndexType
- \#284 Change C++ SDK to shared library
- \#306 Use int64 for all config integer
- \#310 Add Q&A for 'protocol https not supported or disable in libcurl' issue
- \#314 add Find FAISS in CMake
- \#322 Add option to enable / disable prometheus
- \#354 Build migration scripts into milvus docker image
- \#358 Add more information in build.sh and install.md
- \#404 Add virtual method Init() in Pass abstract class
- \#409 Add a Fallback pass in optimizer
- \#433 C++ SDK query result is not easy to use
- \#449 Add ShowPartitions example for C++ SDK
- \#470 Small raw files should not be build index
- \#584 Intergrate internal FAISS
- \#611 Remove MILVUS_CPU_VERSION
- \#634 FAISS GPU version is compiled with O0
- \#737 Refactor server module to separate Grpc from server handler and scheduler
## Task
# Milvus 0.5.3 (2019-11-13)
## Bug
- \#258 Bytes type in proto cause big-endian/little-endian problem
## Feature
## Improvement
- \#204 improve grpc performance in search
- \#207 Add more unittest for config set/get
- \#208 Optimize unittest to support run single test more easily
- \#284 Change C++ SDK to shared library
- \#260 C++ SDK README
## Task
# Milvus 0.5.2 (2019-11-07)
## Bug
- \#194 Search faild: message="Table file doesn't exist"
## Feature
## Improvement
- \#190 Update default config:use_blas_threshold to 1100 and server version printout to 0.5.2
## Task
# Milvus 0.5.1 (2019-11-04)
## Bug
- \#134 JFrog cache error
- \#161 Search IVFSQHybrid crash on gpu
- \#169 IVF_FLAT search out of memory
## Feature
- \#90 The server start error messages could be improved to enhance user experience
- \#104 test_scheduler core dump
- \#115 Using new structure for tasktable
- \#139 New config option use_gpu_threshold
- \#146 Add only GPU and only CPU version for IVF_SQ8 and IVF_FLAT
- \#164 Add CPU version for building index
## Improvement
- \#64 Improvement dump function in scheduler
- \#80 Print version information into log during server start
- \#82 Move easyloggingpp into "external" directory
- \#92 Speed up CMake build process
- \#96 Remove .a file in milvus/lib for docker-version
- \#118 Using shared_ptr instead of weak_ptr to avoid performance loss
- \#122 Add unique id for Job
- \#130 Set task state MOVED after resource copy it completed
- \#149 Improve large query optimizer pass
- \#156 Not return error when search_resources and index_build_device set cpu
- \#159 Change the configuration name from 'use_gpu_threshold' to 'gpu_search_threshold'
- \#168 Improve result reduce
- \#175 add invalid config unittest
## Task
# Milvus 0.5.0 (2019-10-21)
## Bug
- MS-568 Fix gpuresource free error
- MS-572 Milvus crash when get SIGINT
- MS-577 Unittest Query randomly hung
- MS-587 Count get wrong result after adding vectors and index built immediately
- MS-599 Search wrong result when table created with metric_type: IP
- MS-601 Docker logs error caused by get CPUTemperature error
- MS-605 Server going down during searching vectors
- MS-620 Get table row counts display wrong error code
- MS-622 Delete vectors should be failed if date range is invalid
- MS-624 Search vectors failed if time ranges long enough
- MS-637 Out of memory when load too many tasks
- MS-639 SQ8H index created failed and server hang
- MS-640 Cache object size calculate incorrect
- MS-641 Segment fault(signal 11) in PickToLoad
- MS-644 Search crashed with index-type: flat
- MS-647 grafana display average cpu-temp
- MS-652 IVFSQH quantization double free
- MS-650 SQ8H index create issue
- MS-653 When config check fail, Milvus close without message
- MS-654 Describe index timeout when building index
- MS-658 Fix SQ8 Hybrid can't search
- MS-665 IVF_SQ8H search crash when no GPU resource in search_resources
- \#9 Change default gpu_cache_capacity to 4
- \#20 C++ sdk example get grpc error
- \#23 Add unittest to improve code coverage
- \#31 make clang-format failed after run build.sh -l
- \#39 Create SQ8H index hang if using github server version
- \#30 Some troubleshoot messages in Milvus do not provide enough information
- \#48 Config unittest failed
- \#59 Topk result is incorrect for small dataset
## Improvement
- MS-552 Add and change the easylogging library
- MS-553 Refine cache code
- MS-555 Remove old scheduler
- MS-556 Add Job Definition in Scheduler
- MS-557 Merge Log.h
- MS-558 Refine status code
- MS-562 Add JobMgr and TaskCreator in Scheduler
- MS-566 Refactor cmake
- MS-574 Milvus configuration refactor
- MS-578 Make sure milvus5.0 don't crack 0.3.1 data
- MS-585 Update namespace in scheduler
- MS-606 Speed up result reduce
- MS-608 Update TODO names
- MS-609 Update task construct function
- MS-611 Add resources validity check in ResourceMgr
- MS-619 Add optimizer class in scheduler
- MS-626 Refactor DataObj to support cache any type data
- MS-648 Improve unittest
- MS-655 Upgrade SPTAG
- \#42 Put union of index_build_device and search resources to gpu_pool
- \#67 Avoid linking targets multiple times in cmake
## Feature
- MS-614 Preload table at startup
- MS-627 Integrate new index: IVFSQHybrid
- MS-631 IVFSQ8H Index support
- MS-636 Add optimizer in scheduler for FAISS_IVFSQ8H
## Task
- MS-554 Change license to Apache 2.0
- MS-561 Add contributing guidelines, code of conduct and README docs
- MS-567 Add NOTICE.md
- MS-569 Complete the NOTICE.md
- MS-575 Add Clang-format & Clang-tidy & Cpplint
- MS-586 Remove BUILD_FAISS_WITH_MKL option
- MS-590 Refine cmake code to support cpplint
- MS-600 Reconstruct unittest code
- MS-602 Remove zilliz namespace
- MS-610 Change error code base value from hex to decimal
- MS-624 Re-organize project directory for open-source
- MS-635 Add compile option to support customized faiss
- MS-660 add ubuntu_build_deps.sh
- \#18 Add all test cases
# Milvus 0.4.0 (2019-09-12)
## Bug
- MS-119 The problem of combining the log files
- MS-121 The problem that user can't change the time zone
- MS-411 Fix metric unittest linking error
- MS-412 Fix gpu cache logical error
- MS-416 ExecutionEngineImpl::GpuCache has not return value cause crash
- MS-417 YAML sequence load disable cause scheduler startup failed
- MS-413 Create index failed and server exited
- MS-427 Describe index error after drop index
- MS-432 Search vectors params nprobe need to check max number
- MS-431 Search vectors params nprobe: 0/-1, expected result: raise exception
- MS-331 Crate Table : when table exists, error code is META_FAILED(code=15) rather than ILLEGAL TABLE NAME(code=9))
- MS-430 Search no result if index created with FLAT
- MS-443 Create index hang again
- MS-436 Delete vectors failed if index created with index_type: IVF_FLAT/IVF_SQ8
- MS-449 Add vectors twice success, once with ids, the other no ids
- MS-450 server hang after run stop_server.sh
- MS-458 Keep building index for one file when no gpu resource
- MS-461 Mysql meta unittest failed
- MS-462 Run milvus server twices, should display error
- MS-463 Search timeout
- MS-467 mysql db test failed
- MS-470 Drop index success, which table not created
- MS-471 code coverage run failed
- MS-492 Drop index failed if index have been created with index_type: FLAT
- MS-493 Knowhere unittest crash
- MS-453 GPU search error when nprobe set more than 1024
- MS-474 Create index hang if use branch-0.3.1 server config
- MS-510 unittest out of memory and crashed
- MS-507 Dataset 10m-512, index type sq8performance in-normal when set CPU_CACHE to 16 or 64
- MS-543 SearchTask fail without exception
- MS-582 grafana displays changes frequently
## Improvement
- MS-327 Clean code for milvus
- MS-336 Scheduler interface
- MS-344 Add TaskTable Test
- MS-345 Add Node Test
- MS-346 Add some implementation of scheduler to solve compile error
- MS-348 Add ResourceFactory Test
- MS-350 Remove knowhere submodule
- MS-354 Add task class and interface in scheduler
- MS-355 Add copy interface in ExcutionEngine
- MS-357 Add minimum schedule function
- MS-359 Add cost test in new scheduler
- MS-361 Add event in resource
- MS-364 Modify tasktableitem in tasktable
- MS-365 Use tasktableitemptr instead in event
- MS-366 Implement TaskTable
- MS-368 Implement cost.cpp
- MS-371 Add TaskTableUpdatedEvent
- MS-373 Add resource test
- MS-374 Add action definition
- MS-375 Add Dump implementation for Event
- MS-376 Add loader and executor enable flag in Resource avoid diskresource execute task
- MS-377 Improve process thread trigger in ResourceMgr, Scheduler and TaskTable
- MS-378 Debug and Update normal_test in scheduler unittest
- MS-379 Add Dump implementation in Resource
- MS-380 Update resource loader and executor, work util all finished
- MS-383 Modify condition variable usage in scheduler
- MS-384 Add global instance of ResourceMgr and Scheduler
- MS-389 Add clone interface in Task
- MS-390 Update resource construct function
- MS-391 Add PushTaskToNeighbourHasExecutor action
- MS-394 Update scheduler unittest
- MS-400 Add timestamp record in task state change function
- MS-402 Add dump implementation for TaskTableItem
- MS-406 Add table flag for meta
- MS-403 Add GpuCacheMgr
- MS-404 Release index after search task done avoid memory increment continues
- MS-405 Add delete task support
- MS-407 Reconstruct MetricsCollector
- MS-408 Add device_id in resource construct function
- MS-409 Using new scheduler
- MS-413 Remove thrift dependency
- MS-410 Add resource config comment
- MS-414 Add TaskType in Scheduler::Task
- MS-415 Add command tasktable to dump all tasktables
- MS-418 Update server_config.template file, set CPU compute only default
- MS-419 Move index_file_size from IndexParam to TableSchema
- MS-421 Add TaskLabel in scheduler
- MS-422 Support DeleteTask in Multi-GpuResource case
- MS-428 Add PushTaskByDataLocality in scheduler
- MS-440 Add DumpTaskTables in sdk
- MS-442 Merge Knowhere
- MS-445 Rename CopyCompleted to LoadCompleted
- MS-451 Update server_config.template file, set GPU compute default
- MS-455 Distribute tasks by minimal cost in scheduler
- MS-460 Put transport speed as weight when choosing neighbour to execute task
- MS-459 Add cache for pick function in tasktable
- MS-476 Improve search performance
- MS-482 Change search stream transport to unary in grpc
- MS-487 Define metric type in CreateTable
- MS-488 Improve code format in scheduler
- MS-495 cmake: integrated knowhere
- MS-496 Change the top_k limitation from 1024 to 2048
- MS-502 Update tasktable_test in scheduler
- MS-504 Update node_test in scheduler
- MS-505 Install core unit test and add to coverage
- MS-508 Update normal_test in scheduler
- MS-532 Add grpc server unittest
- MS-511 Update resource_test in scheduler
- MS-517 Update resource_mgr_test in scheduler
- MS-518 Add schedinst_test in scheduler
- MS-519 Add event_test in scheduler
- MS-520 Update resource_test in scheduler
- MS-524 Add some unittest in event_test and resource_test
- MS-525 Disable parallel reduce in SearchTask
- MS-527 Update scheduler_test and enable it
- MS-528 Hide some config used future
- MS-530 Add unittest for SearchTask->Load
- MS-531 Disable next version code
- MS-533 Update resource_test to cover dump function
- MS-523 Config file validation
- MS-539 Remove old task code
- MS-546 Add simple mode resource_config
- MS-570 Add prometheus docker-compose file
- MS-576 Scheduler refactor
- MS-592 Change showtables stream transport to unary
## Feature
- MS-343 Implement ResourceMgr
- MS-338 NewAPI: refine code to support CreateIndex
- MS-339 NewAPI: refine code to support DropIndex
- MS-340 NewAPI: implement DescribeIndex
## Task
- MS-297 disable mysql unit test
# Milvus 0.3.1 (2019-07-10)
## Bug
- MS-148 Disable cleanup if mode is read only
- MS-149 Fixed searching only one index file issue in distributed mode
- MS-153 Fix c_str error when connecting to MySQL
- MS-157 Fix changelog
- MS-190 Use env variable to switch mem manager and fix cmake
- MS-217 Fix SQ8 row count bug
- MS-224 Return AlreadyExist status in MySQLMetaImpl::CreateTable if table already exists
- MS-232 Add MySQLMetaImpl::UpdateTableFilesToIndex and set maximum_memory to default if config value = 0
- MS-233 Remove mem manager log
- MS-230 Change parameter name: Maximum_memory to insert_buffer_size
- MS-234 Some case cause background merge thread stop
- MS-235 Some test cases random fail
- MS-236 Add MySQLMetaImpl::HasNonIndexFiles
- MS-257 Update bzip2 download url
- MS-288 Update compile scripts
- MS-330 Stability test failed caused by server core dumped
- MS-347 Build index hangs again
- MS-382 fix MySQLMetaImpl::CleanUpFilesWithTTL unknown column bug
## Improvement
- MS-156 Add unittest for merge result functions
- MS-152 Delete assert in MySQLMetaImpl and change MySQLConnectionPool impl
- MS-204 Support multi db_path
- MS-206 Support SQ8 index type
- MS-208 Add buildinde interface for C++ SDK
- MS-212 Support Inner product metric type
- MS-241 Build Faiss with MKL if using Intel CPU; else build with OpenBlas
- MS-242 Clean up cmake and change MAKE_BUILD_ARGS to be user defined variable
- MS-245 Improve search result transfer performance
- MS-248 Support AddVector/SearchVector profiling
- MS-256 Add more cache config
- MS-260 Refine log
- MS-249 Check machine hardware during initialize
- MS-261 Update faiss version to 1.5.3 and add BUILD_FAISS_WITH_MKL as an option
- MS-266 Improve topk reduce time by using multi-threads
- MS-275 Avoid sqlite logic error excetion
- MS-278 add IndexStatsHelper
- MS-313 add GRPC
- MS-325 add grpc status return for C++ sdk and modify some format
- MS-278 Add IndexStatsHelper
- MS-312 Set openmp thread number by config
- MS-305 Add CPU core percent metric
- MS-310 Add milvus CPU utilization ratio and CPU/GPU temperature metrics
- MS-324 Show error when there is not enough gpu memory to build index
- MS-328 Check metric type on server start
- MS-332 Set grpc and thrift server run concurrently
- MS-352 Add hybrid index
## Feature
- MS-180 Add new mem manager
- MS-195 Add nlist and use_blas_threshold conf
- MS-137 Integrate knowhere
## Task
- MS-125 Create 0.3.1 release branch
- MS-306 Optimize build efficiency
# Milvus 0.3.0 (2019-06-30)
## Bug
- MS-104 Fix unittest lcov execution error
- MS-102 Fix build script file condition error
- MS-80 Fix server hang issue
- MS-89 Fix compile failed, libgpufaiss.a link missing
- MS-90 Fix arch match incorrect on ARM
- MS-99 Fix compilation bug
- MS-110 Avoid huge file size
## Improvement
- MS-82 Update server startup welcome message
- MS-83 Update vecwise to Milvus
- MS-77 Performance issue of post-search action
- MS-22 Enhancement for MemVector size control
- MS-92 Unify behavior of debug and release build
- MS-98 Install all unit test to installation directory
- MS-115 Change is_startup of metric_config switch from true to on
- MS-122 Archive criteria config
- MS-124 HasTable interface
- MS-126 Add more error code
- MS-128 Change default db path
## Feature
- MS-57 Implement index load/search pipeline
- MS-56 Add version information when server is started
- MS-64 Different table can have different index type
- MS-52 Return search score
- MS-66 Support time range query
- MS-68 Remove rocksdb from third-party
- MS-70 cmake: remove redundant libs in src
- MS-71 cmake: fix faiss dependency
- MS-72 cmake: change prometheus source to git
- MS-73 cmake: delete civetweb
- MS-65 Implement GetTableRowCount interface
- MS-45 Implement DeleteTable interface
- MS-75 cmake: change faiss version to 1.5.2; add CUDA gencode
- MS-81 Fix faiss ptx issue; change cuda gencode
- MS-84 cmake: add arrow, jemalloc and jsoncons third party; default build option OFF
- MS-85 add NetIO metric
- MS-96 add new query interface for specified files
- MS-97 Add S3 SDK for MinIO Storage
- MS-105 Add MySQL
- MS-130 Add prometheus_test
- MS-144 Add nprobe config
- MS-147 Enable IVF
- MS-130 Add prometheus_test
## Task
- MS-74 Change README.md in cpp
- MS-88 Add support for arm architecture
# Milvus 0.2.0 (2019-05-31)
## Bug
- MS-32 Fix thrift error
- MS-34 Fix prometheus-cpp thirdparty
- MS-67 Fix license check bug
- MS-76 Fix pipeline crash bug
- MS-100 CMake: fix AWS build issue
- MS-101 Change AWS build type to Release
## Improvement
- MS-20 Clean Code Part 1
## Feature
- MS-5 Implement Auto Archive Feature
- MS-6 Implement SDK interface part 1
- MS-16 Implement metrics without prometheus
- MS-21 Implement SDK interface part 2
- MS-26 CMake. Add thirdparty packages
- MS-31 CMake: add prometheus
- MS-33 CMake: add -j4 to make third party packages build faster
- MS-27 Support gpu config and disable license build config in cmake
- MS-47 Add query vps metrics
- MS-37 Add query, cache usage, disk write speed and file data size metrics
- MS-30 Use faiss v1.5.2
- MS-54 CMake: Change Thrift third party URL to github.com
- MS-69 Prometheus: add all proposed metrics
## Task
- MS-1 Add CHANGELOG.md
- MS-4 Refactor the vecwise_engine code structure
- MS-62 Search range to all if no date specified