☰
Current Page
Main Menu
Home
Home
Editing
优化启动时锁表问题
Edit
Preview
h1
h2
h3
default
Set your preferred keybinding
default
vim
emacs
markdown
Set this page's format to
AsciiDoc
Creole
Markdown
MediaWiki
Org-mode
Plain Text
RDoc
Textile
Rendering unavailable for
BibTeX
Pod
reStructuredText
Help 1
Help 1
Help 1
Help 2
Help 3
Help 4
Help 5
Help 6
Help 7
Help 8
Autosaved text is available. Click the button to restore it.
Restore Text
# 提测文档 ## 名称 IIDP平台优化 ## 版本号 已合并至test分支,具体版本号待定 ## 提测日期 2024年8月26日 ## 提测内容概述 本次提测主要包含以下三项优化内容: 1. 解决IIDP平台在Setup和Install Apps过程中由于多个容器并发执行修改表结构时导致的锁表问题。 2. 去掉已有的大锁,引入Redisson分布式Redlock机制,并仅锁定修改表结构的一段逻辑,以降低锁的颗粒度。 3. 优化平台启动时间。 ## 详细优化内容 ### 1. 优化IIDP平台Setup和Install Apps时的锁表问题 #### 问题描述 在多个容器并发执行修改数据库表结构的操作时,容易导致数据库表被锁住,影响其他操作的正常进行,进而系统无法启动。 #### 优化方案 - 引入Redisson分布式Redlock机制,确保在多个容器同时操作数据库表结构时,不会出现锁表问题。 - 通过分布式锁管理,避免多个容器在同一时间修改表结构。 #### 测试方案 - 模拟多个容器并发执行Setup和Install Apps操作,观察是否存在锁表问题。 - 测试在高并发场景下,整个集群是否可以正常启动。 ### 2. 去掉已有的大锁,引入Redisson分布式Redlock #### 问题描述 现有系统使用大锁机制,导致在一开始启动时,整个操作被锁定,影响其他pod操作的执行效率。 #### 优化方案 - 去掉原有的大锁机制。 - 引入Redisson分布式Redlock,仅锁定修改表结构的一段逻辑,细化锁的颗粒度。 - 确保在修改表结构时,只锁定必要的操作部分,不影响其他数据库操作,也不影响其他操作,比如启动事件等。 #### 测试方案 - 测试在修改数据库表结构的过程中,其他数据库操作是否受到影响。 - 验证Redlock锁定逻辑的准确性和有效性,确保在并发修改表结构时,锁定范围合理且有效。 ### 3. 优化启动时间 #### 问题描述 平台启动时间较长,影响用户体验和系统可用性。这是一个涉及到多个方面的问题,这里只是在大锁和修改表结构方面进行了相关的优化。 #### 优化方案 - 对启动流程进行分析和优化,减少不必要的加锁操作。 #### 测试方案 - 测试优化前后的启动时间,比较启动时间的变化。 - 确保优化后系统功能正常,启动流程无异常。 ## 测试环境 - 分布式环境 ## 测试用例 ### 用例1:并发执行Setup操作 - **前提条件**:部署多个容器实例。 - **操作步骤**: 1. 启动多个容器实例,分别执行Setup操作。 2. 观察数据库表结构的变化情况。 - **预期结果**:多个容器实例可以并发执行Setup操作,数据库表结构无锁表问题,操作响应时间符合预期。 ### 用例2:并发执行Install Apps操作 - **前提条件**:部署多个容器实例。 - **操作步骤**: 1. 启动多个容器实例,分别执行Install Apps操作。 2. 观察数据库表结构的变化情况。 - **预期结果**:多个容器实例可以并发执行Install Apps操作,数据库表结构无锁表问题,操作响应时间符合预期。 ### 用例3:修改表结构时的锁定范围 - **前提条件**:部署多个容器实例。 - **操作步骤**: 1. 启动多个容器实例,同时执行修改表结构操作。 2. 观察其他数据库操作是否受到影响。 - **预期结果**:修改表结构时,仅锁定必要的操作部分,其他数据库操作不受影响。 ### 用例4:平台启动时间优化 - **前提条件**:无。 - **操作步骤**: 1. 启动平台,记录启动时间。 2. 比较优化前后的启动时间。 - **预期结果**:优化后平台启动时间明显缩短,系统功能正常。 ## 备注 - 请测试人员在测试过程中,详细记录每个测试用例的执行情况和结果。 - 如发现任何问题或异常,请及时反馈给开发团队。
Uploading file...
Sidebar
[[_TOC_]]
Edit message:
Cancel