数据仓库服务 GAUSSDB(DWS)-数据库SEQUENCE优秀实践:sequence创建流程

时间:2024-09-14 17:38:49

sequence创建流程

GaussDB (DWS)中,GTM(Global Transaction Manager,即全局事务管理器)负责生成和维护全局事务ID、事务快照、sequence等需要全局唯一的信息。sequence在GaussDB(DWS)中的创建流程如下图所示:

图1 sequence创建流程

具体过程为:

  1. 接收SQL命令的CN从GTM申请UUID。
  2. GTM返回一个UUID。
  3. CN将获取的UUID与用户创建的sequenceName绑定。
  4. CN将绑定关系下发到其他节点上,其他节点同步创建sequence元数据表。
  5. CN将UUID和sequence的startID发送到GTM端,在GTM行进行永久保存。

因此,sequence的维护和申请实际是在GTM上完成的。当申请nextval,每个执行nextval调用的实例会根据该sequence的UUID到GTM上申请序列值,每次申请的序列值范围与cache有关,只有当cache消耗完之后才会继续到GTM上申请。因此,增大sequence的cache有利于减少CN/DN与GTM通信的次数

support.huaweicloud.com/bestpractice-dws/dws_05_0113.html