摘要:
当前的列存储引擎不支持自定义函数, 此前是采用回调到Mysql/SQL层的方式, 利用SQL层去解析自定义函数。但是这种做法引发了一系列的数据错误。
由此开启正式的基于列存储引擎的支持自定义函数的功能。本文分析其需求。
功能需求:
一. 结果需要与innodb的调用自定义函数的结果保持一致, 保证结果的正确性
二. 不得采取回调SQL层去解析的做法
- 回调SQL层将导致引擎层与SQL层的业务互相耦合, 无法清晰的理解逻辑流程
- 引擎层与SQL层紧密耦合后,将导致升级mysql版本困难
- 每一次升级都需要根据新的mysql的SQL层的实现写一次对引擎层的调用
- 每一次都是重新写一次对引擎的调用, 增大工作量,并且会增加对代码测试的时间
性能需求:
一. 调用自定义函数的耗时
与innodb引擎处于同一数量级
二. 对内存的占用的上限
TODO:
三. 对CPU的使用的上限
TODO: