返回信息流转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
这次 KBS 崩溃传闻是 reiserfs 偶尔比较衰的缘故,由于 KBS 里小文件很多,
迁移到其它文件系统顶不过来,所以我想把一个版面的所有文章存储在一个文件
里头,基本思路是只在数据文件末尾新增帖子,修改帖子也是在数据文件末尾建立
一个新帖。有一个服务进程写数据文件,其它客户进程直接读取数据文件,发的帖子
存在一个缓冲目录下,由服务进程类似 smtp 服务器的做法收集帖子添加到数据
文件末尾。
删除帖子只是在定长记录的索引里做标记,当数据文件和索引文件里删除记录
达到一定限度后,对数据文件做一个拷贝式垃圾回收,建立新数据文件和索引
文件,发送信号给服务进程让其切换到新文件上。
由于只有一个写进程并且数据文件只添加不修改(严格来说是不修改帖子记录的可变
长度部分),所以写进程和读进程之间、读进程和读进程之间不用加锁。
这么做主要关注的是避免依赖 reiserfs 这样为小文件优化的文件系统,并且避免
RDB 恐惧症,至于效率我估算即使用关系数据库,以水木目前版面发文量应该也不在
话下。
目前只实现了数据文件和索引文件的主要代码,还没有客户端和服务进程的-_-b
这是一条镜像帖。来源:北邮人论坛 / bbs-man-dev / #6139同步于 1 周前
BBSMan_Dev机器人发帖
abbs-0.0.1
Dieken.
1 周前镜像同步25 回复
订阅后,新回复会通过你的通知中心匿名送达。
25 条回复
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
目前只有 add, get, delete article 实现,update 那个刚想起来实现错了,
忘了改索引,且这样吧,以后再改。
【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: 这次 KBS 崩溃传闻是 reiserfs 偶尔比较衰的缘故,由于 KBS 里小文件很多,
: 迁移到其它文件系统顶不过来,所以我想把一个版面的所有文章存储在一个文件
: 里头,基本思路是只在数据文件末尾新增帖子,修改帖子也是在数据文件末尾建立
: ...................
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
难道传说中伟大的dird要开始变成现实了?
【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: 这次 KBS 崩溃传闻是 reiserfs 偶尔比较衰的缘故,由于 KBS 里小文件很多,
: 迁移到其它文件系统顶不过来,所以我想把一个版面的所有文章存储在一个文件
: 里头,基本思路是只在数据文件末尾新增帖子,修改帖子也是在数据文件末尾建立
: ...................
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
早着呢,简单的发帖看帖没太大问题,但要达到目前 KBS 繁多的特性少说得一两年了,
而且我也说不定那时候没动力写下去了。
【 在 pig2532 (猪猪猪) 的大作中提到: 】
: 难道传说中伟大的dird要开始变成现实了?
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
这个是一个新的系统,还是可以放进kbs里用的?
【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: 早着呢,简单的发帖看帖没太大问题,但要达到目前 KBS 繁多的特性少说得一两年了,
: 而且我也说不定那时候没动力写下去了。
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
我没看过 kbs 代码,不清楚集成到 kbs 里难度多大。我暂时想实现个简单的新的系统,
感兴趣的是单文件数据库以及多个 board daemon 在同一台机器上如何管理以及在多台
机器上如何管理,但愿我能做出一个 bbs 集群出来,呵呵。
【 在 pig2532 (猪猪猪) 的大作中提到: 】
: 这个是一个新的系统,还是可以放进kbs里用的?
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
工作量很大啊
【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: 我没看过 kbs 代码,不清楚集成到 kbs 里难度多大。我暂时想实现个简单的新的系统,
: 感兴趣的是单文件数据库以及多个 board daemon 在同一台机器上如何管理以及在多台
: 机器上如何管理,但愿我能做出一个 bbs 集群出来,呵呵。
: ...................
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
呵呵,慢慢来,我初步构想的是这部分工作量并不大,客户端只需要达到发帖、看帖、
删帖、标记,切换版面,服务端就是读写数据库以及与管理进程交互。KBS 里权限、
管理、界面、信件之类的功能我都还没想法。
【 在 pig2532 (猪猪猪) 的大作中提到: 】
: 工作量很大啊
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
我觉得:
只需要把帖子用服务进程放在别的,比如说多台,服务器上就可以了。
用户信件跟版面帖子可以一样的处理。
至于其它的功能,都放在主服务器上。
【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: 呵呵,慢慢来,我初步构想的是这部分工作量并不大,客户端只需要达到发帖、看帖、
: 删帖、标记,切换版面,服务端就是读写数据库以及与管理进程交互。KBS 里权限、
: 管理、界面、信件之类的功能我都还没想法。
: ...................
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
嗯,你这个想法很fastcgi
【 在 pig2532 (猪猪猪) 的大作中提到: 】
: 我觉得:
: 只需要把帖子用服务进程放在别的,比如说多台,服务器上就可以了。
: 用户信件跟版面帖子可以一样的处理。
: ...................
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
我记得现在的 bbs 读文件时没有用 read,使用的好象是 mmap
【 在 pig2532 (猪猪猪) 的大作中提到: 】
: 标 题: Re: abbs-0.0.1
: 发信站: 水木社区 (Mon Apr 7 14:10:32 2008), 转信
:
: 工作量很大啊
:
: 【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: : 我没看过 kbs 代码,不清楚集成到 kbs 里难度多大。我暂时想实现个简单的新的系统,
: : 感兴趣的是单文件数据库以及多个 board daemon 在同一台机器上如何管理以及在多台
: : 机器上如何管理,但愿我能做出一个 bbs 集群出来,呵呵。
: : ...................
:
: --
: Hallowed are the Ori
:
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 211.151.94.*]
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
似乎没有考虑删帖需求其实很大,特快一天清掉帖量估计有上万吧?
【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: 这次 KBS 崩溃传闻是 reiserfs 偶尔比较衰的缘故,由于 KBS 里小文件很多,
: 迁移到其它文件系统顶不过来,所以我想把一个版面的所有文章存储在一个文件
: 里头,基本思路是只在数据文件末尾新增帖子,修改帖子也是在数据文件末尾建立
: ...................
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
我现在构思的是客户端启动时会读取一个版面跟服务器对照表,然后
切换版面时视需要 rlogin 过去,这样就省了要自己写网络部分的代码了。
信件跟帖子一样处理这个想法很好,多谢!
【 在 pig2532 (猪猪猪) 的大作中提到: 】
: 我觉得:
: 只需要把帖子用服务进程放在别的,比如说多台,服务器上就可以了。
: 用户信件跟版面帖子可以一样的处理。
: ...................
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
不了解 kbs 的代码,我求证了 JulyClyde 的,说现在 KBS 每篇帖子一个
小文件,然后有一个索引文件。问题关键在这么多小文件很考验文件系统,
而且我比较奇怪这么多小文件怎么 mmap?
【 在 peach (新昵称) 的大作中提到: 】
: 我记得现在的 bbs 读文件时没有用 read,使用的好象是 mmap
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
我估算了的,每个索引项大概 150 bytes, 2GB 的索引文件能记录 1400w 帖子,
2GB 数据文件估算每帖平均 150 bytes 冗余索引 + 1 KB 内容能记录 178w
帖子,所以把帖子全放一个文件里不删除不会造成太大问题。
附件我计划是单独存放的,按 MD5 值分版存放。
【 在 Evan (最近我很忙) 的大作中提到: 】
: 似乎没有考虑删帖需求其实很大,特快一天清掉帖量估计有上万吧?
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
1KB的内容太乐观,回文带引文加qmd,数据可不少
【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: 我估算了的,每个索引项大概 150 bytes, 2GB 的索引文件能记录 1400w 帖子,
: 2GB 数据文件估算每帖平均 150 bytes 冗余索引 + 1 KB 内容能记录 178w
: 帖子,所以把帖子全放一个文件里不删除不会造成太大问题。
: ...................
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: 我现在构思的是客户端启动时会读取一个版面跟服务器对照表,然后
: 切换版面时视需要 rlogin 过去,这样就省了要自己写网络部分的代码了。
看起来好累
: 信件跟帖子一样处理这个想法很好,多谢!
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
mmap 索引 ...
【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: 不了解 kbs 的代码,我求证了 JulyClyde 的,说现在 KBS 每篇帖子一个
: 小文件,然后有一个索引文件。问题关键在这么多小文件很考验文件系统,
: 而且我比较奇怪这么多小文件怎么 mmap?
: ...................
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
文章同样也是 mmap 的。
【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: 不了解 kbs 的代码,我求证了 JulyClyde 的,说现在 KBS 每篇帖子一个
: 小文件,然后有一个索引文件。问题关键在这么多小文件很考验文件系统,
: 而且我比较奇怪这么多小文件怎么 mmap?
: ...................
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
好吧,我估计平均 10 KB,那样 2GB 能记录约 17 w 帖子,如果不加 2GB
限制直到 4GB,一个月差不多就够了,实在不行垃圾回收做勤快点,一天
一次,呵呵
【 在 Evan (最近我很忙) 的大作中提到: 】
: 标 题: Re: abbs-0.0.1
: 发信站: 水木社区 (Mon Apr 7 17:25:51 2008), 转信
:
: 1KB的内容太乐观,回文带引文加qmd,数据可不少
: 【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: : 我估算了的,每个索引项大概 150 bytes, 2GB 的索引文件能记录 1400w 帖子,
: : 2GB 数据文件估算每帖平均 150 bytes 冗余索引 + 1 KB 内容能记录 178w
: : 帖子,所以把帖子全放一个文件里不删除不会造成太大问题。
: : ...................
:
: --
: ╱┐ ──┐ ╱ ╱┬╱┬
: ┌┬┐ ──╱─ ╱ ┼ ╱┬ ├┐╱┐ ╱╲ ╱ ┐ ┼ ╲│╱
: └┴┘ │ │┌┐ ╳ ├┤☉│ ╱──╲ '╱ /├ ──┐
: ╱│☉ ┘ │└┘ └┘ ┘ ╲╲╱ ╱┌┐ │ ──┤
: └─┘ ─── └┘ ──┘
:
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 219.142.59.*]
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH
我经常用 ssh 在两台服务器之间转来转去,缺点是登录有点慢,不知道 rlogin
是否快点,如果足够快用户基本感觉不到也就没什么了。
【 在 fancyrabbit (兔兔猫★Initial F★我是流动人口) 的大作中提到: 】
: 看起来好累