1.IQ 15 Multiplex 简介
Sybase IQ Multiplex 采用混合集群体系结构,该体系结构包括用于存储持久IQ 数据的共享存储和用于存储Catalog元数据、Catalog事务日志以及临时数据的独立节点存储(这些数据的存储时不共享的)。
IQ 15 Multiplex的架构见下图:
Sybase IQ 列存储降低了I/O 要求,支持多个系统共享磁盘阵列,而不会因 I/O 争用而导致性能降低。Sybase IQ 15支持来自Multiplex 中的多台服务器的读写事务。主服务器(又叫做协调器)管理所有全局读写事务,并维护全局Catalog。表版本记录(TLV日志)存储有关DDL操作的信息,并向辅助服务器提供有关新表版本的信息。
由于节点功能可能不同(有主服务器和从属服务器之分,从属服务器又分为读写和只读两种角色),因此IQ Multiplex是一种“非对称集群”,它与其它数据库集群体系结构不同,其它数据库集群体系结构通常沿用“共享一切”或“不共享任何内容”的体系结构。
在IQ Multiplex中每个节点的IQ Server都具有其自己的临时存储和 Catalog 存储。所有节点服务器共用共享 IQ 存储。
2.IQ Multiplex的优点:
(1)允许跨多个节点分布和管理庞大的工作负荷。
(2)允许从多个写节点装载和更新数据。
(3)允许在一个用户写入共享数据库对象的同时由多个用户同时查询该共享数据库对象。数据库中可以存在许多此种类型的对象,并且可以同时使用这些对象。
(4)提供高可用性。一个节点出现故障并不会妨碍其它节点的运行。
(5)通过共享数据来降低数据成本。向阵列添加系统可以提供更强的计算能力和更大的内存空间,条件是在多个Multiplex 节点之间有效地平衡工作负荷。
3.使用IQ Multiplex的一些建议
(1)何时使用Multiplex
通过自己的一些实践体会,觉得IQ 15 Simplex(即单节点iq server)和IQ 15 Multiplex是有各自的使用场景的。我们要结合需求、应用系统的特点等因素来综合考虑。
IQ 15 Simplex的总体性能比IQ 12.7有较大程度的提升,如果使用IQ 15 Simplex能够满足给定负载下应用对于响应时间和吞吐量的要求,那么就应该采用Simplex(这样可以简化管理、节省系统资源);当随着应用负载不断增加,Simplex不能满足性能要求时,可以采用Multiplex,它提供了较好的性能扩展能力(对于不同的应用场景具有不同的扩展能力)。
从Simplex到Multiplex的过度比较简单,基本上不需要修改应用(但应用在设计时需要注意做到灵活的配置数据源),但是为了充分发挥IQ Multiplex的优势,在应用设计方面需要注意一些事项。Multiplex的管理相对来说是比较简单的,比如可以非常方便、灵活地增加和删除节点等。
(2) Multiplex对于不同的应用操作类型具有不同的扩展能力
A. 对于纯查询应用,提供最好的扩展能力(扩展能力最好,几乎是完全线性的扩展)。对于这样的应用,当Simplex不能满足用户并发吞吐量的情况下,可以考虑使用Multiplex。
B. 对于应用中的LOAD TABLE操作,Multiplex能提供比较好的扩展能力(扩展能力次之)。Multiplex可以提升并发LOAD的性能,但前提条件是:每个节点上的CPU、内存和LOCAL文件系统(用来存放用于装载的数据文件)不存在瓶颈;特别是本地文件系统如果有I/O瓶颈,那么Multiplex的多节点并发load效率并不好。Multiplex多节点并发load的性能较好(要针对具体的环境设定适当的并发度),但不能达到线性扩展能力。
C. 对于应用中具有并发较多条select into操作的情况,Multiplex能扩展能力最差。应用中如果具有这样的操作会导致大量、多次的Multiplex全局事务的同步,全局事务的同步是有开销的;并且大量的全局DDL操作会导致节点的Catalog Cache不断增长,当达到一定程度后,会导致IQ的ASA引擎动态调增Catalog Cache,使得性能急剧下降。在进行应用设计时,应当尽量避免这种情况。
(3) 应用设计注意事项
A. 尽量不要在写节点上运行大量小的写事务,而应当在写节点上运行大事物。尽量让小事物运行在协调节点上,这样可以降低集群同步的开销。
B. 由于协调节点负责全局Catalog和全局事务等方面的管理工作,最好不要让协调节点满负荷运行。
C. 如果采用多节点同时进行LOAD TABLE操作,为了节省文件系统存储空间,建议在不同节点上手工分配要装载的数据文件,并在集群节点间手工分配LOAD TABLE操作。
(4) 所有DDL操作(包括create 数据库对象、select into table等)都是在协调节点上运行,即使发出的命令是提交到写节点的。在通常情况下,不会带来问题。但是,在有大量记录的表上创建索引时,由于create index操作实际是在协调节点上运行,需要消耗协调节点的CPU、内存等资源,可能会影响协调节点对于Mulitplex的协调和管理工作。针对这一特点,我们在规划IQ 15 Multiplex的协调节点机器配置时需要加以注意:如果在系统运行期间,经常要做一些索引创建工作,那么要为协调节点多配置一些CPU和内存。
阅读(4308) | 评论(0) | 转发(0) |