数据库整体复制实现原理
数据库整体复制实现原理
服务器整体复制机制负责维护数据的所有副本在每个位置上的一致性。通过将服务器的副本转移到若干个边缘服务器中,并保持数据库的所有这些副本相互一致,那么就可能在不用修改每一个应用的前提下在网络边缘完全实现动态内容的分发。不过对数据库复制的管理存在严重的一致性问题,当客户端的请求使数据被频繁修改时这个问题的解决就显得尤为重要。数据库研究人员长期以来一直在试图解决这个难题。
按照习惯做法数据复制是通过延时(lazy)或即时(eager)写更新传播来实现。在即时(或称同步)方法中,副本之间的数据同步发生在事务提交之前;而在延时方法中,数据的更新则是在事务提交后才进行传播。即时方法有较好的容错性而且提供了与单个数据库相同的正确性保证。但是它在性能和可扩展性方面可能会变得不实用从而面临着很严重的局限性。另外延时方法有很好的性能和可扩展性所以在商业产品上受到青睐。但延时方法带来了一些新的问题:因为事务可能会读到失效的数据,且更新事务之间的冲突可能会很晚才被发现,所以需要对潜在的冲突问题进行解决。
在Web环境下管理数据库复制最简单的方法是基于源服务器中的原件和边缘服务器中的副本。只读业务完全可以由边缘服务器通过访问其数据库副本来完成。不过对于需要执行更新操作的事务(以写为主的场合),所有对数据库的访问都被重定向到源服务器中数据库的原件上,这个中央数据库再将需要更新的数据定期传播到边缘服务器中的副本。这种方法的一个缺点是,边缘服务器必须清楚应用的含义,因为它需要知道请求触发的是更新事务还是只读事务。数据副本间的一致性是通过延时更新传播方法实现的,这带来两个不利影响:首先边缘服务器中存储的数据可能会失效;其次一次崩溃可能会导致数据的丢失。
在Web环境中数据库完全复制面临很多挑战。到目前为止很多数据库复制技术都假设数据库副本之间通过局域网互联。近年来数据库研究人员提出了很多复制协议保证数据在局域网中的一致性和较好的性能。Amza等人提出的延时复制方案,可以通过减少冲突的数量提供序列化能力和吞吐量定级。这一早期工作目前已经有了分布式的版本能够提供很强的一致性并避免死锁问题。将数据库操作结果的缓存和集群复制方案迸行结合使用一个中间件来实现一致和可扩展的数据复制。
在CDN中数据库的副本在地理上分布于一个WAN中,如果Web应用产生了大量的数据库更新,随之而来的巨大流量将会使WAN出现过载并对性能产生负面影响,这是因为每个更新都要被传播到所有其他的副本以保证所有副本数据的一致性。因此可以得出结论:WAN中数据库复制的可扩展性和性能大体上仍是一个尚待解决的问题还需要进一步的研究。
网防cdn专业提供国内外高防cdn加速服务
本文链接:http://www.f8i.com/news/353.html