暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase 学习笔记129:OceanBase数据库的Location Cache有什么用?

718

OceanBase 数据库按日志流、分片组织用户数据,且每个日志流有多个副本用于容灾。因此,在 SQL 请求执行过程中需要知道分区数据的位置信息,用于路由到特定机器读写对应副本的数据。分区数据的位置信息即称为 Location,每个 observer 进程会有一个服务,用于刷新及缓存本机需要的分区 Location 信息,该服务称为 Location Cache 服务。

V4.0.0 版本引入了日志流、分片的概念,如果需要获取分区数据的 Location 信息,就需要知道分区对应的分片、分片与日志流的映射关系,以及日志流副本的位置信息。您可以通过以下系统租户下的数据字典获取:

  • oceanbase.CDB_OBJECTS:指定 OBJECT_TYPE 为 TABLETABLE PARTITION 或 TABLE SUBPARTITION 可以获取对应分区的 DATA_OBJECT_ID,即 TABLET_ID(租户下分片的唯一标识)。

  • oceanbase.CDB_OB_TABLET_TO_LS:获取分片所属的日志流,日志流在租户下通过 LS_ID 唯一标识。

  • oceanbase.CDB_OB_LS_LOCATIONS:获取日志流的副本类型及位置。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论