云服务器内容精选

  • 使用须知 设置事务拆分需要满足数据库代理内核版本为2.3.9.5及以上。内核版本的查询方法请参见如何查看云数据库 TaurusDB实例的版本号。 在默认的“REPEATABLE_READ”隔离级别下,云数据库TaurusDB不支持事务拆分功能。 仅“READ-UNCOMMITTED”和“READ-COMMITTED”级别允许事务拆分。 仅读写模式的数据库代理支持事务拆分功能。 当事务拆分功能开启后,仅支持将事务隔离级别修改为“READ-UNCOMMITTED”或“READ-COMMITTED”,若需要将事务隔离级别修改至更高的级别,需要关闭事务拆分功能。
  • 一致性级别介绍 云数据库 TaurusDB提供了以下几种一致性级别,可以满足不同场景对一致性的要求。 最终一致性(默认) 开启数据库代理后,同一会话内,连续多次SELECT请求会根据权重配比,路由到不同的数据库节点,由于主节点与读节点之前存在复制时延,并且各个读节点的复制时延大小不一定完全相同,可能会导致每次SELECT请求得到的结果存在差异,因此默认情况下,数据库代理只能保证数据的最终一致。 会话一致性 由于最终一致性可能会导致多次SELECT请求的结果存在差异,数据库代理进一步提供了会话级别的数据一致性,保证了在同一会话内,每次SELECT请求都可以获取到上一次写入操作后的最新数据。 数据库代理会记录每个数据节点的日志序号(Log Sequence Number,简称LSN),同时针对每一个会话也会维护对应的LSN,即Session LSN。当某个会话有数据更新操作执行完成时,数据库代理会根据当时主节点的LSN来更新对应的Session LSN,后续有读请求进来时,数据库代理会比较Session LSN以及各个数据节点的LSN,将请求发往LSN大于或等于Session LSN的数据节点,从而保证当前会话内,SELECT请求总能获取到上一次更新操作后的最新数据。 图1 会话一致性实现原理 开启会话一致性后,如果主节点与读节点复制时延较大,各个读节点LSN均小于Session LSN,会导致SELECT请求发送到主节点,从而增大主节点的压力,整个数据库集群的读写性能会有一定的降低。