PttCurrent 板


LINE

※ 引述《reader (读者)》之铭言: : ※ 引述《in2 (敬请期待 :P)》之铭言: : : 我知道这样子很占板面, 可是这样子做有几个好处: : : 1. : : 因为目前 .DIR 是 linear 存的 : : (即第一篇放在 0*sizeof(fileheader_t) , 第二篇放在 1*sizeof(fileheader_t)) : : 於是要清掉中间其中一篇, 是会导致大量的资料搬动的, : : 尤其如果又在尖锋时段, 系统 loading很高的时候再加上那个板很大的时候, : : 这样做一点都不是好主意. : 但是绝大多数时候,都是删除最近的文章,搬移动作对於系统的 : 负担,并不太大。例如两岸板大多数时候,都是删除刚转进来的 : 文章。 : 又或者如果是搬移太前面的文章,才使用 (本文已被删除)。 @_@ : : 2. : : 因为推文、修文会把 fileheader_t 写到 .DIR 原来的地方, : : 如果原来的地方被压掉的话, 就会烂掉 (所谓黑洞一类的) : : 所以使用 (本文已被删除) 其实可以大量避免黑洞的问题. : 我没有看过 ptt 的原始码,但早期的 bbs 都有总文章数的设计, : 顶多是造成推文推错或推文数不对,而修文更只是纯档案的操作, : 并不需要写入什麽资讯在 .DIR, 理论上会造成问题的,只有新增 : 文章才对。可以简单解释一下吗? 这个我前面已经解释过了 @@ : : 我觉得现在机器的 loading已经够大了, : : 做一些很暴力的事情 (像是 semaphore) 并不是好主意 @@ : : 而且我也想不到要怎麽用比较好? : : 一个板一个 semaphore? : : 每次有人要读/ 写就去 lock 那个 semaphore ? : : 那 performance会烂掉 :p : : 我还是觉得用本文已删除最好 ;p : 新增文章和删除文章才需要吧。而且也能透过各板的 busy flag : 单用两个 simaphore 达成 mutex 的效果。 光是新增和删除要, 这个量就大的不得了了. 而且请麻烦参考我前面写的文章, 就算是 mutex还是不会解决目前碰到的问题. : 其实 256 个 simaphore 才用到一个 IPC key, 可以制造 128 组 : mutex, 并不是那麽占用系统资源的事,虽然我没试过 loading : 很大的状况,但也不曾觉得 simaphore 很暴力很伤效能,又不是 : 要用 Dijkstra 演算法手动自行制造 mutex. 我还没有看过 kernel source , 并不知道实际 simaphore 是怎麽 implement , 只是想起来就很伤 ^^;;; 尤其如果又是用 spin-lock做的话 :p : 如果现在的 ptt 已改成 multi-threading (应该是吧), 那麽还 : 能使用 pthread_mutex_lock 的方式,更节省系统资源,不过没 : 试过效能如何就是了。 不是, 我们现在还是 multi-process 架构. 目前大部份的 bbs也都是使用 multi-process , multi-threading 目前我只有听过天火. 也许 colabbs也可以算是 multi-threading, 不过 colabbs performance太差, 当然不考虑. : 这都不用大改程式码,不然我更推荐用 thread/process + pipe : 专门处理资料新增和删除,亦即 resource manager 的做法,就 : 不会有那麽多奇奇怪怪的资源共享问题了。 与其这样子的话, 倒不如用我想的某个方式. 在 SHM中, 开个新的 array, 对於每个板给一个 char vstate (共花费 MAX_BOARD bytes) 如果有发生砍文章的动作 (包括 expire) 就把该值加一. 在输入推文前以及进入修改文章前, 自己先纪录一下当时的 vstate. 等到要写入 .DIR 之前, 再核对一下和当前 SHM中的一不一样. 如果一样的话就写入, 不一样的话就推荐失败/ 修文失败 (存进暂存档) 这样子听起来明显会有 race , 不过就目前的情况看起来应该会好的多/ 可以解决大部份的情况. 等到真的 race 再来手动修就是 :p -- 「假设上天只给我爱情或微积分, 我愿选择一生的幸福」 -- ψ 中华人民共和国 1981-未决 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.144
1F:推 springgod:偷偷推一下 有没有考虑在显示的时候拿掉? 140.112.251.218 09/21







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP