`
yangzb
  • 浏览: 3503258 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sequoia的架构

阅读更多

下面讲讲Sequoia的组件和他们各自的功能。

下面这些术语在我们下面讨论和描述Sequoia的架构时将会用到:

虚拟数据库(virtual database) 是指在该集群中载入的不同的数据库服务器上数据库实例的分发视图。

节点(node) 是指一台物理机器,它可以是一个控制器(controller),也可以是一个数据库服务器,或者两者都是。

数据库服务器 是一个在虚拟数据库(virtual database)中运行的数据库引擎的实例。

后端(backend) 是一个Sequoia对象,用来管理一台受管的数据库服务器。

控制器(controller) 是运行在JVM中的一个Sequoia控制器(controller)实例。
Sequoia connector 连接着客户端应用和控制器(controller)。Sequoia的基本安装只包含一个用于java客户端的jdbc驱动,但是Carob项目提供了用于其他客户端应用的连接器。

Sequoia jdbc驱动

Sequoia JDBC驱动是一个type 4 JDBC驱动,它转发所有的数据库请求到Sequoia控制器(controller).

如果你正在使用Sequoia和Java客户端,那么你要用Sequoia驱动替换掉客户端原来使用的特定数据库的驱动,使客户端应用通过 Sequoia驱动连接到集群.Perl客户端也可以通过DBD::JDBC Perl模块和Sequoia驱动来访问Sequoia.

Sequoia控制器(controller)

Sequoia控制器(controller)是一个Java程序,它实际上是Sequoia connector和后端(backend)之间的一个代理.控制器(controller)enable受管的一组数据库暴露给客户端应用作为一个虚拟 数据库(virtual database).Sequoia控制器(controller)使用原生的数据库JDBC驱动访问数据库.

后端(backend)

后端(backend)是用来管理它下面数据库服务器的一个Sequoia对象:

后端(backend)是指一个数据库服务器实例的Sequoia视图
后端(backend)对象可以使用集群管理应用来管理.
当后端(backend)被disable时,它下面的数据库服务器的实例仍然是可操作的.比如要执行一次数据库备份操作,为了防止在备份过程中执行请求,确保数据库的一致性,这个时候就要把后端(backend)disable掉.

每个控制器(controller)对应专门的一组后端(backend):为了确保数据库的一致性,数据库在不同的控制器(controller)间不能共享.

控制器(controller)通讯协议

控制器(controller)使用一个组播协议来交换信息,维护相互之间状态信息的一致性.这种控制器(controller)之间的数据复制防止了单点故障的发生.

只有数据库update和commit/rollback命令用组播协议广播给所有节点,所有其他的命令都在控制器(controller)内本地执行.

默认的,Sequoia控制器(controller)通讯是使用Appia实现的.

虚拟数据库(virtual database)

一个虚拟数据库(virtual database)虚拟了一个独立的数据库,但是Sequoia控制器(controller)虚拟了一个关系式数据库管理系统(RDBMS).换句话来 说,一个RDBMS可以支持多个数据库,那么一个控制器(controller)也就可以提供多个虚拟数据库(virtual database)。

一个虚拟数据库(virtual database)由下面几部分组成

验证管理器(authentication manager)- 在建立连接时,验证虚拟数据库(virtual database)的用户名密码和真实数据库服务器的用户名密码的映射是否正确。关于这个更多的信息,请看Sequoia 3.0安装配置指南中配置Sequoia用户名和密码一节。

请求管理器(request manager)-处理Sequoia connector转发来的客户端请求。
备份管理器(backup manager)-执行数据库备份还原操作,在控制器(controller)之间传送备份文件。
后端(backend)-后端(backend)用来管理它下面的数据库服务器。

Sequoia_architecture

一个虚拟数据库(virtual database)和它的组件被配置在一个特定控制器(controller)的虚拟数据库(virtual database)配置文件中。换句话说,要配置一个虚拟数据库(virtual database),你必须有两个对应这个虚拟数据库(virtual database)特有的特定控制器(controller)的配置文件。

请求管理器(request manager)

请求管理器(request manager)包含了控制器(controller)的核心功能。当一个请求从Sequoia connector进来时,它首先被传递到这个虚拟服务器相关的请求管理器(request manager)中。

请求管理器(request manager) 由下面几部分组成,在后面我们会对它们进行详细说明:

请求调度器(request scheduler)
负载均衡器(load balancer)(load balancer)
recovery log

缓存 三个可选的请求缓存:

  • 元数据缓存,缓存结果集的元数据(比如列名,类型等),它通常在创建结果集时用到。
  • 解析缓存,它缓存解析的结果。这种缓存尤其是对于prepared statements非常有用。
  • 查询结果缓存,它缓存了只读查询的结果:这个很容易理解,如果一个查询要执行多次,那么使用这种缓存时,只会请求数据库一次,然后一直从缓存中读取。
请求调度器(request scheduler)

请求调度器(request scheduler)调度请求并确保查询精确一致。

Sequoia使用一个传递调度方法,它给每个查询分配一个唯一的标识,然后转发到负载均衡器(load balancer。这个标识在后面被用来确保写操作被以相同的顺序发送到所有的后端(backend)。

每个数据库服务器最终执行这个计划并锁定。锁定的时间依赖于数据库引擎。

负载均衡器(load balancer)(load balancer)

从请求调度器(request scheduler)出来,客户端请求就到达了负载均衡器(load balancer)。

Sequoia的负载均衡机制提高了数据库集群的整体性能。它在后端(backend)之间根据预先定义好的负载均衡方式来分配请求:用户可以选择一个最适合他们系统的方式。关于负载均衡方式的更多信息,请看 Sequoia的负载均衡 一章。

Recovery log

Recovery log是一个事件日志,它记录了那些更新虚拟数据库(virtual database)的所有请求和事件,可以用来进行数据库的恢复和同步。

备份管理器(backup manager)

备份管理器(backup manager)和recover log一起,允许动态地向虚拟数据库(virtual database)中添加新的后端(backend)而不用重启整个系统。类似的,当一个后端(backend)恢复要进行错误恢复时,你可以使用备份管 理器(backup manager)和recovery log很容易的重新enable它,

Sequoia安装包含了一个通用的和几个特定的关系数据库管理系统的备份器。你也可以使用你自己的备份管理器(backup manager)代码。更详细的可以看Sequoia 3.0 安装配置指南中如何配置备份管理器(backup manager)。

相关文章:

分享到:
评论

相关推荐

    Sequoia-master.zip

    【Sequoia项目详解:预测蛋白质二级结构的生物信息学工具】 Sequoia是一个专注于蛋白质二级结构预测的开源软件项目,其源代码存放在名为"Sequoia-master.zip"的压缩包中。在生物信息学领域,理解蛋白质的二级结构...

    sequoia

    关于数据库或文件系统部分,"sequoia"可能采用了B树、B+树或其他高效的数据结构来存储和检索数据。它可能支持事务处理,以保证数据的一致性和完整性,这涉及到ACID(原子性、一致性、隔离性和持久性)属性的实现。...

    通信与网络中的Sequoia推出单芯片支持HSDPA和Edge的收发器

    在竞争对手Sirific Wireless公司推出了可支持HSDPA(高速下行分组接入)和Edge 的130纳米线性CMOS产品的形势下,Sequoia Communications公司将于本周发布其单芯片极化结构SEQ7400 Hedge型收发器。     Sequoia...

    Sequoia:在FTC SDK之上构建的用于子系统管理和基于命令的编程的FTC库

    【Sequoia】是一个专为FIRST Tech Challenge (FTC) 设计的库,它构建于FTC Software Development Kit (SDK) 之上,旨在提供更高级别的抽象层来管理FTC机器人子系统,并支持基于命令的编程模式。这个库是开源的,由...

    途牛供应链系统的架构演进.pdf

    【途牛供应链系统的架构演进】是针对旅游行业的供应链管理系统进行的一次深度解析,主要讲述了途牛旅游网在面对业务量急剧增长时,如何通过架构的优化与演进来提升系统性能和服务质量。以下是对该系统架构演进的详细...

    sequoia_geodiv:红杉行动项目的地质多样性附加费

    描述中的"SPIP"可能代表“Skeleton Overload Processing”或者类似的专有名词,这是一个假设的处理框架,用于处理大量骨架数据,例如地形或地质结构的骨架模型。而"地质多样性"则意味着该项目关注不同类型的地质特征...

    45-段佳昂-(2021 ASPLOS) Nightcore efficient and scalable serverless

    45-段佳昂-(2021 ASPLOS)Nightcore efficient and ...Nightcore 的设计和实现满足了延迟敏感型交互微服务的严格延迟目标,为云计算、微服务架构、交互微服务等应用场景提供了一种高效、可扩展的服务器less 计算平台。

    风险投资的起源,结构,一级投资的过程介绍

    然而,真正的风险投资行业形成于20世纪40年代,尤其是红杉资本(Sequoia Capital)和KPCB(Kleiner Perkins Caufield & Byers)等知名投资机构的成立,它们在硅谷的投资活动极大地促进了信息技术的发展。 风险投资...

    腾讯基于SDN的智能网络管理及流量调度

    - **拓扑结构**:SRP的拓扑结构通常包括接入层、核心层和边界层,各层之间通过特定规则进行连接。 - **水平分割原则**:所有流量必须遵循最短路径,DC内的流量遵循“接入→核心→接入”的两跳路径;DC间的流量遵循...

    海龟交易法则,采用Python的pandas库实现

    pandas提供了DataFrame结构,可以方便地存储和操作股票价格、交易量等多维度数据。以下是对海龟交易法则的详细解释和如何使用pandas实现: 1. 数据获取:首先,你需要获取股票或期货的历史价格数据。这通常可以通过...

    2017计算机二级考试选择题知识点总结(良心出品必属精品).docx

    - **第三代计算机**:引入了Pascal等结构化的编程语言,进一步促进了计算机的应用和发展。 ### 二、中国计算机发展历程 - **起点**:1956年,《十二年科学技术发展规划》确定了计算机作为重点发展的领域之一。 - *...

    PostgreSQL高可用性与负载均衡原理及实例.docx

    PostgreSQL的高可用性和负载均衡是数据库管理中的关键议题,旨在确保系统持续稳定运行和高效的数据处理。在本文中,我们将探讨几种常见的解决方案,包括...在实际部署中,可能需要结合多种方法,以构建最合适的架构。

    医用超声诊断仪的质量控制.pptx

    横向分辨力和纵向分辨力分别指设备在水平和垂直方向上分辨两个相邻结构的能力,是评价图像清晰度的重要参数。探测深度是指设备能够识别的最远回波目标,直接影响到对深部组织的观察。盲区是指设备无法识别的最近回波...

    2024-2030全球与中国碲铜合金市场现状及未来发展趋势.docx

    - Sequoia Brass & Copper Inc、Aviva Metals、Harald Pihl 和 CONCAST METAL PRODUCTS CO 等为首的第一梯队厂商占据了较大的市场份额。 - 第二梯队包括 Farmer's Copper Ltd、MODISON、m Lego 和 Forte Precision...

    33_活化石yong.ppt

    4. **红杉**(Sequoia sempervirens):红杉是世界上最高大的树木之一,也是最古老的植物种类之一。它们的存在可以追溯到约2亿年前,是恐龙时代的见证者。 5. **鹦鹉螺**(Nautilus pompilius):海洋软体动物,...

    西门子彩超X150参数

    该系统继承了西门子公司ACUSON系列超声技术的优秀成果,并进一步融合了高端机型Sequoia和Antares的多项先进成像技术。ACUSON X150具备卓越的图像质量和广泛的应用范围,能够满足当今各种临床需求,同时为未来技术...

Global site tag (gtag.js) - Google Analytics