Skip to content

20240706

funkye edited this page Jul 8, 2024 · 3 revisions

参会人:汪忠祥(主持人)、清铭、陈健斌、吴江珂、张嘉伟、刘月财、熊靖浏、蒋俊敏、尹祥坤、谢明华、蒋奕晨、周斌、吴鹏、木合

会议时间:2024/07/06

下次会议时间:2024/07/20 主持人 陈健斌

如有时间变更,再另行通知,请订阅邮件列表:[email protected][email protected]

会议规范:

  • 每次开会时,如果完成掉的任务,会上就直接移除掉该部分内容。
  • 一些比较大的功能点/设计,需要在讨论前形成技术文档,避免在大家不了解背景的情况下进行讨论。
  • 同时做到事后可追溯 不开没有结论的会。哪怕“方案取消”或“下次再议”,也是结论的一种。

一、安全合规 @刘秋枫 @清铭

二、活动/运营信息同步

  • 开源之夏议题,4个议题,具体可以参考[email protected]
  • ALC活动 在详细设计阶段;7.20 祥坤
  • Apache Con 7.26周五健斌 祥坤

三、官网/文档

  • 官网访问流量治理 @刘秋枫 还是搜不到
  • 官网关键词优化(长期):前两周暂未处理,后面与提升页面体验分一起弄
  • 提升页面体验分;todo(放二期;一期先关注合规;
  • 文档
  • 文档问题:@刘秋枫 官网文档目前是整体一篇,需要治理下;
  • 市面上与Seata相关的文章混乱问题,博客转载到csdn,文章挂官网地址;@汪忠祥 目前转载30篇左右,有1w左右的阅读量;

四、发版信息

  • 2.1 apache rc4投票 (第一个版本比较慢,不要着急)

五、质量建设

  • 单测/变更覆盖率目标@汪忠祥
  • 目标覆盖率: 70%
  • 当前pr进展:
    • fix(6509): improve the test case coverage of saga module to 70% #6519 开发完成,review完成;覆盖率是下降的;
    • test: Improve the test case coverage of [sqlparser] module to 70% #6608 开发完成,review完成;覆盖率是下降的;模块覆盖不全,还可以继续完善,一个模块可以分多次;
    • fix(6502): supplement the store unit test cases in the [core] module. #6524 只搞了四个文件,需要继续联系;@忠祥
    • test:Increase [integration-tx-api] module test case coverage #6533 开发完成,review中;
    • Test: increase spring autoconfigure module unit test coverage #6198 开发完成,reviw中修改中,嘉伟
    • 覆盖率下降的,机器人有问题。拉本地看下覆盖率,没问题就merge;健斌;
  • 问题
  • 无assert,无效单测,工作量较大,需要逐步治理;
  • 集测回归能力建设 @张嘉伟 @熊靖浏
  • 目标:完整、自动化、持续集成,能够完成功能、稳定性、用户体验、安全上能力的验证
  • 进度:集测框架,方案已确认,并进行了初步演示:先按照skywalking-e2e编写的方式,按照一个个sample去编写e2e的集成测试,本地测试需要安装go依赖和docker。pr准备中;

继续完善其它的集测场景, 先从AT开始 升级到2.1 兼容性测试,针对sample @王良 目标:兼容性测试需要包含:jdk、mysql-driver,arch等,确保在各个环境下稳定运行 整体依赖集成测试的进度

BenchMark @亦夏 本周无进展

  • 目标:建立seata性能基线、能够获取到当前系统/服务的性能以及变化,并且进行图形化输出;支持火焰图、trace、基准比对,异常预警等能力;
  • 进度:
  • 提交第一版pr,支持微基准、profiler能力
  • 压力、吞吐量测试需要new出不同的seataClient,依赖api改造

六、其他讨论事项

  • 日志优化 总体进度:20%不到(@清铭 PR已提交,能满足国际化的要求,打出的堆栈都有对应的errorCode,错误信息里会显示一个链接链到FAQ页面中。)
  • 根据定制的规范对其他的 exception 的格式做改造,待分配任务;待认领;

review中

  • resource id + application name唯一标识/Server端寻址逻辑确认 resource id可能重复,导致下发问题,保证唯一,最终方案暂定,重新拉会议讨论 ,优先级较低 @亦夏
  • 达梦数据库:schema只能填一个(已向达梦技术人员确认)王良

待认领

  • 控制台token自动刷新 方案有了,无人认领

待review

  • undolog 前后镜像批量插入导致超过64mb 包大小限制 pr已经提交,待review @振涛 嘉伟review 方案确定: rollbackinfo里插入一个parentid,然后分成多个undolog,按xid+branch查父undolog,再解析rollbackinfo,如果其中存在parentid,那么就通过xid+branchid(parentid)进行查询,做聚合处理 需要注意:1)包大小和数据库版本的关系 2)console后续查询时需要聚合配置
  • 8091端口鉴权 还没定在哪个版本做 放在2.2里程碑 俊敏 @健斌 跟进 TM的request和RM的request的鉴权(PR已提交,待review);健斌已看过代码,基本上已完成,需要拉会进一步确认
  • naming server 和client对接相关的pr,未合并 @健斌 review中

进行中

  • token自动续期方案选型讨论完成、PR待提交
  • jackson依赖问题 是强依赖 scope-provided 修改成compile依赖, jackson高版本禁用autotype,saga如何适配 @亦夏 方案设计中
  • TM/RM未init,rm注册,不再忽略,直接异常;改动影响比较大,暂定2.2版本去做; @亦夏 方案设计中
  • global_table积压问题 @付德蓉 下周一单独拉会 目前的现状是,committing状态在定时器扫描每次捞1000条数据的情况下,过滤出超过130s的事务,进行单条更新删除操作,在高并发5000r/s下,前者更新删除操作太缓慢,导致global_table数据太多了。 单个节点,global_table累积多 方案1:数据分片方案, 使用多个锁. 缺点:global_table需要增加字段 改为批量删除后,瓶颈仍然在committing -> committed的更新处 下周继续讨论
  • seata-go 代码的错误码、日志输出等规范,待分配任务;链接的官方的 FAQ 上;和 seata java 保持一致,等 java 完成再开始;
  • java独立日志文件输出,不和其他混在一起(现在框架和业务日志混在一起)@尹祥琨 todo
  • 单点服务限流 @靖浏,方案出来了
  • 事务模式松耦合调整,拆分scanner 待评估 健斌
  • 拆分parser逻辑,将两阶段注解识别和referencebean&servicebean拆分,避免无意义扫描,导致触发异常

AT回滚失败问题@树杰 还需要线下测试

https://github.com/apache/incubator-seata/issues/6561, 被删除的数据其中一列是一个唯一索引,然后回滚的时候要插回来这个数据,但是唯一索引被其他行给用了,导致回滚失败 结论:oracle在获取table meta时,使用table meta的table name去覆盖用户sql传入的table name https://github.com/apache/incubator-seata/pull/6629 Oracle数据库下,使用XA模式,对于写入的数据,再次查询(同一个事务内)回出现查询不到的问题。@健斌在跟进 如何解决tc无法获取真实的table meta待定

2个议题写文档,发邮件,流程规范;@明华 @靖浏

下次周会讨论

  • seata序列化性能优化 @亦夏 等提pr
  • 集群中,添加一个节点时,需要校验该节点是否合法:@清铭

后续规划

主持人改为release manager,直接2个月为一个周期,并且2个月发版一次,本次release manager: @陈健斌

发版规则:

  1. 大版本计划改为每个版本有一个重点feature,只要这个重点feature完成,就可以考虑发大版本
  2. 如果没有达到第一点要求,release认为将bugfix和optimize的commits梳理后merge到小版本上进行pr提交,测试,验证,然后进行独立的小版本release. 本次2.2剩余问题

里程碑进展:

  1. namingserver从2.3挪至2.2里程碑,并列为首要目标,并且需要达到基本可用
  2. polardb-pg @清铭后续同步进展
  3. k8s-apiserver 优先级降低
  4. grpc 预计2.2不上,2个月的发版周期应该来不及,纳入2.3
Clone this wiki locally