云计算必要对分布式的海量数据举行处置惩罚和分析,因此数据管理技能必须能够用来高效地管理大量的数据。云计算系统中的数据管理技能主要是Google的BT(BigTable)数据管理技能和Hadoop团队开发的开源数据管理模块HBase 。BT是建立在GFS、Scheduler、Lock Service 和MapReduce之上的一种大型的分布式数据库,与传统的关系数据库不同,它把所有的数据都作为对象来处置惩罚,以形成一个巨大表格用来分布存储大规模结构化数据。
如何实现一个分布式锁
参考
一, 基于数据库实现分布式锁
1.悲观锁 利用select … where … for update 排他锁
注意: 其他附加功能与实现一根本一致,这里必要注意的是“where name=lock ”,name字段必须要走索引,否则会锁表。有些情况下,比如表不大,mysql优化器会不走这个索引,导致锁表问题。
2.乐观锁
所谓乐观锁与前边最大区别在于基于CAS思想,是不具有互斥性,不会产生锁期待而斲丧资源,操作过程中认为不存在并发冲突,只有update version失败后才能觉察到。我们的抢购、秒杀就是用了这种实现以防止超卖。
通过增长递增的版本号字段实现乐观锁