V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  shakeyo  ›  全部回复第 4 页 / 共 10 页
回复总数  187
1  2  3  4  5  6  7  8  9  10  
@14104chk 现在就是你说的这个方案,数据库只有文件目录结构的索引,路径枚举的方式存储
真实文件是存储到 oss 上的,这里讨论要用到锁的场景指的也是针对文件目录树的冲突
那你的思路跟我是一样的,操作子目录得一直向上锁定
再蹲一个更好的思路
当前碰到一个网盘场景,刚好发出来看看大佬们的想法
数据库中基于路径枚举以及邻近表的方式存储了一个文件目录结构
当多个用户对某个文件夹以及子文件夹进行操作的时候,可能会导致冲突
例如,用户 a 在 /1/2 文件夹下上传或者移入文件、文件夹
用户 b 同时对 /1 移动或者 rename ,或者删除,此时很显然造成了冲突,如果不做任何处理,用户 a 将碰到部分文件上传失败
简单的思路就是根据路径设计一套读写锁,如果写目录,则把当前文件往上全部加锁,其他操作发现有写锁要么等待,要么友好提示用户稍后再试
2023-02-15 11:16:16 +08:00
回复了 kkkbbb 创建的主题 程序员 代码问题请教
无意义,循环不会跳出,这也太基础了
大概率是调试代码
1  2  3  4  5  6  7  8  9  10  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2094 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 16:12 · PVG 00:12 · LAX 09:12 · JFK 12:12
Developed with CodeLauncher
♥ Do have faith in what you're doing.