From 302547a00c5bc24124471a513013529e553dfc43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A3=B4=E7=90=B3=E5=80=A9?= <576703774@qq.com> Date: Mon, 3 Mar 2025 22:03:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=91=E9=87=8FPQ=E7=B4=A2=E5=BC=95=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...13\350\257\225\346\212\245\345\221\212.md" | 135 +++++++++--------- 1 file changed, 69 insertions(+), 66 deletions(-) diff --git "a/Test_Result/openGauss_7.0.0_RC1/\345\206\205\346\240\270\345\212\240\351\200\237/IVF-PQ\347\264\242\345\274\225\347\256\227\346\263\225\346\224\257\346\214\201\357\274\214\350\236\215\345\220\210PQ\350\267\235\347\246\273\350\256\241\347\256\227\345\212\240\351\200\237\347\256\227\346\263\225\346\265\213\350\257\225\346\212\245\345\221\212.md" "b/Test_Result/openGauss_7.0.0_RC1/\345\206\205\346\240\270\345\212\240\351\200\237/IVF-PQ\347\264\242\345\274\225\347\256\227\346\263\225\346\224\257\346\214\201\357\274\214\350\236\215\345\220\210PQ\350\267\235\347\246\273\350\256\241\347\256\227\345\212\240\351\200\237\347\256\227\346\263\225\346\265\213\350\257\225\346\212\245\345\221\212.md" index 66f06a7..ce27332 100644 --- "a/Test_Result/openGauss_7.0.0_RC1/\345\206\205\346\240\270\345\212\240\351\200\237/IVF-PQ\347\264\242\345\274\225\347\256\227\346\263\225\346\224\257\346\214\201\357\274\214\350\236\215\345\220\210PQ\350\267\235\347\246\273\350\256\241\347\256\227\345\212\240\351\200\237\347\256\227\346\263\225\346\265\213\350\257\225\346\212\245\345\221\212.md" +++ "b/Test_Result/openGauss_7.0.0_RC1/\345\206\205\346\240\270\345\212\240\351\200\237/IVF-PQ\347\264\242\345\274\225\347\256\227\346\263\225\346\224\257\346\214\201\357\274\214\350\236\215\345\220\210PQ\350\267\235\347\246\273\350\256\241\347\256\227\345\212\240\351\200\237\347\256\227\346\263\225\346\265\213\350\257\225\346\212\245\345\221\212.md" @@ -31,12 +31,13 @@ ### 2.1.1 被测版本 -| 版本名称 | 软件包名称 | 测试起始时间 | 测试结束时间 | 测试人员 | -| ----------------------------------- | ---------- | ------------ | ------------ | ---------- | -| openGauss 7.0.0-RC1 build 807fd476 | openGauss | 2025-2-1 | 2025-2-13 | peilinqian | -| openGauss 7.0.0-RC1 build 7e79432c | openGauss | 2025-2-20 | 2025-2-25 | peilinqian | -| openGauss 7.0.0-RC1 build 6309f4cb | openGauss | 2024-2-26 | 2025-2-28 | peilinqian | -| BoostKit 25.0.RC1 | Boostkit | 2025-2-20 | 2025-2-28 | peilinqian | +| 版本名称 | 软件包名称 | 测试起始时间 | 测试结束时间 | 测试人员 | +| ---------------------------------- | ---------- | ------------ | ------------ | ---------- | +| openGauss 7.0.0-RC1 build a44948f6 | openGauss | 2025-12-23 | 2025-12-25 | peilinqian | +| openGauss 7.0.0-RC1 build 7e79432c | openGauss | 2025-2-20 | 2025-2-25 | peilinqian | +| openGauss 7.0.0-RC1 build 6309f4cb | openGauss | 2024-2-26 | 2025-2-28 | peilinqian | +| Boostkit 24.0.T15.B011 | Boostkit | 2025-2-20 | 2025-2-25 | peilinqian | +| BoostKit 25.0.RC1 | Boostkit | 2025-2-20 | 2025-2-28 | peilinqian | ## 2.2 测试环境描述 @@ -79,13 +80,9 @@ ### 4.1.1 新需求质量评价 -*建议以表格的形式汇总本阶段新特性的商用化建议(此章节除了考虑可靠性、性能、开源等风险评估之外,还需考虑基础特性安全与隐私风险),如下表格所示。* - -*下表仅供参考,不作为强制输出方式。* - -| 特性 | 特性价值评估 | 应用说明及关键约束假设依赖 | 关键遗留事项如缺陷等 | 测试整体覆盖情况 | 特性质量评估 | 主要风险 | -| ---- | ------------------------ | -------------------------- | ---------------------------------- | ---------------------------- | ----------------------------------------------------- | --------------------- | -| PQ | PQ索引功能正常,性能达标 | 需要加载boostkit插件 | IVFPQ索引残差特性开启会导致dml卡死 | 功能、可靠性、性能覆盖完成。 | | 暂时存在功能bug待解决 | +| 特性 | 特性价值评估 | 应用说明及关键约束假设依赖 | 关键遗留事项如缺陷等 | 测试整体覆盖情况 | 特性质量评估 | 主要风险 | +| ------------------------------------------ | ------------------------------------------------------------ | ---------------------------------- | -------------------- | ---------------------------------- | ----------------------------------------------------- | --------------------- | +| IVF-PQ索引算法支持,融合PQ距离计算加速算法 | 乘积量化(Product Quantization, PQ)是一种基于高效压缩高维向量的方法,适用于大规模数据集的相似度搜索。通过将高维向量分割成为多个低维子向量,并对每个子向量进行独立聚类,将原始向量表示为一系列质心,从而显著减少内存使用和提升检索速度。 | 安装完数据库后需要加载boostkit插件 | | 功能、可靠性、性能、资料覆盖完成。 | | 暂时存在功能bug待解决 | *特性质量评估说明*: @@ -99,7 +96,7 @@ ### 4.2.1 功能测试结论 -索引创建、修改、dml交互测试功能正常。 +索引创建、修改、重建、与dml交互测试、索引检索及索引检索Guc参数交互测试功能正常。 ### 4.2.2 性能测试结论 @@ -122,7 +119,12 @@ EMR8558P操作系统;openEuler 22.03LTS SP3,编译器:GCC10.3,python:3.1 ### 4.2.3 可靠性测试结论 -索引构建、重建、修改、检索过程进行故障注入,功能正常抛错、数据库状态正常 +| 测试场景 | 测试结果 | +| ------------------------------------------------------------ | -------- | +| 构建索引、重建索引过程主机注入kill-9、kill-19、kill-2、重启switchover等故障,验证合理报错,恢复数据库再次执行成功 | | +| 构建索引、重建索引过程备机注入kill-9、kill-19、重启switchover等故障,验证主机SQL执行正常,恢复数据库后,备机进行索引查询功能正常 | | +| 存在索引场景下循环进行增删改数据过程注入kill-9、kill-19、kill-2、数据库重启,验证合理报错,恢复数据库后再次执行功能正常、主备数据一致 | | +| 存在索引场景下使用索引查询过程注入kill-9、kill-2、重启数据库、或同时进行reindex,异常场景合理报错,恢复故障后,数据库功能正常 | | ### 4.2.4 安全&隐私保护测试结论 @@ -150,72 +152,64 @@ EMR8558P操作系统;openEuler 22.03LTS SP3,编译器:GCC10.3,python:3.1 ## 4.3 资料测试结论 -| 序号 | 测试章节 | 测试结论 | -| ---- | -------- | ----------------------------- | -| 1 | | *整体质量良好/一般/较差,存在 | -| | | | +| 序号 | 测试章节 | 测试结论 | +| ---- | ---------------------------------------------------------- | ------------ | +| 1 | 文档地图>关于openGauss>特性描述>企业级特性>DataVec向量引擎 | 整体质量良好 | +| 2 | 文档地图>数据库参考>GUC参数说明>DataVec向量引擎参数 | 整体质量良好 | +| 3 | 文档地图>简易教程>高级特性>PQ | 整体质量良好 | # 5 测试对象质量评估 -*本章节对被测对象的质量进行评估,主要从需求覆盖、场景覆盖等情况和缺陷发现的情况进行分析,目的是审视被测试的充分性和完备性,以说明上述测试结论的可信。* - ## 5.1 覆盖率分析 *对测试的覆盖率进行分析,根据版本具体覆盖策略给出相应覆盖率分析,如需求覆盖情况、代码覆盖情况、场景覆盖等。根据产品覆盖策略给出覆盖率统计,对于覆盖率异常情况给出分析和后续措施。* ## 5.2 缺陷统计和分析 -*给出各特性或模块缺陷的分布或分类统计以及缺陷走势分析。建议通过表格说明,下表仅供参考,不作为强制输出方式* - ### 5.2.1 缺陷统计 -| | 问题总数 | 严重 | 主要 | 次要 | 不重要 | -| ------ | -------- | ---- | ---- | ---- | ------ | -| 数目 | 7 | | | | | -| 百分比 | | | | | | +| | 问题总数 | 严重 | 主要 | 次要 | 不重要 | +| ------ | -------- | ---- | ----- | ----- | ------ | +| 数目 | 8 | 0 | 5 | 3 | 0 | +| 百分比 | 100% | 0% | 62.5% | 37.5% | 0% | ### 5.2.2 缺陷列表 -| 问题单号 | 问题描述 | 问题级别 | 当前状态 | -| -------- | -------- | -------- | -------- | -| | | | | +| 问题单号 | 问题描述 | 问题级别 | 当前状态 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | -------- | -------- | +| [IBPAF3](https://gitee.com/opengaussorg/dashboard?issue_id=IBPAF3) | 【测试类型:资料】【测试版本:7.0.0】 DATAVEC PQ相关资料链接失效、页面缩进格式需要调整、部分说明需要增加 | 次要 | 待办的 | +| [IBOUP5](https://gitee.com/opengaussorg/dashboard?issue_id=IBOUP5) | 【测试类型:SQL功能】【测试版本:7.0.0】 ivfpq索引选项by_residual为on的情况下,update、insert数据产生lwlock deadlock后FATAL | 主要 | 待办的 | +| [IBNVZ0](https://gitee.com/opengaussorg/dashboard?issue_id=IBNVZ0) | 【测试类型:资料】【测试版本:7.0.0】 IVFPQ索引选项lists为200,查询参数ivfflat_probes为200的情况下,查询召回率为0或者极低 | 主要 | 已验收 | +| [IBNP8Q](https://gitee.com/opengaussorg/dashboard?issue_id=IBNP8Q) | 【测试类型:SQL功能】【测试版本:7.0.0】 PQ向量索引查询极低概率会出现“ERROR: could not open file "base/15018/59217.1" (target block 327686): No such file or directory” | 次要 | 待办的 | +| [IBMRPT](https://gitee.com/opengaussorg/dashboard?issue_id=IBMRPT) | 【测试类型:资料】【测试版本:7.0.0】 PQ索引已支持IVFPQ,但是“DataVec向量引擎”页面资料未更新资料。PQ索引创建数据量小于pq_ksub值会NOTICE提示召回率低,建议资料增加说明约束 | 次要 | 已验收 | +| [IBMR9S](https://gitee.com/opengaussorg/dashboard?issue_id=IBMR9S) | 【测试类型:SQL功能】【测试版本:7.0.0】 使用HNSWPQ,内积距离索引查询召回率为0 | 主要 | 已验收 | +| [IBLNZ1](https://gitee.com/opengaussorg/dashboard?issue_id=IBLNZ1) | 【测试类型:SQL功能】【测试版本:7.0.0】 hnswpq索引,在高维度场景下,创建索引选项pq_m值较大会出现failed,执行失败 | 主要 | 已验收 | +| [IBGJGG](https://gitee.com/opengaussorg/dashboard?issue_id=IBGJGG) | 【测试类型:SQL功能】【测试版本:7.0.0】 enable_hnswpq设置为on创建pq索引,再重新设置enable_hnswpq为off重启集群后,使用pq索引查询表,数据库异常core | 主要 | 已验收 | # 6 测试过程评估 -*本章节对测试过程进行评估,包括测试策略、测试设计和测试执行,目的是审视测试过程的执行情况,分析有待进一步开展测试和需要改进的地方。* - ## 6.1 测试策略回顾 -*回顾本阶段的测试策略,建议以表格的方式检查测试策略规定的活动是否都已经落实。* - -| 编号 | 特性 | 验证策略 | 是否按照测试策略执行 | -| ---- | ---- | ------------------------------------------------ | -------------------- | -| 1 | xxx | *测试设计阶段与测试owner、TSE、SE对齐的测试策略* | YES/NO | -| | | | | -| | | | | +| 编号 | 特性 | 验证策略 | 是否按照测试策略执行 | +| ---- | ---------------------- | ------------------------------------------------------------ | -------------------- | +| 1 | PQ索引开关 | 通过设置GUC参数进行验证,设置值与PQ加速插件具备情况组合测试,验证功能正常、异常情况合理报错 | YES | +| 2 | PQ索引创建、修改、重构 | 创建HNSWPQ、IVFPQ索引选项参数、不同索引距离覆盖验证;验证不同索引选项设置不同值后存储空间、执行时长、查询结果召回率准确度趋势验证,功能正常;不同SQL执行场景下可靠性场景验证正常; | YES | +| 3 | PQ索引检索 | 验证索引检索GUC参数功能验证、设置不同值对查询结果召回率准确性影响趋势正常;索引检索过程下可靠性场景验证正常; | YES | +| 4 | PQ索引性能 | | | ## 6.2 测试设计评估 -*提供对本次测试活动的测试设计的评估。可结合测试设计评审建议;评审完成,测试过程中,发现的新增或删减的测试点进行说明。* - -| 编号 | 测试点修改说明 | 修改原因 | 是否影响测试质量 | -| ---- | ------------------------------------------------------------ | ----------- | ---------------- | -| | *测试设计评审通过后,在实际测试执行过程中,发现的新增或删减的测试点列举* | *增/删原因* | *是/否* | -| | | | | -| | | | | +无 ## 6.3 测试执行评估 -*提供对本次测试活动的测试执行过程的评估结论。描述对测试执行活动的改进建议,以供后续测试执行活动中借鉴参考;* - -*测试执行活动评估结论可依据以下提供的“测试执行统计数据”及“测试用例执行结果统计数据”进行分析而给出。* - ### 6.3.1 测试执行统计数据 -| 版本名称 | 工作量投入(人天) | 测试用例数 | 用例执行数 | 发现缺陷数 | 代码量(KLOC) | 缺陷密度 | -| -------- | ---------------- | ---------- | ---------- | ---------- | -------------- | -------- | -| | | | | | | | -| | | | | | | | +| 版本名称 | 工作量投入(人天) | 测试用例数 | 用例执行数 | 发现缺陷数 | 代码量(KLOC) | 缺陷密度 | +| ------------------------ | ---------------- | ---------- | ---------- | ---------- | -------------- | -------- | +| openGauss 7.0.0-RC1 B010 | 3 | 4 | 4 | 1 | 3.493 | 0.28 | +| openGauss 7.0.0-RC1 B016 | 5 | 110 | 110 | 4 | 3.493 | 1.124 | +| openGauss 7.0.0-RC1 B017 | 5 | 72 | 72 | 3 | 3.493 | 0.859 | *数据项说明:* @@ -229,13 +223,12 @@ EMR8558P操作系统;openEuler 22.03LTS SP3,编译器:GCC10.3,python:3.1 ### 6.3.2 测试用例执行结果统计数据 -*对本次测试用例执行结果统计,其中的字段可根据实际情况进行设计和裁剪。对于Failed,Blocked,Unavailable的测试用例项不为0,须给出说明,并明确相应的后续计划(如:对于物料问题导致未执行用例,则需明确相应的物料计划;对于Blocked用例,需明确问题解决与相应版本的测试时间等)。对于最后一轮测试,要给出相应的规避措施。正文内容写明该需求共计多少用例* - | | 计划测试用例数 | 实际测试的用例数 | Passed | Failed | Blocked | Unavailable | 执行率 | 执行通过率 | | ------ | -------------- | ---------------- | ------ | ------ | ------- | ----------- | ------ | ---------- | -| 第一轮 | | | | | | | | | -| 第二轮 | | | | | | | | | -| ... | | | | | | | | | +| 第一轮 | 4 | 4 | 3 | 1 | 0 | 0 | 100% | 75% | +| 第二轮 | 110 | 110 | 50 | 60 | 0 | 0 | 100% | 45% | +| 第三轮 | 72 | 72 | 60 | 12 | 0 | 0 | 100% | 83% | +| 第四轮 | | | | | | | | | *其中:* @@ -247,18 +240,28 @@ EMR8558P操作系统;openEuler 22.03LTS SP3,编译器:GCC10.3,python:3.1 *Unavailable由于软件本身以外,如环境、工具、物料、时间、人力资源等因素导致用例未执行* -| 异常用例情况 | 影响分析 | 规避措施 | 后续计划 | -| ------------------ | ---------------------------- | -------------------------------------- | -------- | -| 如:Failed用例10个 | 描述异常用例对版本测试的影响 | 若是最后一轮测试,要给出相应的规避措施 | xxx | +| 异常用例情况 | 影响分析 | 规避措施 | 后续计划 | +| -------------- | ------------------------- | -------------------- | -------- | +| Failed用例12个 | 影响IVFPQ索引启用残差计算 | IVF残差计算设置为off | 待优化 | # 7 附件 ## 7.1 附件1:遗留问题列表 -| 序号 | 问题单号 | 问题描述 | 分类 | 问题级别 | 问题分析与影响 | 规避措施 | -| ---- | -------- | -------- | ---- | -------- | -------------- | ---------------------------------- | -| 1 | XX | XX | XX | XX | XX | 恢复手段:集群在core仍可以恢复正常 | +待定 + +| 序号 | 问题单号 | 问题描述 | 分类 | 问题级别 | 问题分析与影响 | 规避措施 | +| ---- | -------- | -------- | ---- | -------- | -------------- | -------- | +| 1 | | | | | | | ## 7.2 附件2:特性相关PR -*提供本需求相关的代码pr及资料pr* \ No newline at end of file +代码PR: + +https://gitee.com/opengauss/openGauss-server/pulls/6786 +https://gitee.com/opengauss/openGauss-server/pulls/7119 + +资料PR: + +https://gitee.com/opengauss/docs/pulls/6997 +https://gitee.com/opengauss/docs/pulls/7184 \ No newline at end of file -- Gitee