- Teradata数据库硬件和软件架构
支持Teradata数据库软件的硬件基于对称多处理器(SMP)技术硬件可以与连接SMP系统的通信网络相结合以形成大规模并行处理(MPP)系统。SMP和MPP硬件的组件平台包括以下内容。
组件 | 说明 | 功能 |
处理节点 | 一种硬件组件,在SMP配置中是包含多个紧密耦合的中央处理单元(CPU)。SMP节点是连接到一个或多个磁盘阵列,每个节点安装: •Teradata数据库软件 •客户端界面软件 •操作系统 •多处理器共享内存 •故障保护电源规定 MPP配置是两个或多个松耦合SMP节点的组合。 | 用作数据库软件运行的硬件平台 |
BYNET | 连接MPP系统上节点的硬件处理器间网络。 注: 单节点SMP系统使用软件配置的虚拟BYNET驱动程序来实现BYNET服务。 | 情况在处理器之间实现广播、多播或点对点通信 |
- BYNET
在最基本的层面上,可以将BYNET视为一种松散耦合所有多节点系统中的SMP节点。BYNET具有提供双向广播、多播和点对点的高速逻辑通信和合并功能。多节点系统至少有两个BYNET。这将创建容错环境并增强处理器间通信。负载平衡软件可以优化BYNETs的传输效率。如果一个BYNET出现故障,第二个BYNET可以处理流量。
- 磁盘阵列
Teradata数据库采用独立磁盘冗余阵列(RAID)存储技术,在磁盘级别提供数据保护。可以使用RAID管理软件将磁盘驱动器分组为RAIDLUN(逻辑单元),以确保在发生磁盘故障时数据可用。冗余意味着数据、功能或组件在阵列的体系结构中可以复制。
- Cliques
cliques是MPP系统的一个特点,这些系统通过对公共磁盘阵列单元的多端口访问将节点物理分组在一起。节点间磁盘阵列连接使用光纤通道(FC)总线进行连接。FC路径支持冗余,以确保处理器节点或磁盘控制器的丢失不会限制数据可用性。这些节点不共享数据。它们只共享对磁盘阵列的访问。
Cliques是在节点故障后PDE(Parallel Database Extensions)功能下vproc迁移的机制。如果Cliques中的某个节点发生故障,则vproc将迁移到Cliques中的其他节点,并在其主节点上进行恢复时继续运行
- Virtual Processors
Teradata数据库的多功能性基于虚拟处理器(vprocs),消除了对专用物理处理器的依赖。Vproc是在操作系统的多任务环境中运行在Teradata并行数据库扩展(PDE)下的节点上的一组软件进程。
下表是有关不同类型vproc的信息:
类型 | 功能 |
AMP | 访问模块处理器执行数据库功能,例如执行数据库查询。每个AMP拥有整个数据库存储的一部分 |
GTW | 提供Teradata数据库的套接字接口 |
Node | Node vproc处理PDE和操作系统功能,这些功能与AMP和PE工作没有直接关系。节点Vproc不能在外部操作,并且不会出现在Vproc Manager实用程序的输出中。 |
PE | Parsing engines执行会话控制、查询解析、安全验证、查询优化和查询调度 |
RSG | Relay Services Gateway提供了用于与Teradata数据流架构(DSA:Teradata Data Stream Architecture)通信的套接字接口 |
TVS | 管理Teradata数据库存储(Manages Teradata Database storage)。AMP通过TVS vproc获取其数据库存储 |
每个vproc都是处理器软件的独立副本,与其他vproc隔离,但共享节点的一些物理资源,如内存和CPU。一个SMP平台上或者节点上可以运行多个vproc。
Vproc及其下运行的任务使用唯一的地址进行消息传递并且通信彼此物理隔离。此消息通信使用多节点上的BYNET硬件和BYNET驱动程序软件平台进行通讯。
-
- Access Module Processor(AMP)
AMP vproc管理Teradata数据库与磁盘子系统的交互。每个AMP管理磁盘存储的一部分
-
- Parsing Engine(PE)
PE是vproc,一端与客户端系统通信,另一端与AMP(通过BYNET)通信。
每个PE执行管理会话的数据库软件,将SQL语句分解为步骤(可能是并行的),并将应答行返回给请求客户端。
PE软件由以下元素组成。
元素 | 功能 |
Parser | 将SQL分解为关系数据管理处理步骤 |
Optimizer | 确定访问数据的最有效路径 |
Generator | 生成和打包步骤 |
Dispatcher | 从解析器接收处理步骤,并通过BYNET将其发送到适当的AMP 监视步骤的完成情况并处理处理过程中遇到的错误 |
Session Control | 管理会话活动,如登录、密码验证和注销。 在客户端或服务器故障后恢复会话。 |
- (请求处理)Request Processing
SQL解析器按以下顺序处理所有传入的SQL请求:
- 解析器查看请求缓存以确定请求是否已经存在
- 语法分析器检查传入请求的语法
- 解析器从数据字典(或信息的缓存副本)中添加信息,以将数据库、表、视图、存储过程和宏名称转换为内部标识符
- 安全模块检查数据字典中的权限
- 优化器确定实现SQL请求的最有效方式
- 优化器扫描请求以确定放置锁的位置,然后将优化的解析树传递给Generator
- Generator将优化的解析树转换为操作步骤,如果合适的话缓存这些步骤,然后将它们传递给gncApply
- gncApply采用生成器生成的操作步骤,绑定参数化数据(如果存在),并将操作步骤转换为具体步骤
- gncApply将具体步骤传递给Dispatcher
- 请求分发(Dispatcher)
Dispatcher控制执行步骤的顺序。它还将步骤传递给BYNET,以分发给AMP数据库管理软件,如下所示:
- 分发器从gncApply接收具体步骤
- Dispatcher将第一步放在BYNET上;告诉BYNET该步骤是针对一个AMP、多个AMPS还是所有AMP;并等待完成响应
- 只要可能,Teradata数据库会并行执行步骤以提高性能。如果一个步骤和下一个步骤之间没有依赖关系,那么可以在第一个步骤完成之前调度下一个,并且这两个步骤并行执行。例如,如果存在依赖关系,则下一步需要输入第一步生成的数据,则在第一步完成之前,无法调度下一步
- Dispatcher收到来自所有预期AMP的完成响应,并将下一步放在BYNET上。它将继续执行此操作,直到完成与请求相关的所有AMP步骤
- AMP
AMP获取处理请求所需的行(假设AMP正在处理SELECT语句)。BYNET在AMPS和PE之间传输消息。AMP步骤可发送至以下之一:
• 一个AMP
• 选择的一组AMPs,称为动态BYNET组
• 系统中所有的AMPs
下图基于本小节中的示例。如果访问是通过主索引进行的,并且请求是针对单个行的,则PE向单个AMP发送步骤,如PE1所示。如果请求针对多行(全AMP请求),则PE使BYNET向所有AMP广播步骤,如PE2所示。为了最小化系统开销,PE可以在适当的时候向AMP的子集发送一个步骤。
例如,使用包含支票账户信息的表考虑以下Teradata SQL请求,该示例假设AcctNo列是Table_01的唯一主索引
1. SELECT * FROM Table_01 WHERE AcctNo = 129317 ;
2. SELECT * FROM Table_01 WHERE AcctBal > 1000 ;
•PE 1和2接收请求1和2。
•账户129317的数据包含在表R9行中,并存储在AMP1中。
•所有账户余额的信息均匀分布在所有四个AMP的磁盘上。
Teradata SQL语句示例按以下顺序处理:
1.PE 1确定该请求是主索引检索,它要求访问和返回一个特定行。
2.PE 1中的Dispatcher向BYNET发出消息,其中包含适当的读取步骤和R9/AMP 1路由信息。AMP 1返回所需行后,PE 1将数据发送给客户端。
3.PE 2解析器确定这是一个全AMP请求,然后向BYNET发出一条消息包含要广播给所有四个AMP的适当的读取步骤。
4.在AMP返回结果之后,PE 2向客户端发送数据。
AMP步骤按以下顺序处理:
1.在并发访问会损害数据一致性的情况下,锁定序列化访问。
对于使用唯一主索引(UPI)、非唯一主索引或唯一二级索引(USI)访问,锁定步骤将并入步骤2
2.操作执行请求的任务。对于复杂的查询,可能有数百个操作步骤。
3.结束事务导致释放步骤1或2中获取的锁。结束事务步骤告诉处理请求的所有AMP处理完成。
- 并行数据库扩展(Parallel Database Extensions)
并行数据库扩展(PDE)是位于操作系统和Teradata数据库。PDE支持并行性,使Teradata数据库具有速度和线性可扩展性。PDE为Teradata数据库提供以下功能:
•在并行环境中运行
•执行vprocs
•管理Teradata数据库工作负载并确定其优先级
•跨多个操作系统平台一致地管理内存、I/O和消息系统接口
PDE提供一系列并行操作系统服务,包括:
•管理多个节点上数据库操作并行执行的设施。
•数据库任务的动态分布。
•协调节点内部和节点之间的任务执行。
PDE使MPP系统能够利用BYNET和共享磁盘等硬件功能阵列。