数据库管理-第249期 23ai:全球分布式数据库-请求路由与查询过程(20241008)

news2024/12/23 15:03:25

数据库管理249期 2024-10-08

  • 数据库管理-第249期 23ai:全球分布式数据库-请求路由与查询过程(20241008)
    • 1 客户端应用请求路由
      • 1.1 分片键
      • 1.2 Oracle连接驱动
    • 2 查询过程和查询协调器
      • 2.1 指定一致性级别
      • 2.2 高可用与性能
    • 总结

数据库管理-第249期 23ai:全球分布式数据库-请求路由与查询过程(20241008)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database(Oracle与MySQL)
PostgreSQL ACE Partner
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、年度墨力之星,ITPUB认证专家、专家百人团成员,OCM讲师,PolarDB开源社区技术顾问,HaloDB外聘技术顾问,OceanBase观察团成员,青学会MOP技术社区(青年数据库学习互助会)技术顾问
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

演示文稿1_01.png
今天给Oracle全球分布式数据库基本介绍收个尾。

1 客户端应用请求路由

为了将一个客户端应用请求直接路由到某个分片,需要使用Oracle驱动并在请求中提供分片键来连接到分片。

1.1 分片键

所有需要高性能和故障隔离的数据库请求必须只访问与分片键的单个值相关的数据。应用程序在建立数据库连接时必须提供分片键。如果是这样,请求将直接路由到相应的分片。
可以在同一会话中处理多个请求,只要它们都与同一分片键相关。此类事务通常访问10或100行。单分片交易的示例包括订单输入、客户账单记录的查找和更新,以及订阅者文档的查找和升级。
必须访问与分片键的多个值相关联的数据,或分片键值未知的数据库请求必须由查询协调器发出,该协调器协调跨多个分片的查询并行处理。

1.2 Oracle连接驱动

在运行时,连接池充当分片控制器,通过在连接池中的连接之间路由数据库请求。Oracle数据库在OCI、JDBC和ODP.NET等数据访问驱动程序中支持连接池。这些驱动程序可以识别作为连接请求的一部分指定的分片密钥。同样,JDBC客户端的Oracle通用连接池(UCP)可以识别连接URL中指定的分片密钥。Oracle UCP还使Apache Tomcat和WebSphere等非Oracle应用程序客户端能够与Oracle全球分布式数据库一起工作。
Oracle客户端使用UCP缓存路由信息,根据应用程序提供的分片密钥,将数据库请求直接路由到适当的分片。这种数据库请求的数据依赖路由消除了额外的网络跳变,降低了高容量应用程序的事务延迟。
路由信息在于分片的初始连接期间缓存,该连接是使用分片控制器建立的。在缓存范围内对分片键的后续数据库请求直接路由到分片,绕过分片控制器。
与UCP一样,分片控制器可以处理连接字符串中指定的分片密钥并缓存路由信息。然而,UCP使用已建立的连接路由数据库请求,而分片控制器将连接请求路由到分片。当分片不可用或分片拓扑发生变化时,路由缓存会自动刷新。对于高性能、依赖数据的路由,Oracle建议在访问分片数据库中的数据时使用连接池。
单独的连接池必须用于直接路由和通过查询协调器路由请求。对于直接路由,必须为读写和只读工作负载创建单独的全局服务。只有使用Data Guard复制时才是如此。对于代理路由,请使用分片目录数据库上的GDS$CATALOG服务。

2 查询过程和查询协调器

Query Coordinator,查询协调器,是分片目录的一部分。查询协调器为分片数据库提供查询处理支持。通过访问分片目录中的分片数据库拓扑元数据,查询协调器在三种常见情况下起着重要作用:

  • 无分片键的单分片查询
    如果应用程序没有传递分片键,查询协调器会找出哪个分片包含查询所需的数据,并将查询发送到那里进行处理。
  • 多分片查询
    查询协调器还可以协助处理需要来自多个分片的数据的查询,称为多分片查询,例如SELECT COUNT(*)from Customer。
  • 聚合查询
    查询协调器处理通常在报告中使用的聚合查询,例如销售数据的聚合。

在每种情况下,查询协调器的SQL编译器都会自动识别相关的分片,并协调所有参与分片的查询处理。
在单分片查询场景中,整个查询在单个参与的分片上处理,查询协调器只是将处理后的行传递回客户端。
对于多分片查询,SQL编译器会分析查询并将其重写为由参与的分片发送和处理的查询片段。查询被重写,以便大部分查询处理都在参与的分片上完成,然后由协调器聚合。
查询协调器使用Oracle数据库的并行查询引擎来优化多分片查询,并将其并行推送到分片。每个分片都处理它所拥有的数据子集的查询。然后将结果返回给查询协调器,后者将结果发送回客户端。
本质上,分片充当查询协调器发出的查询的计算节点。因为计算被推送到数据上,所以分片和协调器之间的数据移动减少了。这种安排还通过将处理从查询协调器尽可能多地卸载到分片上,实现了资源的有效利用。

2.1 指定一致性级别

可以为多分片查询指定不同的一致性级别。例如,您可能希望通过一些查询来避免跨分片进行SCN同步的成本,并且这些分片可以全局分布。另一个用例是,当您使用备用数据进行复制时,对于多分片查询来说,稍微陈旧的数据是可以接受的,因为结果可以从主数据及其备用数据中获取。多分片查询必须通过在所有分片的最高公共SCN处发出查询来保持全局读取一致性(CR)。

2.2 高可用与性能

强烈建议在Oracle MAA(零数据丢失故障转移)下使用Oracle Data Guard保护查询协调器,并启用快速启动故障转移。查询协调器可以选择启用Oracle RAC,以获得额外的可用性和可扩展性。为了提高多分片查询工作负载的可扩展性和可用性,只读模式下的Oracle Active Data Guard备用分片目录数据库可以充当多分片的查询协调器。
在聚合用例和在没有分片键的情况下发出SQL时,与直接的、基于分片键的路由相比,将获得较低的性能体验。

总结

本期简单介绍了Oracle全球分布式数据库的请求路由与查询过程。到此Oracle全球分布式数据库的基础介绍已完结,后期数据库OP版本发布后,将进行RAC集群和Oracle全球分布式数据库的搭建。
老规矩,知道写了些啥。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2200998.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

拍立淘API接口以图搜商品列表功能实现技术分享item_search_img|返回商品列表商品id商品价格url

开发背景 在电商平台的快速发展中,用户对于商品搜索的效率和准确性提出了越来越高的要求。传统的基于关键词的搜索方式,虽然在一定程度上满足了用户的需求,但在面对复杂的商品信息和多样化的用户搜索意图时,仍存在诸多局限性。为…

PyTorch搭建GNN(GCN、GraphSAGE和GAT)实现多节点、单节点内多变量输入多变量输出时空预测

目录 I. 前言II. 数据集说明III. 模型3.1 GCN3.2 GraphSAGE3.3 GAT IV. 训练与测试V. 实验结果 I. 前言 前面已经写了很多关于时间序列预测的文章: 深入理解PyTorch中LSTM的输入和输出(从input输入到Linear输出)PyTorch搭建LSTM实现时间序列…

IO相关,标准输入输出及错误提示

一、IO简介 1.1 IO的过程 操作系统的概念:向下统筹控制硬件,向上为用户提供接口。 操作系统的组成 内核 外壳(shell) linux的五大功能:进程管理、内存管理、文件管理、设备管理、网络管理。 最早接触的IO&#xf…

01背包,CF 1974E - Money Buys Happiness

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1974E - Money Buys Happiness 二、解题报告 1、思路分析 问我们能够到达…

docker简述

1.安装dockers,配置docker软件仓库 安装,可能需要开代理,这里我提前使用了下好的包安装 启动docker systemctl enable --now docker查看是否安装成功 2.简单命令 拉取镜像,也可以提前下载使用以下命令上传 docker load -i imag…

深度学习笔记(持续更新)

注:本文所有深度学习内容都是基于PyTorch,PyTorch作为一个开源的深度学习框架,具有可以动态计算图、拥有简洁易用的API、支持GPU加速等特点,在计算机视觉、自然语言处理、强化学习等方面有广泛应用。 使用matplotlib绘图&#xff…

Linux 常用命令详解,线上问题排查必备

comm 比较文件行 comm 是 Linux 系统下的用于比较两个已排序文件的命令行工具。主要用于找出文件之间的差异或相同之处,例如两个文件中相同的行、仅在第一个文件中的行以及仅在第二个文件中的行。 基本语法 comm [OPTION] FILE1 FILE2可选参数OPTION如下&#xf…

图像分类-demo(Lenet),tensorflow和Alexnet

目录 demo(Lenet) 代码实现基本步骤: TensorFlow 一、核心概念 二、主要特点 三、简单实现 参数: 模型编译 模型训练 模型评估 Alexnet model.py train.py predict.py demo(Lenet) PyTorch提供了一个名为“torchvision”的附加库,其中包含…

芯课堂 | FatFs文件系统的移植及应用指南

1、FatFs文件系统简介 FatFs是用于小型嵌入式系统的通用FAT/exFAT文件系统模块。FatFs模块是按照ANSI C(C89)编写的,与磁盘控制层完全分离。因此,它独立于平台和存储设备,具有良好的硬件平台独立性。它可以集成到资源有…

这个问题做项目的时给某些客户普及过,这里再给你普及一下

有些因素不是地理概念,没错!但与地理有关!可以通过地理位置将他们链接起来,再结合其它业务数据,完成数据分析!例如百度地图会将:餐饮、文化、交通、住宿、甚至价格、天气与位置关联分析&#xf…

S7---基本介绍

目录 高通S7和S7 Pro Gen 1声音平台 音频性能的新层次 高通XPAN技术 卓越的听力增强 高通第四代ANC 特征 QualcommS7 Pro Gen 1附加功能 QualcommS7 Pro Gen 1框图 高通S7和S7 Pro Gen 1声音平台 声音被重新想象。QualcommS7声音平台旨在开启一个新的高级音频性能级别。…

Unity转Unreal5之从入门到精通 Spline(样条曲线)组件的使用

前言 Spline 组件 能编辑 样条曲线,定义一条路径,路径上的点可以通过距离起点的长度获取,因此可以实现 物体沿路径连续移动 的效果或者 物体沿路径分布 的效果。 今天我们就来实现一个简单的Spline样条曲线的Demo 实现一个沿路径运动的功能 1.新建一个基于 Actor 的蓝图…

JavaSE——集合1:Collection接口(Iterator和增强for遍历集合)

目录 一、集合框架体系(重要) 二、集合引入 (一)集合的理解与好处 三、Collection接口 (一)Collection接口实现类的特点 (二)Collection接口常用方法 (三)Collection接口遍历元素的方式(Iterator和增强for) 1.使用Iterator(迭代器) 1.1Iterator(迭代器)介绍 1.2Itera…

使用cv::FileStorage对yaml文件进行读写

问题描述:记录使用cv::FileStorage对yaml文件进行读写 参考官网:OpenCV: cv::FileStorage Class Reference WRITE:根据文件路径写文件,如果文件不存在会新建,文件存在则变空白 FileStorage fs(filepath, FileStorag…

新增数据集 SDK、“关系抽取”文本标注、优化模型监控和管理|ModelWhale 版本更新

ModelWhale 带来了新一轮的版本更新,期待为大家带来更优质的使用体验。 本次更新中,ModelWhale 主要进行了以下功能迭代: 数据管理:新增 mw_python_sdk 支持通过查看、下载、制作、更新数据集 文本标注:新增“关系抽取…

【DFDT】DFDT: An End-to-End DeepFake Detection Framework Using Vision Transformer

文章目录 DFDT: An End-to-End DeepFake Detection Framework Using Vision Transformerkey points贡献方法补丁提取和嵌入基于注意力的补丁选择多流transformer块多尺度分类器实验DFDT: An End-to-End DeepFake Detection Framework Using Vision Transformer 会议/期刊:App…

Apache Linkis + OceanBase:如何提升数据分析效率

计算中间件 Apache Linkis 构建了一个计算中间件层,以实现上层应用程序和底层数据引擎之间的连接、治理和编排。目前,已经支持通过数据源的功能,实现用户通过Linkis 对接并使用 OceanBase数据库。 本文详细阐述了在 Apache Linkis v1.3.2中&a…

【虚拟化】内核级虚拟化技术KVM介绍,全/半虚拟化的区别,使用libvirt搭建虚拟化平台(go/java/c++)

【虚拟化】内核级虚拟化技术KVM介绍,全/半虚拟化的区别,使用libvirt搭建虚拟化平台(go/java/c) 文章目录 1、虚拟化技术分类与架构(KVM,Xen),全/半虚拟化的区别2、libvirt介绍3、使用…

【北京迅为】《STM32MP157开发板嵌入式开发指南》-第二十四章 安装 Samba

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

举个栗子!Tableau 技巧(283):用山丘图呈现项目周期

人们常常用爬山来比喻工作中做项目的过程:明确目标、规划路线、团队合作、应对挑战,然后享受登顶并在下山后总结经验教训。 图片来自网络 在 Tableau 中做项目分析时,将一段时期的项目用山丘图来呈现,山丘大小代表项目周期的时间…