荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (prepare for the future), 信区: InstallBBS
标  题: FB30新文章无法消除??(转寄)
发信站: 荔园晨风BBS站 (Thu Jan 17 14:15:32 2002), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjk.bbs@apue.dhs.org 所发表 】
发信人: Czz.bbs@bbs.feeling.dhs.org (Moulin Rouge), 信区: BBSDEV
标  题: FB30新文章无法消除??(转寄)
发信站: 温馨小屋 (Tue Jan  8 15:38:20 2002)
转信站: APUE!news.tiaozhan.com!news.feeling.dhs.org!Feeling

【 在 Amsterdam (淡) 的大作中提到: 】
: 【 在 rexchen (rexchen) 的大作中提到: 】
: : 强烈建议加上一个 read time flag 效果超好的..
: : 如果有人 clean new flag 就可以把整个板的纪录 bzero 掉..
: : 当然很重要的是存纪录时要分板来存...
: 嗯, 就管理者而言: 省空间
:     就使用者而言: 也省力许多
: : 我是改采用一个档划分很多 block , 然後一个板选择一个 block , 三个月没读
: : clean 掉那个 block 让给别的板用...
:         所以..就是事先规划好每版(假设有A,B,C,D,E版)
:         纪录存法如下方的区块一样:
:          ├─A─┤B├─C─┤D├─E─┤
:           10101010  01010101  01010101  101010101 01010101

        不是先规划好, 是如果有读版, 才增加一个区域.
        所以可能是
           ├─A─┤├─C─┤B├─E─┤D

        也有可能有没读到的, 不需要浪费那个空间放重来都不读的板.

:         然後三个月没读 B 版,就把 B 版存放的区块资料 expire 消掉
:         但是保留原先 B 版占用的区块空间继续供 B 版或他版使用?

        消掉, 不需要浪费空间. ( 空间会空出来给其他的板用, 随时可能有新增看板 )

:         另外这些区块也是存放同一档,那特殊版跟普通版的判断是靠类似转信区别用
:         的 flag 原理吗?

        是的放同一档.   特殊板, 我的部份是指个人板, 因个人需求才需要多档案.
        这样想好了, 看一篇文章是读一个档案, 读纪录是一个档案, 假设 unix
        通用的 block 是 4k , 事实上, 所付出的代价并不高, 相对节省记忆体, 和
        避免检查的回圈, 所得到的效益会更大.

:         最近是在参考 tin , 它的做法(.newsrc)似乎是直接给 "newsgroup:#" ...
:                 tw.bbs.admin.firebird.fpug:
:                 tw.bbs.admin.firebird: 1-6
:                 ilan.rec.diy:
:                 tw.bbs.admin.installbbs: 1-13725
:                 bbs.test: 1-882,887,890-891,893,902
:                   :
:         只存简单的 newsgroup 与文章编号而已,
:         另外, 会在启动时把旧的存成 .oldnewsrc
:         空间也不会占多少..
:         不过, 把 tin 的 source code 拿来看来看去, 还是一句话...可以形容
:         ...#$%^@! 有够复杂的

        光一个正规化就很麻烦, 事实上, tin 是设计给 client 用的, 而不是给
        server 用的, 他可以无限制浪费资源去检查, 但是 server 端可不能这样
        . 而且不要忘记了 bbs 内部并没有一个连续的号码. 这方面会更复杂.

        建议多使用 hash , 我还在注册时发给每个人一个 random number , 让
        整个 hash 不会因为时间一样, 而得到同一个 hash number :P

        我现在所有目录都变成 00 ~ FF / 00 ~ FF 一层一层..
        就算在 shell 下也很难找出使用者在哪, 安全, 平均, 速度快.
        所有的修复内建在系统内, 我还在 bbsd 内建了一个 cron , 定时修复.

        管理者也不用那麽辛苦在那边看半天. 会坏掉的档案, 能修的自动修.
        不能修的自动删除, 更新.

:         看了之後, 觉得基本上整个 boards.c 几乎要完全改写
:         甚至是增加 ????? 行了... (短时间内无法消化, 无力..)
:         或许还可以跟 innbbsd、PGP 整合在一起...
:         结论是..这问题不愧是历史悬案, 从以前 FireBird 2.x 就存在了... :Q

        阅读纪录一向是 bbs 最复杂的东西, 目前还没什麽最佳方法.

        事实上改写阅读纪录应该不会差太多行数 :P
        我的建议是改写 bbs , 会简单很多.. 行数大幅减少..

        我觉得万把行就可以搞定了..
        目前我写的部份如下
        可以看出写最多的是输入输出和编辑器
        里面还有很多 debug code , ...
        以前的蛋卷大概有三万多行, 加上 ssh 可以破五万行 @@|||
        事实上蛋卷的功能还没我新写的系统多..
        没有结构性的东西, 越改越多, bug 越多 @@


     25    adm.c   //站长功能
    443    bbsd.c  //BBS Daemon/Kernel/Cron
    105    boards.c//看板系统
    226    cal.c   //行事历
    267    chat.c  //聊天室
    406    chatd.c //聊天室 Daemon
    263    conf.c  //设定档
    642    dir.c   //群组系统 (我的最爱)
   1011    edit.c  //编辑器
    203    big5gb.c//Big5/GB
     90    help.c  //求助
    376    info.c  //个人资料
    696    list.c  //主架构,整个系统核心
    246    mail.c  //邮件
    415    main.c  //主功能
    297    mark.c  //阅读纪录
    152    menu.c  //选单
    542    misc.c  //其他
    429    more.c  //浏览器
    197    msg.c   //讯息
    395    read.c  //文章系统
    147    reg.c   //注册
    500    talk.c  //聊天,好友
    328    ui.c    //使用介面
    213    utmp.c  //使用者列表,呼叫器
   1272    vio.c   //输入输出介面
   9886    总计

        我最喜欢蛊惑人家重写了...:p
--

拖人下水.. lala
--
※ 修改:□rexchen 於 Jan  8 06:09:56 修改本文□[FROM: news.tku.edu.tw]
※ 来源:□种子网 BBS bbs.seed.net.tw□[FROM: news.tku.edu.tw]
--
※ 转载:.温馨小屋 bbs.feeling.dhs.org.[FROM: feeling.dhs.org]
--
※ 转寄:·UNIX编程 apue.dhs.org·[FROM: 202.119.32.102]
--
※ 转寄:·UNIX编程 apue.dhs.org·[FROM: 202.119.32.102]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店