码迷,mamicode.com
首页 > 其他好文 > 详细

HANA的可扩展性

时间:2016-06-02 09:54:50      阅读:386      评论:0      收藏:0      [点我收藏+]

标签:

可扩展性

HANA支持Scale-Up和Scale-Out。

技术分享

Scale-Up(纵向扩展)是指在计算单元内增加资源。而Scale-Out(横向扩展)是指添加其它的计算单元,并逻辑上形成一个整体。

纵向扩展(Scale-Up)

技术分享

最常见的纵向扩展方式就是添加CPU(内存也相应添加了),也即NUMA架构。由于每个socket都有自己的内存控制器,访问本地和远程的内存性能是不一样的额,因此称为Non-Uniform。

软件方面,与NUMA配合的特性为并行执行(parallelism),或任务分派(dispatcher)。

横向扩展(Scale-out)

是将系统扩展到多个服务器,而非一个更大的单服务器。

多个服务器(节点)形成逻辑整体,但物理分布。

横向扩展突破了单个服务器的硬件限制,如内存,CPU。

横向扩展需要考虑数据分布和负载分布。

需要注意的是:
* 横向扩展需要对硬件,数据和应用有充分的了解,特别是后二者。
* 横向扩展管理起来更复杂
* 节点之间的互通讯对可扩展性有影响。

HANA是Share-Nothing架构,每个节点有自己的本地数据(data和log), 因此可以减少节点之间的通讯。
但是节点间通过内部的HDB协议也是可以通讯的。为了错误切换,还需要共享文件系统如GPFS, XFS。

技术分享

Data distribution aims to find the best balance between data model, data usage and actual workload to minimize inter-node communication

数据分布时,需要先考察:
* Data Model - 数据类型,如主数据,交易数据,参照数据等;数据的参照一致性(关联)
* Data Usage - 数据依赖性,数据访问路径
* Workload - 读/写,交易/查询,更新频率

数据分布的手段有:
* Table co-location - 为参照一致性,将相互依赖的表放在同一节点。对同一语句中涉及到的表,如JOIN,放在同一节点。
* Horizontal Partitioning - 将相互关联的表的分区放在同一节点。
* Table Replication - 比如主数据,参照数据,可以复制到每一个节点,以避免节点间通讯。

结论

首先Scale-Up, 最简单,最常用。
HANA的并行化可以很好的支持Scale-Up。
需要对数据和工作负载有很好的理解,才能使Scale-Out达到很好效果。
对于OLAP环境,Scale-Out很适合。
对于OLAP/OLTP混合环境,Scale-Out比较困难。
优化Scale-Out的性能是持续性的工作。

参考

HANA的可扩展性

标签:

原文地址:http://blog.csdn.net/stevensxiao/article/details/51563528

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!