k8s 运行深度学习 k8s实现原理

在大型分布式系统中,定会存在大量并发写入的场景。在这种场景下如何进行更好的并发控制,即在多个任务同时存取数据时保证数据的一致性,成为分布式系统必须解决的问题。

悲观并发控制和乐观并发控制是并发控制中采用的主要技术手段,对于不同的业务场景,应该选择不同的控制方法。

悲观锁

悲观并发控制(又名“悲观锁”,Pessimistic Concurrency Control,缩写“PCC”)是一种并发控制的方法。它可以阻止一个事务以影响其他用户的方式来修改数据。如果一个事务执行的操作读某行数据应用了锁,那只有当这个事务把锁释放,其他事务才能够执行与该锁冲突的操作。

在悲观锁的场景下,假设用户 A 和 B 要修改同一个文件,A 在锁定文件并且修改的过程中,B 是无法修改这个文件的,只有等到 A 修改完成,并且释放锁以后,B 才可以获取锁,然后修改文件。由此可以看出,悲观锁对并发的控制持悲观态度,它在进行任何修改前,首先会为其加锁,确保整个修改过程中不会出现冲突,从而有效的保证数据一致性。但这样的机制同时降低了系统的并发性,尤其是两个同时修改的对象本身不存在冲突的情况。同时也可能在竞争锁的时候出现死锁,所以现在很多的系统例如 Kubernetes 采用了乐观并发的控制方法。

乐观锁

乐观并发控制(又名“乐观锁”,Optimistic Concurrency Control,缩写“OCC”)是一种并发控制的方法。它假设多用户并发的事务在处理时不会彼此影响,各事务能够在不请求锁的情况下处理各自的数据。在提交数据更新之前,每个事务会先检查在该事务读取数据后,有没有其他事务又修改

相关推荐

  1. k8s 运行深度学习 k8s实现原理

    2024-01-08 06:28:02       54 阅读
  2. k8s学习

    2024-01-08 06:28:02       52 阅读
  3. <span style='color:red;'>学习</span><span style='color:red;'>k</span><span style='color:red;'>8</span><span style='color:red;'>s</span>

    学习k8s

    2024-01-08 06:28:02      48 阅读
  4. K8S学习

    2024-01-08 06:28:02       53 阅读
  5. k8s学习

    2024-01-08 06:28:02       47 阅读
  6. <span style='color:red;'>k</span><span style='color:red;'>8</span><span style='color:red;'>s</span><span style='color:red;'>学习</span>

    k8s学习

    2024-01-08 06:28:02      36 阅读
  7. <span style='color:red;'>k</span><span style='color:red;'>8</span><span style='color:red;'>s</span><span style='color:red;'>学习</span>

    k8s学习

    2024-01-08 06:28:02      39 阅读
  8. <span style='color:red;'>K</span><span style='color:red;'>8</span><span style='color:red;'>S</span><span style='color:red;'>学习</span>

    K8S学习

    2024-01-08 06:28:02      32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-08 06:28:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-08 06:28:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-08 06:28:02       82 阅读
  4. Python语言-面向对象

    2024-01-08 06:28:02       91 阅读

热门阅读

  1. CentOS 7 系列默认的网卡接口名称

    2024-01-08 06:28:02       56 阅读
  2. OpenVPN非加密连接

    2024-01-08 06:28:02       46 阅读
  3. conda常用命令总结

    2024-01-08 06:28:02       47 阅读
  4. webpack配置入门

    2024-01-08 06:28:02       55 阅读
  5. HTTP一些状态码的记录

    2024-01-08 06:28:02       58 阅读
  6. 认识Git

    认识Git

    2024-01-08 06:28:02      50 阅读
  7. Auto tokenizer和Bert tokenizer的区别

    2024-01-08 06:28:02       64 阅读