大家好,

 

今天是Plugin SIG组的第一次例会,参会的同学:黄凯耀、吴岳川、苏梓鑫、彭炯、陈晓滨、张乐奕、李传成、苏章艳、阮青松。感谢大家参加这次会议。

 

会议纪要:

 

1.      黄凯耀首先介绍了Android 8.0引入的Treble架构,它解决了Android版本升级复杂,需要谷歌、芯片厂商、手机厂商分别修改代码集成发布,导致厂商无法跟上Android版本节奏,Android碎片化严重的问题。

 

2.      黄凯耀介绍了插件化架构的总体思路和插件初步工作规划,主要包括插件规划、插件管理、插件实现和插件移植。

3.      讨论了插件架构的原则:只封装变化的代码。插件架构的设计模式:门面(Façade)模式。通过门面模式实现对众多hook的归类。

https://box.kancloud.cn/2016-04-20_57175853a499f.jpg

https://www.kancloud.cn/digest/xing-designpattern/143728

 

4.      黄凯耀介绍了Parser插件的设计和使用方法。苏章艳提出了一个问题,当前Parser参数是会话级别的,但对于某些数据类型,如DATEOraclePG的定义可能不同,如果定义时采用PG语法,查询时采用Oracle语法,查询结果可能出错。

5.      彭炯介绍了语义插件当前的设计思路。大家初步认可语义插件当前细化的9个语义分析函数指针,以及相应的语义分析接口结构体。这是对Façade模式的一个应用。苏章艳建议针对SelectStmt做进一步的插件点定义。

6.      陈晓滨介绍了PG插件移植指导和会话参数改造方案,主要回答了PG的进程化变量如何迁移到openGauss的线程架构上的问题。

a)       苏章艳提到当前FDW插件在u_sess的定义问题,后面FDW的要基于晓滨的框架进行整改,进行归一化

7.      会议主要形成如下结论:

a)       苏章艳提到的一些插件点的top需求

                     i.            认为SQL语法分析和SQL语义分析是高频修改的地方,希望进一步细化定义插件点。(上述第5点是一个有益的尝试)

                   ii.            pl/pgsql本身就是一个插件,但需要对这个插件内部进一步进行插件点的定义,比如统计每行语句的执行时间、调试统计功能等

                  iii.            存储层的加密和解密接口

b)       阮青松提到插件化机制的一些要考虑的风险

                     i.            如何解决插件与插件之间、插件与内核之间可能存在的冲突,如何建立插件化依赖机制,实现插件本身的版本和演进管理

                   ii.            如何进行插件的测试,如何通过兼容性测试套件保证插件的兼容性

                  iii.            插件的相关参数的范围,是否有相应的指导原则

c)        张乐奕提到了contrib目录下的原有插件是否会受到插件机制的影响。本质上,插件架构是继承兼容于PG原生的extension机制,但提供了更加友好的SDK,使得后面新开发的插件变得更加容易。

                     i.            另外,contrib目录下的移植,可基于当前晓滨的工作开展(上述第6点)

d)       李传成提到了一些插件开发的问题:

                     i.            当前插件的回归测试无法执行报错,需要修复

                   ii.            当前无法drop一个外来的插件,涉及到插件白名单机制,需要修复

                  iii.            按需反馈单个hook的时效性比较差,要考虑开始时的的系统规划,形成一个结构化的体系后,再逐步完善。

8.      下一步工作安排

a)       请苏章艳、阮青松、李传成在下周三(8/4)之前,反馈一稿插件点列表,可基于当前对openGauss内核所做的修改(diff opengauss mydatabase),抽象出相应的插件点出来,请尽可能细化,不怕多,只怕不全。(参见7-d-iii

b)       请大家踊跃在plugin@opengauss.org邮件列表中新开话题和讨论(给plugin@opengauss.org发邮件即可),与插件化架构的任何话题讨论都可以,比如Android的兼容性实现分析、PG生态插件的问题等等。

c)        初定下次例会召开时间是8/11

9.      如有遗漏,请大家回复补充。

 

 

--------------------------------------------------
黄凯耀 Huang Kaiyao
Mobile: +86-18664933229
Email: huangkaiyao@huawei.com