作者stevel (環游世界)
標題[轉錄][常識] 海水倒灌的由來 (Part 2)
時間Sun Apr 13 16:59:57 2003
※ [本文轉錄自 stevel 信箱]
作者:
[email protected]
標題: [常識] 海水倒灌的由來 (Part 2)
時間: Sun Apr 13 16:59:19 2003
作者: stevel (環游世界) 看板: stevel
標題: [常識] 海水倒灌的由來 (Part 2)
時間: Sun Apr 13 06:21:24 2003
☆
倒灌流程
批踢踢站方為了簡化轉信上的設定,寫了一個程式叫做 inndBM,
用來產生一部分的轉信設定檔案。
這一小部分的轉信設定有什麼用途呢?仔細聽好了。
前一篇曾經提到過,轉信是靠 news server 做為中繼站,因此
所有參與轉信的 BBS 都會將文章送給 news server。但是此時
news server 要怎樣將文章再轉手給其他 BBS 站呢?
一般的作法是每個 BBS 站定期去 news server 把新的文章抓回來。
但怎樣才是「新」的文章呢?其實在 news server 每個 newsgroup
裡的文章都編有流水號,利用這個號碼,BBS 就可以知道先前抓過
哪些文章,以及下一次要從哪裡開始抓取。
回到故事的起點,那個 inndBM 的程式,每天 3:00AM 會執行一次,
它會將所有的流水號都歸零,然後再連去 news server 查看最新的
流水號,並紀錄下來。
萬一此時因故連不上 news server (其實電機系的對外網路常有不穩),
無法取得最新的流水號,那會有什麼樣的後果呢?
那就只剩下歸零的效果,亦即 BBS 會以為所有的文章都還沒有抓過。
故事繼續進行下去,據推測批踢踢的例行抓信時間如下:
4:17AM, 4:47AM, 5:17AM, 5:47AM, 6:17AM, 6:47AM,
7:17AM, 7:47AM, 8:17AM, 8:47AM, 9:17AM, 9:47AM,
10:17AM, 10:47AM, 11:17AM, 11:47AM, 12:17PM, 12:47PM,
1:17PM, 1:47PM, 2:17PM, 2:47PM, 3:17PM, 3:47PM,
4:17PM, 4:47PM, 5:17PM, 5:47PM, 6:17PM, 6:47PM,
7:17PM, 7:47PM, 8:17PM, 8:47PM, 9:17PM, 9:47PM,
(夜間尖峰休息) 2:17AM, 2:47AM
假如剛剛被歸零的事件不幸發生了,那麼每次抓信的時候,就會從
news server 上最古老的文章開始抓。另外還有一點就是每次抓信
最多只會抓 100 篇,所以古文字出現的速率約略是 100篇/30分鐘。
累積的最大篇數應為 100*38 = 3800 篇。
這就是可怕的海水倒灌的由來!
討論:inndBM 為什麼要這樣設計呢?
筆者認為它主要是想讓一部分的轉信設定檔案能夠自動產生。例如
有看板要申請轉信,轉信站長就只需要動一小部分的設定檔,其他
的都交給 inndBM 產生。
但是筆者又認為它的做法實在太爛,除了海水倒灌的後遺症以外,
還會有漏轉信的可能發生。
假如 news server 在 2:47AM 到 3:00AM 之間有新文章的話,
這些文章就不會被抓回 BBS 了。
其他看法:
1. 批踢踢把文章送到 news server 的時間是 2:00AM~21:30PM,
每半個小時一次。
批踢踢的推文功能固然很棒,但是只有轉信那一刻以前的推文
才會被轉出去,後續的推文只能在批踢踢觀賞,這害得筆者只
敢在批踢踢看級板的文章。但這個問題在根本上很難解決。
2. 如果在轉信之前,有修改過文章的話,該篇文章就轉不出去,
這也是很惱人的 bug,竟然還沒有人去修。
結語:千錯萬錯,都是批踢踢的錯!請大家給他卵‧蛋‧踢~~~~~~!!!
--
※ 發信站: 新批踢踢(ptt2.csie.ntu.edu.tw)
◆ From: 140.112.21.108
1F:→ AlvinX:推 卵‧蛋‧踢~~~~~~!!! 推140.112.249.183 04/13
--
※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw)
◆ From: 140.112.21.108
2F:→ IMO:結語:千拜萬拜 不如整箱國農拿來拜 推 218.160.13.96 04/13
3F:→ otom:卵蛋踢出名了~~ 推 140.112.242.85 04/13
4F:→ archiang:哈里路亞的背景音樂出現了 推 140.112.239.58 04/13
5F:→ ck881256:可是這樣會同時召喚河神跟史地佛 推 61.218.112.75 04/14