提交 78850289 编写于 作者: Z zhiru

Merge remote-tracking branch 'upstream/branch-0.3.1' into branch-0.3.1


Former-commit-id: b73251efaafaadea801c052f1598f82e3c5852cc
......@@ -62,6 +62,8 @@ Please mark all change in change log and use the ticket from JIRA.
- 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
## Task
- MS-74 - Change README.md in cpp
......
......@@ -142,17 +142,23 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/conf/server_config.template ${CMAKE_C
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/conf/log_config.template ${CMAKE_CURRENT_SOURCE_DIR}/conf/log_config.conf)
#install
install(FILES
scripts/start_server.sh
scripts/stop_server.sh
DESTINATION
scripts)
install(DIRECTORY scripts/
DESTINATION scripts
FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ
WORLD_EXECUTE WORLD_READ
FILES_MATCHING PATTERN "*.sh")
install(FILES
conf/server_config.yaml
conf/log_config.conf
DESTINATION
conf)
install(FILES
./Milvus-EULA-cn.md
./Milvus-EULA-en.md
DESTINATION
license
)
config_summary()
# **Milvus**终端用户授权许可条款及条件
#### 2019-06-30 版
本条款和条件(下称“本协议”)适用于使用由上海赜睿信息科技有限公司(下称“**ZILLIZ**”)所提供的Milvus产品(参见如下定义) 的用户。
**请仔细阅读如下条款:**
**若您(下称“您”或“用户”)代表某公司或者其他机构使用任何产品时, 您特此陈述您作为该公司或该等其他机构的员工或代理,您有权代表该公司或该等其他机构接受本协议项下所要求的全部条款和条件。**
**若使用任何产品,您知晓并同意:**
**(A)您已阅读本协议中所有的条款和条件;**
**(B)您已理解本协议中所有的条款和条件;**
**(C)您已同意本协议中所有条款和条件对您具有法律约束力。**
**如果您不同意本协议所述条款和条件中的任意内容,则可以选择不使用产品的任何部分。**
**本协议的“生效日期”是指您第一次下载任何产品的日期。**
1. **产品**,指本协议项下任何 **ZILLIZ** 的Milvus产品和软件,包括: Milvus向量检索数据库Docker版与其相关的升级、更新、故障修复或修改版本(统称“更新软件”)。无论本协议是否另有规定:
(a)仅Milvus向量检索数据库Docker版是免费授权用户的版本,且ZILLIZ保留收回该授权的权力;
(b)任何使用或者试用Milvus向量检索数据库Docker版的个人与组织,需要通过support@zilliz.com向ZILLIZ告知个人或者组织的身份、联系方式以及使用Milvus的目的。
(c)制作和使用额外的副本仅限于必要的备份目的。
2. **全部协议**,本协议包括本授权许可条款及条件以及任何[Milvus官方网站](https://milvus.io)展示或者网页链接所附或引用的全部条款。本协议是双方就相关事项达成的完整协议,取代 **ZILLIZ** 与用户之间就本条款相关事项所达成的其他任何协议,无论是口头的还是书面的。
3. **使用许可****ZILLIZ** 授予用户非排他性的、不可转让的、非可再授权的、可撤回的和有限的许可进行访问和使用第1条所定义的产品,该访问和使用许可仅限于用户内部使用之目的。通过电子下载或其他经许可的来源获得产品的用户均应受限于本协议的内容。
4. **许可限制**,除非本协议另有明文规定,否则用户将不被允许:
(a)修改、翻译或制造产品的衍生作品;
(b)反向编译、反向工程、破解产品的任何部分或试图发现有关产品的任何源代码、基本理念或运算方法; (c)销售、分派、再授权、出租、出借、出质、提供或另行翻译全部或部分产品;
(d)制造、获取非法制造的、再版或复制产品;
(e)删除或更改与产品相关联的任何商标、标志、版权或其他专有标 ;
(f)不得在没有 **ZILLIZ** 明确书面授权的情况下,使用或许可他人使用产品为第三方提供服务,无论是在产品服务过程中使用或采用分时的方式;
(g)引起或许可任何其他方进行上述任何一种禁止行为。
5. **所有权****ZILLIZ** 和用户在本协议项下的许可需明确,**ZILLIZ** 有以下各项的全部权利、所有权和相关利益:(a)产品(包括但不限于,任何更新软件、修订版本或其衍生作品);
(b)在 **ZILLIZ** 根据本协议提供任何服务的过程中或作为其提供服务的结果,由 **ZILLIZ** 发现、 产生或发展出来的所有的概念、发明、发现、改进、信息、创意作品等;
(c)前述各项所含的任何知识产权权利。在本协议项下,“知识产权”是指在任何管辖区域经申请和注册获得认可和保护的全部专利、版权、道德权利、商标、商业秘密和任何其他形式的权利。**ZILLIZ** 与用户同意,在受限于法律法规规定及本协议全部条款和条件的前提下,用户拥有使用产品而产生的数据的权利、所有权等相关利益。本协议中无任何默示许可,**ZILLIZ** 保留本协议项下未明确授权的全部权利。除非本协议明确约定,**ZILLIZ** 在本协议下未授予用户任何许可权利,无论是通过暗示、默许或其他方式。
6. **保密**,保密信息是指,无论是在本协议生效前或生效后,由 **ZILLIZ** 披露给用户的与本协议或与 **ZILLIZ** 相关的所有信息(无论是以口头、书面或其他有形、无形的形式)。保密信息包括但不限于,商业计划的内容、产品、发明、设计图纸、财务计划、计算机程序、发明、用户信息、战略和其他类似信息。在本协议期限内,除非获得明确许可, 用户需保证保密信息的秘密性,并确保不会使用上述保密信息。用户将采用与保护其自身保密信息的同等谨慎程度(不论在何种情况下均不低于合理的谨慎程度)来保护 **ZILLIZ** 的保密信息,来避免使得保密信息被未经授权的使用和披露。保密信息只供用户根据本协议规定使用产品之目的而使用。此外,用户将:
(a)除非用户为了根据本协议的规定而使用产品之目的外,不得以任何形式复制、使用或披露保密信息; (b)只向为确保用户可根据本协议使用产品而必需知道该保密信息的员工和顾问披露保密信息,前提是上述员工和顾问已签署了包含保密义务不低于本条所述内容的保密协议。
保密信息不包括下列信息:
(a) 非因用户过错违反本协议导致已进入公共领域可被第三方获取的;
(b) 用户能合理证明其在通过 **ZILLIZ** 获得之前已知晓的;
(c)用户能证明没有使用或参考该保密信息而独立获得的;
(d)用户从其他无披露限制或无保密义务的第三方获得的。如无另行说明,由用户提供给 **ZILLIZ** 有关产品的任何建议、评论或者其他反馈(统称“反馈信息”)将同样构成保密信息。
此外,**ZILLIZ** 有权使用、披露、复制、许可和利用上述反馈信息,而无需承担任何知识产权负担或其他任何形式的义务或限制。根据相关法律法规,与本协议的履行和用户使用 **ZILLIZ** 产品相关的情况下:
(a)**ZILLIZ** 同意不会要求用户提供任何个人身份信息;
(b)用户同意不提供任何个人身份信息给 **ZILLIZ**
7. **免责声明**,用户陈述、保证及承诺如下:
(a)其所有员工和顾问都将遵守本协议的全部条款;
(b)在履行本协议时将遵守全部可适用的政府部门颁发的法律、法规、规章、命令和其他要求(无论是现行有效还是之后生效的)。
无论本协议是否另有规定,用户将持续对其雇员或顾问的全部作为或不作为承担责任,如同该等作为或不作为系其自身所为。
产品系按照原状或现状提供给用户,不含任何形式的陈述、保证、 承诺或条件。**ZILLIZ** 及其供应商不保证任何产品将无任何故障、错误或漏洞。**ZILLIZ** 和其供应商不为产品的如下内容提供任何陈述和保证(无论是明示或暗示,口头或书面),不论该内容是否依据法律之规定,行业惯例,交易习惯或其他原因而要求的:
(a)保证适销性;
(b)保证可适用于任何目的(不论 **ZILLIZ** 是否知晓、应当知晓、被建议或另行得知该目的);
(c)保证不侵权和拥有全部所有权。用户已明确知悉并同意产品上无任何陈述和保证。此外,鉴于进行入侵和网络攻击的新技术在不断发展,**ZILLIZ** 并不保证产品或产品所使用的系统或网络将免于任何入侵或攻击。
8. **损害赔偿**,用户应赔偿、保护或使得 **ZILLIZ** 及其董事、高管、 雇员、供应商、顾问、承包商和代理商(统称为“**ZILLIZ **受保障方”)免受所有现存或潜在的针对 **ZILLIZ** 受保障方因提起请求、诉讼或其他程序而引起的要求其赔偿损害损失、支付费用、罚款、调解、 损失费用等支出(包括但不限于律师费、费用、罚款、利息和垫付款),用户承担上述责任的前提是该请求、诉讼或其他程序,不论是否成功系在如下情况发生时导致、引起的,或以任何形式与下述情况相关:
(a)任何对本协议的违反(包括但不限于,任何违反用户陈述和保证或约定的情况);
(b)用户过失或故意产生的过错行为;
(c)引起争议的数据和信息系在产品的使用过程中产生或收集的。
9. **责任限制**,除了 **ZILLIZ** 存在欺诈或故意的过错行为,在任何情况下:
(a)**ZILLIZ** 都不会赔偿用户或任何第三方的因本协议或产品(包括用户使用或无法使用产品的情况)而遭受的任何利润损失、数 据损失、使用损失、收入损失、商誉损失、任何经营活动的中断,任何其他商业损害或损失,或任何间接的、特殊的、附带的、惩戒性、惩罚性或伴随的损失,不论上述损失系因合同、侵权、严格责任或其他原因而确认的,即使 **ZILLIZ** 已被通知或因其他可能的渠道知晓上述损失发生的可能性;
(b)**ZILLIZ** 因本协议所需承担的全部赔偿责任不应超过用户已支付或将支付给 **ZILLIZ** 的全部款项总额(若有),多项请求亦不得超过该金额限制。上述限制、排除情况及声明应在相关法律允许的最大范围内得以适用,即便任何补偿无法达到其实质目的。
10. **第三方供应商**,产品可能包括由第三方供应商许可提供的软件或其他代码(下称“第三方软件”)。用户已知悉第三方供应商不对产品或其任何部分提供任何陈述和保证,**ZILLIZ** 不承担因产品或用户对第三方软件的使用或不能使用的情况而产生的任何责任。
11. **诊断和报告**,用户了解并同意该产品包含诊断功能作为其默认配置。 诊断功能用于收集有关使用环境和产品使用过程中的配置文件、节点数、 软件版本、日志文档和其他信息,并将上述信息报告给 **ZILLIZ** 用于提前识别潜在的支持问题、了解用户的使用环境、并提高产品的使用性能。虽然用户可以选择更改诊断功能来禁用自动定时报告或仅用于报告服务记录,但用户需同意,每季度须至少运行一次诊断功能并将结果报告给**ZILLIZ**
12. **终止**,本协议期限从生效之日起直到 **ZILLIZ** 网站规定的期限终止,除非本协议因用户违反本协议中条款而提前终止。无论本协议是否另有规定,在用户存在违反第3、4、5或7条时,**ZILLIZ**有权立即终止本协议。本协议期满或提前终止时:
(a)根据本协议所授予给用户的所有权利将立即终止,在此情况下用户应立即停止使用产品;
(b) 用户应及时将届时仍由其占有的所有保密信息及其副本(包括但不限于产品)交还给 **ZILLIZ**,或根据 **ZILLIZ** 的自行审慎决定及指示, 销毁该等保密信息全部副本,未经 **ZILLIZ** 书面同意,用户不得擅自保留任何由 **ZILLIZ** 提供的保密信息及其副本。
13. **第三方资源****ZILLIZ** 供应的产品可能包括对其他网站、内容或资源的超链接(下称“第三方资源”),且 **ZILLIZ** 此类产品的正常使用可能依赖于第三方资源的可用性。**ZILLIZ** 无法控制任何第三方资源。用户承认并同意,**ZILLIZ** 不就第三方资源的可用性及安全性承担任何责任,也不对该等第三方资源所涉及的或从其中获得的任何广告、产品或其他材料提供保证。用户承认并同意,**ZILLIZ** 不应因第三方资源的可用性及安全性、或用户依赖于第三方资源所涉及的或从其中获得的任何广告、产品或其他材料的完整性、准确性及存续而可能遭受的损失或损害承担任何责任。
14. **其他**,本协议全部内容均在中华人民共和国境内履行,受中华人民共和国法律管辖并根据其解释(但不适用相关冲突法的法律条款)。用 **ZILLIZ** 同意与本协议有关的任何争议将向上海市徐汇区人民法院提出,且不可撤销无条件的同意上述法院对因本协议提起的全部诉讼、争议拥有排他的管辖权。一旦确定任何条款无效、非法或无法执行, **ZILLIZ** 保留修改和解释该条款的权利。任何需要发送给用户的通知如公布在 **ZILLIZ** 的网站上则被视为已有效、合法地发送给用户。除了本合同项下应支付款项的义务外,任何一方将不对因不可抗力而导致的无法合理控制的全部或部分未能履行或延迟履行本协议的行为负责, 不可抗力包括但不限于火灾、暴风雨、洪水、地震、内乱、电信中断、 电力中断或其他基础设施的中断、**ZILLIZ** 使用的服务提供商存在问题导致服务中断或终止、罢工、故意毁坏事件、电缆被切断、病毒入侵或其他任意第三方故意或非法的行为引起的其他类似事件。在上述迟延履行情况出现时,可延迟履行协议的时间为因上述原因引起的延迟时间。 本协议另有明确规定外,本协议所要求或认可的通知或通讯均需以书面形式经一方有权代表签署或授权并以直接呈递、隔夜快递,经确认的电子邮件发送,经确认的传真或邮寄挂号信、挂号邮件保留回单等方式送达。对本协议的任何修改、补充或删除或权利放弃,必须通过书面由双方适当授权的代表签署确认后方为有效。任何一方对任何权利或救济的不履行或迟延履行(部分或全部)不构成对该等权利或救济的放弃,也不影响任何其他权利或救济。本协议项下的所有权利主张和救济均可为累积的且不排除本协议中包含的或法律所规定的其他任何权利或救济。 对本协议中任何一项违约责任的豁免或延迟行使任何权利,并不构成对其他后续违约责任的豁免。
\ No newline at end of file
# ZILLIZ End-User License Agreement
#### Last updated: 2019-06-30
This End-user License Agreement ("Agreement") is applicable to all users who uses Milvus provided by ZILLIZ company.
**Please read this agreement carefully before clicking the I Agree button, downloading or using this Application.**
**If you ("You" or "User") use any product on behalf of a company or other organization, you hereby state that you are an employee or agent of the company or such other institution, and you have the right to represent the company or such institutions to accept all the terms and conditions required under this Agreement. **
**If you use any product, you acknowledge and agree:**
**(A) You have read all the terms and conditions in the Agreement;**
**(B) You have understand all the terms and conditions in the Agreement;**
**(C) You have agreed that all the terms and conditions of this Agreement are legally binding on you.**
**If you do not agree to any of the terms and conditions set forth in this Agreement, you may choose not to use any part of the product.**
**This agreement takes effect immediately the first time you download the application**.
1. **Product**. In this Agreement, it refers to Milvus and other related software products of **ZILLIZ**, including Milvus vector indexing database and its updates, higher versions, maintenance or patch releases ("Updated Software").
(a) Only the Docker version of Milvus vector indexing database is granted free to the User. **ZILLIZ** retains the right to revoke this grant;
(b) Any person or organization that intend to use or try the Docker version of Milvus vector indexing database need to inform **ZILLIZ** of the personal identity, contact information and purposes of using the Product by sending an email to: support@zilliz.com;
(c)Making or using additional copy of the Product is only restricted to necessary copy purposes.
2. **Related Agreements**. The Related Agreements includes this Agreement and all other related terms and conditions that appear in [Milvus official website](https://milvus.io). This Agreement is the entire and final agreement that replaces all other terms agreed between the User and **ZILLIZ** about issues listed here, oral or written.
3. **License Grant**. **ZILLIZ** grant You a revocable, non-exclusive, non-transferable limited right to install and use the Application defined above for your personal, non-commercial purposes. The User who uses the Application through downloading and other permitted channels are also subject to this Agreement;
4. **Restrictions on Use.** You shall use the Application in accordance with the terms in the Agreement, and shall not:
(a)Make any modification, translation or derivative work from the Application;
(b)Decompile, reverse engineer, disassemble, attempt to derive the source code or algorithm of the Application;
(c)Sell, distribute, license re-granting or provide translation of the whole or part of the Application;
(d)Use the Application for creating a product, service or software.
(e)Remove, alter or obscure any proprietary notice, trademark, or copyright of the Company and Application;
(f)Install or use the Application to provide service to third-party partners, without acquiring formal grant of **ZILLIZ** ;
(g)Perform or permit any behaviors that might lead to one of the above prohibited actions.
5. **Ownership**. **ZILLIZ** enjoys the ownership of the following:
(a)Products (includes but is not restricted to any updated software, patch releases, or derivative products);
(b)All concepts, innovations, discoveries, improvements, information, or creative products developed and discovered by **ZILLIZ** as a result of or arising out of the service providing process;
(c)Intellectual property rights of the above mentioned products and innovations. In this Agreement, "Intellectual Property" refers to trademarks, patents, designations of origin, industrial designs and models and copyright. **ZILLIZ** and the User agree that the User enjoy all the rights to use data produced by using the Product, while **ZILLIZ** keeps all other rights not explicitly stated in the Agreement. Unless otherwise stated, **ZILLIZ** has not granted any additional rights to Users, either implied, acquiesced or in other ways.
6. **Non-disclosure**. Confidential Information refers to any and all information revealed to the User by **ZILLIZ**, either oral or written, tangible or intangible, before or after the Agreement takes effect. Confidential information includes but is not restricted to business plans and strategies, product, innovations, design papers, financial plans, computer programs, User information, etc. Within the term of this Agreement, unless granted definite permission, the User shall hold and maintain the Confidential Information in strictest confidence for the sole and exclusive benefit of **ZILLIZ** and using the Product. In addition:
(a)You shall not copy, use or disclose Confidential Information for purposes other than using the Product agreed in this Agreement;
(b)You shall carefully restrict access to Confidential Information to employees, contractors, and third parties as is reasonably required and shall require those persons to sign nondisclosure restrictions at least as protective as those in this Agreement.
Confidential Information does not include:
(a)Information that can be obtained by third-parties not due to User's violation of the Agreement;
(b)Information that can be proven to be provided to Users not by **ZILLIZ** ;
(c) Information that are obtained with no reference to Confidential Information;
(d)Information the User gets from third-parties that are not subject to non-disclosure agreement. Unless otherwise stated, any comments, suggestions or other feedback ("Feedback Information") about the Product by the User to **ZILLIZ** will also be counted as Confidential Information.
Furthermore, **ZILLIZ** has the right to use, disclose, copy or use above Feedback Information, and bearing no intellectual property burden or restrictions. According to related laws and regulations, during the fulfillment of this Agreement:
(a)**ZILLIZ** agree not to require the User to provide any information regarding personal identities;
(b)The User agree not to provide **ZILLIZ** with any personal information.
7. **Disclaimer of Warranties**. You acknowledge, agree and promise that:
(a) All employees and consultants will obey all terms in the Agreement;
(b)Application of the Agreement is subject to all laws, terms, acts, commands and other requirements issued by the government (no matter these laws are in effect now or will be effective in the future).
The User shall be held responsible for all the behaviors in relation to the Application.
The Application is provided on an "As is" or "As available" basis, and that You use or reliance on the Application is at your sole risk and discretion. **ZILLIZ** and its partners make no warranty that the Application will meet all Your requirements and expectations.
**ZILLIZ** and its suppliers hereby disclaim any and all representations, warranties and guaranties regarding the Application, whether expressed, implied or statutory:
(a)The implied warranty of merchantability;
(b)Fitness for a particular purpose;
(c)Non-infringement.
Further more, considering the continuous advancement of Internet hacking and attaching technologies, **ZILLIZ** make no guarantee that the Application or the systems and Internet it uses will be exempt from any hack or attack.
8. **Damages and Penalties**. The User shall pay, protect or prevent **ZILLIZ** and its board members, executives, employees, consultants or representative agencies (**ZILLIZ** Protected Party) from any existing or potential damage loss, fees, penalties and other outgoing payments (include but are not limited to lawyer fees, fines, interests and advance payment) arising out of legal request, litigation or other processes. The prerequisite condition of the above obligations are that the legal request, litigation or process are caused by any of the following situations:
(a)Any violation of the Agreement;
(b)User fault or deliberate behavior;
(c)Controversial data is produced or collected during the usage of the Product.
9. **Limitation of Liability**. Unless due to deliberate fraud or error from **ZILLIZ**, below terms are applicable:
(a)Under no circumstances shall **ZILLIZ** be held liable for any profit loss, data loss, revenue loss, termination of operations, any indirect, special, exemplary or consequential damages arising out or in connection with Your access or use of the Application;
(b)Without limiting the generality of the foregoing, **ZILLIZ**'s aggregate liability to You shall not exceed the total amount of money You already paid or will pay to **ZILLIZ** (if any).
10. **Third-party Suppliers**. The User acknowledge that no statement and guarantee should be expected from Third-party Suppliers about the Product or its components. **ZILLIZ** hold no obligations to the Users' usage of the softwares provided by third-party Suppliers.
11. **Diagnosis and Report**. The User know and agree that Diagnosis is part of the configuration of the Product. Diagnosis is used to collect the configuration files, node numbers, software version, logs and related information, and send a Report to **ZILLIZ** to recognize potential support problems, get to know User environment, and to enhance product features. Although You can choose to turn off the Diagnosis function of automatic report sending, however, You shall run the Diagnosis at least once every quarter and send the Report to **ZILLIZ**.
12. **Termination of Licensing**. This Agreement is valid from the day it takes effect to the termination dated defined in **ZILLIZ** website, unless the User has disobeyed the terms and caused the Agreement to end in advance. Whether or not listed, if the User has violated terms in Clause 3, 4, 5 or 7, **ZILLIZ** may, in its sole and absolute discretion, terminate this License and the rights afforded to You. Upon the expiration or termination of the License:
(a)All rights afforded to the User based upon this Agreement will be terminated. You shall ease use of the Product and uninstall related software;
(b)The User shall return all confidential information and the copy (includes but not restricted to Product) back to **ZILLIZ**, or destroy all copy of confidential information on permission of **ZILLIZ**. Without the written approval of **ZILLIZ**, the User is not allowed to keep any confidential information or its copy provided by **ZILLIZ**.
13. **Third-party Resources**. Products supplied by **ZILLIZ** may include hyperlinks to other websites, content or resources ("Third Party Resources"), and the normal use of such products may depend on the availability of third party resources. **ZILLIZ** is unable to control any third-party resources. The User acknowledges and agrees that **ZILLIZ** is not responsible for the availability and security of third-party resources and does not guarantee any advertising, products or other materials that are or are derived from such third party resources. The User acknowledges and agrees that **ZILLIZ** shall not hold obligations about any liability for loss or damage that may be suffered due to the availability and security of third party resources, or the integrity or accuracy of any advertisements, products or other materials that the User relies on or obtains from third party resources.
14. **Other**. The entire contents of this Agreement are performed within the territory of the People's Republic of China and are governed by and construed in accordance with the laws of the People's Republic of China (but not applicable to the relevant conflict laws). **ZILLIZ** agrees that any disputes relating to this Agreement will be submitted to the Xuhui District People's Court of Shanghai, and irrevocably and unconditionally agree that the above courts have exclusive jurisdiction over all litigations and disputes brought about by this Agreement. Once it is determined that any provision is invalid, illegal or unenforceable, **ZILLIZ** reserves the right to modify and interpret the terms. Any notice that needs to be sent to the user, if posted on the **ZILLIZ** website, is deemed to have been validly and legally sent to the user. Except for the obligation to pay under this contract, neither party will be liable for failure to perform or delayed performance of this Agreement in whole or in part due to force majeure. The force majeure includes but is not limited to fire, storm, flood , earthquake, civil strife, telecommunications disruption, power outage or other infrastructure disruption, service interruption or termination caused by **ZILLIZ** service provider problems, strikes, intentional destruction events, cable cuts, virus intrusion or any other similar incidents caused by intentional or illegal acts by third parties. In the case of the above-mentioned delayed performance, the delay in fulfilling the agreement may be the delay time due to the above reasons. Unless otherwise stated in this Agreement, notices or communications required or endorsed by this Agreement must be signed or authorized in writing by a party, and delivered by direct delivery, overnight delivery, confirmed email, confirmed fax or by mailing a registered letter, registered mail, and returning the order, etc. Any modification, addition or deletion or waiver of this Agreement must be confirmed by a written confirmation by a suitably authorized representative of both parties. The non-performance or delay in the performance of any right or remedy by any party (partially or wholly) does not constitute a waiver of such rights or remedies, nor does it affect any other rights or remedies. All claims and remedies under this Agreement may be cumulative and do not exclude any other rights or remedies contained in this Agreement or as required by law. Exemption from the waiver or delay of any liability for breach of contract in this Agreement does not constitute an exemption from other subsequent breach of contract obligations.
\ No newline at end of file
......@@ -30,4 +30,7 @@ license_config: # license configure
license_path: "@MILVUS_DB_PATH@/system.license" # license file path
cache_config: # cache configure
cpu_cache_capacity: 16 # how many memory are used as cache, unit: GB, range: 0 ~ less than total memory
\ No newline at end of file
cpu_cache_capacity: 16 # how many memory are used as cache, unit: GB, range: 0 ~ less than total memory
engine_config:
nprobe: 10
\ No newline at end of file
......@@ -7,23 +7,39 @@
#include "FaissExecutionEngine.h"
#include "Log.h"
namespace zilliz {
namespace milvus {
namespace engine {
ExecutionEnginePtr
EngineFactory::Build(uint16_t dimension,
const std::string& location,
EngineType type) {
switch(type) {
case EngineType::FAISS_IDMAP:
return ExecutionEnginePtr(new FaissExecutionEngine(dimension, location, "IDMap", "IDMap,Flat"));
case EngineType::FAISS_IVFFLAT:
return ExecutionEnginePtr(new FaissExecutionEngine(dimension, location, "IVF", "IDMap,Flat"));
default:
ENGINE_LOG_ERROR << "Unsupportted engine type";
const std::string &location,
EngineType type) {
ExecutionEnginePtr execution_engine_ptr;
switch (type) {
case EngineType::FAISS_IDMAP: {
execution_engine_ptr =
ExecutionEnginePtr(new FaissExecutionEngine(dimension, location, "IDMap", "IDMap,Flat"));
break;
}
case EngineType::FAISS_IVFFLAT: {
execution_engine_ptr =
ExecutionEnginePtr(new FaissExecutionEngine(dimension, location, "IVF", "IDMap,Flat"));
break;
}
default: {
ENGINE_LOG_ERROR << "Unsupported engine type";
return nullptr;
}
}
execution_engine_ptr->Init();
return execution_engine_ptr;
}
}
......
......@@ -50,6 +50,8 @@ public:
virtual std::shared_ptr<ExecutionEngine> BuildIndex(const std::string&) = 0;
virtual Status Cache() = 0;
virtual Status Init() = 0;
};
using ExecutionEnginePtr = std::shared_ptr<ExecutionEngine>;
......
......@@ -13,6 +13,7 @@
#include <wrapper/Index.h>
#include <wrapper/IndexBuilder.h>
#include <cache/CpuCacheMgr.h>
#include "faiss/IndexIVF.h"
#include "metrics/Metrics.h"
......@@ -135,7 +136,16 @@ Status FaissExecutionEngine::Search(long n,
float *distances,
long *labels) const {
auto start_time = METRICS_NOW_TIME;
pIndex_->search(n, data, k, distances, labels);
std::shared_ptr<faiss::IndexIVF> ivf_index = std::dynamic_pointer_cast<faiss::IndexIVF>(pIndex_);
if(ivf_index) {
ENGINE_LOG_DEBUG << "Index type: IVFFLAT nProbe: " << nprobe_;
ivf_index->nprobe = nprobe_;
ivf_index->search(n, data, k, distances, labels);
} else {
pIndex_->search(n, data, k, distances, labels);
}
auto end_time = METRICS_NOW_TIME;
auto total_time = METRICS_MICROSECONDS(start_time,end_time);
server::Metrics::GetInstance().QueryIndexTypePerSecondSet(build_index_type_, double(n)/double(total_time));
......@@ -149,6 +159,24 @@ Status FaissExecutionEngine::Cache() {
return Status::OK();
}
Status FaissExecutionEngine::Init() {
if(build_index_type_ == "IVF") {
using namespace zilliz::milvus::server;
ServerConfig &config = ServerConfig::GetInstance();
ConfigNode engine_config = config.GetConfig(CONFIG_ENGINE);
nprobe_ = engine_config.GetInt32Value(CONFIG_NPROBE, 1000);
} else if(build_index_type_ == "IDMap") {
;
} else {
return Status::Error("Wrong index type: ", build_index_type_);
}
return Status::OK();
}
} // namespace engine
} // namespace milvus
......
......@@ -6,14 +6,11 @@
#pragma once
#include "ExecutionEngine.h"
#include "faiss/Index.h"
#include <memory>
#include <string>
namespace faiss {
class Index;
}
namespace zilliz {
namespace milvus {
namespace engine {
......@@ -58,12 +55,16 @@ public:
Status Cache() override;
Status Init() override;
protected:
std::shared_ptr<faiss::Index> pIndex_;
std::string location_;
std::string build_index_type_;
std::string raw_index_type_;
size_t nprobe_ = 0;
};
......
......@@ -26,7 +26,7 @@ using namespace zilliz::milvus;
int
main(int argc, char *argv[]) {
std::cout << std::endl << "Welcome to use Milvus by Zillz!" << std::endl;
std::cout << std::endl << "Welcome to use Milvus by Zilliz!" << std::endl;
std::cout << "Milvus " << BUILD_TYPE << " version: v" << MILVUS_VERSION << " built at " << BUILD_TIME << std::endl;
signal(SIGINT, server::SignalUtil::HandleSignal);
......
......@@ -43,6 +43,9 @@ static const std::string CONFIG_METRIC_COLLECTOR = "collector";
static const std::string CONFIG_PROMETHEUS = "prometheus_config";
static const std::string CONFIG_METRIC_PROMETHEUS_PORT = "port";
static const std::string CONFIG_ENGINE = "engine_config";
static const std::string CONFIG_NPROBE = "nprobe";
class ServerConfig {
public:
static ServerConfig &GetInstance();
......
......@@ -13,6 +13,9 @@
#include "Index.h"
#include "faiss/index_io.h"
#include "faiss/IndexIVF.h"
#include "faiss/IVFlib.h"
#include "server/ServerConfig.h"
namespace zilliz {
namespace milvus {
......
......@@ -29,3 +29,6 @@ license_config: # license configure
cache_config: # cache configure
cpu_cache_capacity: 16 # how many memory are used as cache, unit: GB, range: 0 ~ less than total memory
engine_config:
nprobe: 3000
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册