ITPub博客

首页 > 数据库 > > HotDB 如何解决非确定性函数在使用中带来的问题

HotDB 如何解决非确定性函数在使用中带来的问题

作者:u_9ff4c058a0e0 时间:2022-03-15 14:41:14 0 删除 编辑

非确定性函数代理

非确定性函数在使用中,会带来一些列问题,尤其是全局表的数据一致性问题,为此HotDB Server提供非确定性函数代理的功能。

非确定性函数大致分为两类:

一类是已知值的时间类函数,如CURDATE()、CURRENT_TIMESTAMP()等,一类是未知值的随机值函数、唯一值函数,如RAND()、UUID()等。

  1. 对于时间类函数,计算节点进行统一代理。
  • 当表的字段类型有datetime(或者timestamp)且无默认值时,由参数timestampProxy控制计算节点的代理范围(默认为自动模式,可选全局处理/自动检测),将此类函数代理为具体值插入到表中;
  • 当select/insert/update/delete语句中出现curdate()、curtime()等函数时,计算节点将函数代理为具体值插入到表中;
  1. 对于随机值函数,计算节点针对不同的SQL语句进行不同的代理办法。
  2. 对于唯一值函数,计算节点进行统一代理。
  • 当select/insert/update/delete语句中出现uuid()或uuid_short()时,计算节点按照标准的UUIDv1算法代理唯一值;
  • 当存储节点和配置库的server_id冲突时,计算节点自动禁用uuid_short()并告知用户手动调整server_id。可参考MySQL官网说明:https://dev.mysql.com/doc/refman/5.7/en/replication-options.html。
来源 https://zhuanlan.zhihu.com/p/389873932

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69999831/viewspace-3145696/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2022-02-11

  • 博文量
    1828
  • 访问量
    20593