首页>>学生风采>>兰州商学院陇桥学院李文瑞>>观点>>Web应用的数据访问需求和对策

Web应用的数据访问需求和对策

作者:李文瑞
日期:2014/4/10 12:27:12

Web数据的访问的主要特点可归纳如下:

? 高并发访问,尤其是读优先。

? 高可用性——系统访问服务不中断(对互联网应用来说这点往往是被重点强调的)。

? 较高的容错要求——系统要求能容忍一定程度的网络链接故障、网络分区故障、机器故障。因为机器多了、分布广了出问题的概率也多得多了。

? 数据访问并非需要严格一直性。

存储架构上的相应对策如下:

最大的技术策略是放弃传统数据访问所要求的 ACID 特性而遵循 BASE + CAP特性—— 所谓ACID 是指:DBMS强调ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性 (Durability)。这些特性保证数据的一致性和安全性,但实现起来必然降低了系统的可用性和访问速度。 因而现在普遍认可的方向是保证可用性和速度,而放弃一定的数据一致性和安全性(互联网应用中多数数据是可再生的,或者容忍错误的,不要求那么准)。BASE + CAP正式这种策略的抽象含义。BASE 是指:基本可用(Basically Availble);软状态(Soft-state);最终一致性(Eventual Consistency )。CAP特性是指:一致性(Consistency);可用性(Availability);分区容忍性(Tolerance of network Partition)等三个需求无法同时满足,必须有取舍。(如果不熟悉这些概念去google 找找吧,尤其是最终一致性这点最为精彩,可参看http://www.allthingsdistributed.com/2007/12/eventually_consistent.html)

为了提高系统吞吐和数据安全,上面我们谈到使用副本技术。而副本系统的访问策略则有一些不同选择。罗列一下吧!

副本传播方式可有——同步方式和异步方式,所谓同步方式是说写入所有副本到给定点需要同步完成;而异步方式则是先写一份到某个点上,然后该点将在延后一定时刻后才将其传播到其它点上。显然同步方式更安全、各副本数据一致性,但可用性低(如果严格同步要求,则是一个点死掉,则写操作即认为失败)、效率低。而异步则效率高(可合并数个请求再一次传播)、可用性高(不要求所有待写入点都严格可用)、但各副本会有一个不一致窗口(因为数据有可能还没传播完成)。

访问逻辑控制方式可有—— 多master 和单master 方式。多master是指每个副本存储点都可接受读写请求,且由其控制传播逻辑。而单master则只能有制定的点负责接收请求,其他点只负责接收master传播过来的读写请求。显然多master效率更高,但更需要控制请求顺序,修正数据冲突。——往往需要借助诸如"数据核对"、"集中决算"等副本冲突解决机制。而单master由于读写都在一个点上串行化了,因此不用解决数据冲突,但缺点就是效率低。

上述四个方式可相互组合,各有利弊。你需要根据自己的应用情况,来选择合适的策略组合。

分享