星期一, 5月 25, 2009

mod_blocking

最近寫出來幾個東西,其中一個是 apache module,目前命名為 mod_blocking。在 apache 2.2 worker MPM (multi-threading 環境) 下透過 .htaccess 設定阻擋可能的攻擊行為。(像是灌票,或是衝人氣)

寫這個東西時學習到 libmemcached 的用法,以及目前 libmemcached 在 multi-threading 環境下的限制。另外熟悉 apr 的用法,不過比較可惜的是 apr 的 license 使得無法用他開發軟體。再來就是複習 multi-threading 環境要注意的資源共用問題。

第一個版本的 mod_blocking 已經暫時告一段落,不過裡面有大量的 PIXNET only code,還要再找時間慢慢把這些 hard 的部份改寫成變數讀入... 另外已知我使用 libmemcached 的方式會 memory leak,不過速度還可以接受,就暫時不管他了...

星期六, 5月 23, 2009

造輪子

當 scale 愈來愈大的時候就很明顯感覺到 open source 的技術不夠用,有很多東西要自己開發。在找方向時會看到很多公司都在造輪子...

像是 Google 很早就造了 Chubby,分散式且高可靠度的 lock service,被用在 GFSBigTable 裡 (這兩個也是造出來的輪子)。Yahoo 把造 Hbase 的人找進去,把 Search 的架構轉換過去,Amazon 也造了 Dynamo,被用在購物車與 Amazon Web ServicesFacebook 造了 Cassandra 把搜尋功能換上去。

所以這陣子也得開始造輪子了。所有的東西都是一層疊一層,想要土法煉鋼建出高樓大廈是不可能的,一定得每層都很穩定。