问题:说到分布式,就很容易联想到并发,并行操作带来的一些问题,即同一时刻对同一数据操作带来的冲突问题。比如往数据库里改数据,张三改的3,李四改的四,那就会带来一些问题了,冲突问题

 

解决办法:数据库解决这种问题,采用的是事务机制,就是锁---改数据---解锁,谁先拿到锁了,谁有权利操作,操作完了,解锁,其他人再抢锁,这样能解决冲突问题。

同样的,版本控制系统也可以采用锁机制来解决并行开发带来的冲突,谁先拿到锁,谁提交代码。但是这样就有个问题,一是这样降低了效率,二是万一一个人拿到锁了,一直不解锁,下个人就一直等着拿锁,不能提交代码。

另外一种模式,就是Copy-Modify-Merge,就是张三李四都拷贝一份儿代码到自己电脑上,张三和李四各自修改代码,提交的时候,再把两个人的代码合并,有冲突的地方,处理掉冲突后,提交一个最新版本。

git采用的是第二种方式,而且每台开发电脑上都有一样的完整的版本库,所以称为分布式版本控制,相对应的就是suv,集中式管理系统

相关文章:

  • 2022-01-02
  • 2022-01-13
  • 2021-10-20
  • 2021-05-17
  • 2022-12-23
猜你喜欢
  • 2021-04-28
  • 2021-07-10
  • 2021-10-23
  • 2021-12-03
  • 2021-12-06
  • 2022-02-26
相关资源
相似解决方案