可扩展性数据库的架构设计
上一篇 /
下一篇 2012-07-16 13:18:41
/ 个人分类:数据库
51Testing软件测试网
_,s:Z"E:fMX X
扩展性与硬件51Testing软件测试网:ssh0y*__Z
随着系统的膨胀,硬件的可扩展性体现在增加资源,提高性能的能力上,如添加更多的处理器、内存等。51Testing软件测试网#Lf3F/ZD
扩展性与软件51Testing软件测试网 L6IIOTT
扩展性要求软件能够有效地利用硬件的能力,软件的设计应该支持并行计算。对于数据库引擎,这意味着服务器组件必须支持多线程计算,允许操作系统在所有处理器核心上执行并行任务调度。不仅如此,数据库引擎必须提供有效的方法,以在多核上分解工作负荷。举个例子,如果数据库只使用四个线程,那么它在四核处理器和八核处理器上允许,并不能体现出性能差异。51Testing软件测试网K9['g
qHSN
c
分布式设计51Testing软件测试网'C.b-ljVBG;Q J'?
数据库引擎分割工作流,以充分利用硬件的能力并非易事,不是所有的数据库管理系统都能很好地支持并行计算。不仅仅是数据库引擎,数据库和其它系统资源都必须进行分割,以解决相互依赖性关系。因此,整个系统需要一个分布式设计。51Testing软件测试网0Q|h,mi}iA
例如,大多数数据库以B树架构存储索引。B树使得索引可以快速地定位数据,高效地插入、删除数据,但这需要保持“平衡”,即B树的树架构必须具有相同层
级的叶节点。一个简单的插入或删除操作都可能打破这种平衡。这导致在多核、多线程之间B树的管理与共享非常困难。多个线程会频繁抢夺B树的根节点,这会导
致性能瓶颈。
1A6B
]9\$iZ.f)U0 最小化共享资源