控制器之间客户端连接的分配
当客户端程序连接虚拟服务器的时候,Sequoia 连接器使用Sequoia URL连接到控制器。Sequoia URL包含了一个所有要用到的控制器的IP列表。默认的,Sequoia 控制器监听25322 端口。
如果当前选择的控制器失败了,将会自动从Sequoia URL定义的列表中重新取一个新的出来。
新的连接,根据预定义的负载均衡策略(随机,轮询,顺序),连接到一个控制器上。所有的属于这个连接的请求都会被发送到同一个控制器,但是这个控制器会把这些请求在它下面的后端之间进行的负载均衡。
一旦连接建立,一个针对某个虚拟数据库的用户名和密码的组合,会连同数据库的名字一起被发送到控制器的验证管理器中进行检查。
在后端之间分配只读请求
在后端之间进行负载均衡,有下面几种可选方案:
- least pending requests first
- 请求被发送到等待执行请求的队列最短的那个后端去,也就是等待的请求数最小的将被执行。正在等待的请求队列是一个后端负载的准确估计,因此这种方法是一种有效的动态负载均衡机制。round robin
- 简单轮询的负载均衡:第一个请求发送到第一个后端,第二个请求发送到第二个后端,依此类推。不断的循环,直到请求又从第一个后端开始。
- weighted round robin
- 跟轮询方法相同,但是给每个后端分配了一个权重值。这个值决定了这个后端相对于其他后端接受负载的比例。比如,一个后端的权重值为2,那么它负载的请求数是权重为1的后端的两倍。
处理Sequoia中的客户端连接上下文
客户端连接可以分为下面两种:
- 非持久化连接(non-persistent connections)
- 一个非持久化连接是一个到后端的连接,这个连接是在查询时(在
AUTOCOMMIT模式
)或者事件持续期间分配的,然后这个连接被放回后端连接池。
- 持久化连接(persistent connections)
- 客户端持续连接每个后端期间,这个连接被分配为一个专用连接。当使用一个持久化连接时,这个连接的上下文和状态都被Sequoia保存。
这两种连接都是Sequoia 分配的:如果没有连接可用,控制器会等待连接池提供可用的连接。
使用持久化连接的典型例子
这里有一些持久化连接用法的典型例子:
- 为某个单独的连接设置一个可用的环境或连接属性(通常使用SET xxx commands)
- 创建并操作一个临时表
- 要得到这个连接中前一个操作的信息(在
AUTOCOMMIT
中), 比如在MySQL中SELECT LAST_INSERT_ID
.
使用持久化连接的相关问题
因为下面的原因,不推荐使用Sequoia 的持久化连接。
减低系统性能;
打开和关闭持久化连接是在集群范围内执行的,因此会降低系统性能;
会导致禁止后端或关闭数据库失败;
后端只有在所有的持久化连接都关闭后才能被disable。
每个连接的打开/关闭都会被记录到recovery log中。当一个checkpoint需要被添加到recovery
log中时(比如在数据库库备份期间要disable掉后端),Sequoia
必须等当前打开的所有持久化连接都关闭完之后才能执行,因为连接的上下文不会被记录。
而且,虚拟数据库也只能在所有的后端都被disable掉之后才能关闭。所以,如果应用无限期的保持打开连接池中的连接的话,虚拟数据库将无法正常关闭。
那么在使用持久化连接时怎么防止这些情况发生呢。
上述失败可能发生如果我们这么使用Sequoia 的话:
- 在独立应用中,没有显式的使用
close ()
关闭连接。
- 像jboss那样的应用服务器,它们会代替应用去请求连接池。
确保你的应用显式的关闭了它们的连接。特别要检查连接池和连接重用计划。
如果你使用像Jboss那样的应用服务器。你必须配置连接池,因此没用的连接被续约并按照一定的规则关闭掉(idle-timeout
参数在虚拟数据库的配置文件中)。
注意:
使用Sequoia时,不推荐同时使用持久化连接和连接池。因此,如果你没用持久化连接,你应该把他们disable掉。
分享到:
相关推荐
西门子 Sequoia 512是老彩超了,说明书很难找的有需要的可以下载
为了确保该公司的软件平台能在 IBM 的主流服务器上良好地运行,Sequoia Media Manager 在马萨诸塞州 Waltham 的 IBM Solution Partnership Center(解决方案合作中心,SPC)接受了可移植性测试。该中心经验丰富的...
Sequoia
Sequoia实现蛋白质二级结构预测
红杉 文档可以在找到
Sequoia是一种数据库集群中间件,可提供负载平衡和透明的故障转移。 数据库在多个节点上复制,并且Sequoia平衡了它们之间的查询。 红杉支持在线维护和恢复操作。
ST Sequoia FLI32626H-BG Digital Video Processor Datasheet
sequoia.nim:Nim的Sequoia PGP包装器
#SEQUOIA 目前,这只是一个很小的16步矩阵Midi音序器,几乎没有功能。 下载 依存关系 外部的 内部的 Java文档 设计 即将推出的功能 处理方式 控制步骤数 速度控制
Sequoia选股系统 简介 本程序使用传统的,并非需要捐赠的,获取数据无限制; 另,由于TuShare的增量更新接口有bug(最近一个交易日的数据获取不到),所以每次计算前都是删除所有数据,全部重新获取。 本程序实现了...
入门要在Gradle中要求当前发行版本,请将以下内容添加到构建文件的“依赖项”部分: 编译'com.staples-sparx:Sequoia:0.20.2'用法该库是Alpha之前的版本。 API可能会更改。 应该创建直接调用构造函数的节点。 ...
在竞争对手Sirific Wireless公司推出了可支持HSDPA(高速下行分组接入)和Edge 的130纳米线性CMOS产品的形势下,Sequoia Communications公司将于本周发布其单芯片极化结构SEQ7400 Hedge型收发器。 Sequoia...
用于Fedora的Sequoia PGP正在进行的RPM软件包 该存储库包含RPM规范文件和用于板条箱的补丁程序,用于的扩展名,以及尚未从Fedora官方存储库中获得的所有依赖项。 包裹审查票 包裹 票证链接 防锈帆布 防锈读卡器 不...
Serverless computing is a rapidly growing paradigm thateasily harnesses the powe
工具 SequoiaSQL,包含分布式数据库SequoiaDB的SQL引擎,以及兼容各种SQL语法协议的解析器。 SequoiaSQL项目目前已经完成了对MySQL和PostgreSQL的支持,并且已经打包进入产品中,投入用户的实际生产环境里使用。
Xfce或其他已安装的DE) 从config.js轻松配置登录失败通知如何安装AUR Linux 从AUR下载[ lightdm-webkit-theme-sequoia-git ]( )或使用yaourt: yaourt -S lightdm-webkit-theme-sequoia-git 现在,在/etc/lightdm...
红杉-CS:GO AI检测机器人。 用于CounterStrike:GlobalOffensive字符检测和分类的神经网络。 建立在由软件提供支持的。 这个项目是在指导下开发的。 该项目结合了的微调版本,同时还使用辅助辅助神经网络来辅助...
为普及大数据相关知识,促进广州、深圳地区大数据爱好者的交流,增强企业使用大数据相关开源项目的意识,特地举办了“大数据开放日”深圳活动。 本活动由 CSDN CODE与腾讯大讲堂联合主办,活动同时得到了CSDN战略...
现在可以在/ sequoia / Standalone下找到最新版本 红杉Fortran单机版 待编译并在linux或Windows + cygwin下运行 该Fortran脚本在功能上与R包中的脚本相同,但是具有部分可选的额外输出,对于调试很有用。 该代码已在...
用PHP 4编写的基于Web的电子邮件客户端。此客户端的计划功能包括1)多个收件箱,2)基于LDAP的地址簿,3)可以在线查看的多个mime类型,4)支持图像附件的缩略图视图。