daxiguaya

daxiguaya

V2EX 第 389401 号会员,加入于 2019-03-05 11:59:42 +08:00
今日活跃度排名 6855
根据 daxiguaya 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
daxiguaya 最近回复了
1 天前
回复了 hessian 创建的主题 硬件 关于 SSD 寿命的疑惑
海康的 C2000 用的颗粒在 2020 年的时候就被 B 站一个 UP 开盒过的. https://space.bilibili.com/10909041/search?keyword=%E6%B5%B7%E5%BA%B7
<img alt="我的头像" src="https://i.imgur.com/a/YZzjU8C">
![我的头像](//imgur.com/a/YZzjU8C)
2023-01-19 15:16:50 +08:00
回复了 h0099 创建的主题 程序员 如何从理论上避免这类并行任务交错执行时的冲突问题
@h0099 1. 我对于"进程锁"所要处理的问题有不一样的看法. 我认为"进程锁"应当能解决你提出的"幻读"的问题,它存的是真正写入的数据. 你担心"无事可做",只能说目前只能保证不会重复插入导致整个事务回滚,这个应该更重要? 关于"饥饿"的问题,如果真的是瓶颈的话,可以提早去识别"垃圾数据": 非当前所有活跃"写事务"需要的数据都是"垃圾数据"

2. 就算有各种释放锁、忽略的机制我认为还是有漏洞(还是上面说的那个时机),关键点在于向"进程锁"写入数据在提交之前. 确实加了些机制容错,但在 `"线程 1"向"进程锁"插入数据->处理失败"进程锁"数据` 的中间会有`"线程 2"读取"进程锁"`. 如果有理解不对的地方可以直接忽略掉.

PS: `SELECT ... FOR UPDATE`这个问题我保留观点,还要考虑间隔锁、表锁之类的问题,除非死锁的时候我会去 DEBUG 数据库的锁状态,其它情况我想操这个心 :)
2023-01-17 11:48:23 +08:00
回复了 h0099 创建的主题 程序员 如何从理论上避免这类并行任务交错执行时的冲突问题
1. 图 1 中的"进程锁"清理数据的时机可以调整下,等到没有任何活跃事务的情况下再把它清掉.

2. 图 1 的设计中向"进程锁"插入数据的时机看起来有问题: 如果"线程 1"锁定完后(数据 A)事务处理失败了,那么"线程 2"存在也忽略掉(数据 A). 时机是"线程 1"-"锁新插入行"后,""释放新插入行锁""之前"线程 2"获取"已被锁的行".

PS: 这些是基于单体服务的设计. 我不喜欢用`SELECT ... FOR UPDATE`,它通常会让我其它功能查询也被无辜的阻塞
2022-12-05 10:58:21 +08:00
回复了 andyJado 创建的主题 问与答 没有国外手机号,好想玩 CHATGPT🥺
有个免费的,得多试几次: https://sms24.info/en/messages/OpenAI/1
2022-01-20 18:21:44 +08:00
回复了 huazhaozhe 创建的主题 git git 如何所有分支里边搜索代码片段
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5423 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 03:05 · PVG 11:05 · LAX 20:05 · JFK 23:05
Developed with CodeLauncher
♥ Do have faith in what you're doing.