函数、存储过程代码是统一保存在一个节点上还是多个节点上? 执行的时候是在一个节点上执行还是多个节点上执行,执行复杂SQL代码的机制。
GBase8a集群中,自定义函数和存储过程的定义代码是保存在全部节点的gcluster层。 在执行时,发起节点上取得自定义函数和存储过程的定义,把定义中的SQL语句拆分开,根据语句的特点把语句分发到集群中各个节点的gnode层执行。 在执行复杂SQL时,发起节点的gcluster会根据语句本身和引擎内部的执行规则,把复杂SQL拆分为多条相关的SQL语句,之后分发到各个节点的gnode层执行。