Home » 2009 » November (Page 3)

美國政府將有權力要求 ISP 阻擋網站

Slashdot 上看到美國國會通過議案 (以 41 比 28),要求 ISP 必須配合阻擋某些「不法性質」的網站,在新聞稿上面寫的包括色情網站與侵權網站,另外還包括金融犯罪的網站:「Congress may require ISPs to block fraud sites」。

也就是說,這項議案授權美國政府,要求 ISP 阻擋某些美國政府管不到的網站。由於全球網路的交換中心在美國,如果在美國的網路系統可以被政府用命令要求阻擋某些網站,會有很嚴重的影響。

因為這個比數看起來不是參議院或是眾議院的全額,看新聞稿是「The House Financial Services Committee」通過的,不確定是不是政府內的草案,接下來看 EFF 會有怎麼樣的回應,以及其他的後續報導...

MySQL 上大量刪除的技巧

在「大表删除数据的思路」這篇提到 MySQL 刪除的技巧。

MySQL 的刪除不建議直接刪,也就是像這種 query 應該要避免:

DELETE FROM `table` WHERE `lastupdated_at` < 1234567890

因為在巨大的 table 裡面,這類的 query 可能會跑幾分鐘。

一般建議多幾筆 query 刪除:

DELETE FROM `table` WHERE `lastupdated_at` < 1234567890 ORDER BY `id` LIMIT 0, 10000

跑到適當地條件成立時為止。

會需要這樣設計,其中一個主要的原因是因為 MySQL 的 replication 架構:在 master 上面的寫入時是 multi-threading,但在 slave 上面的更新卻只有一個 thread。所以,如果有單一 query 跑太久,會造成有一段時間 master/slave 資料不一致。

另外一個可能的原因是 table 使用 MyISAM。因為 MyISAM 寫入時會鎖住 table,如果花太久時間會使得 SELECT 要等待 query 結束,這點在有 web 的服務要避免 (因為前端的 user 會卡住)。分成多次寫入可以讓 query 在兩次寫入中間取得資料。

原文的建議是將每個要刪除的 entry 都展開成一筆 DELETE,這個方法有不少壞處,應該要避免。

  • 在 replication 架構下會產生大量的 binlog,雖然是徹底打散了,但反而大幅增加 client 與 server 之間的傳輸成本。
  • InnoDB 的表格裡,我們會把 innodb_flush_log_at_trx_commit 設為 1 或 2,確保在 crash 時仍然可以回復資料,代價是每次更新時的 transaction log 都會 fsync(),強制寫回硬碟。如果有大量的 query 進來時,會產生很大量的 random write。

折衷的辦法是使用 LIMIT 限制數量,不過這樣還不夠,因為 MySQL 會認定這個 query 在 master 與 slave 上可能會有不同的結果 (即使兩邊資料一樣,底層的 data structure 可能不同,而造成 LIMIT 後出來的 Result Set 不一樣),為了資料安全而決定切到 ROW mode。

所以另外加上 ORDER BY `id` 確保 master 與 slave 所取得的 entry 是相同的。

Skype 將會提供 Open Source 的用戶端

Slashdot 上有報導說 Skype 將會提供 Open Source 的用戶端軟體:「Skype For Linux To Be Open-Sourced "In the Nearest Future」,而 Skype 官方的 blog 上面也證實了目前正在發展 Linux 上的版本 (而且是 open source):「Skype open source」。

事情是這樣發展的:有人向 Skype 詢問是否有 Mandriva RPM package 可以下載,而 Skype 的人回覆「近期內會放出 open source 的 Linux client」,這樣一來應該就會有不少軟體 porting 進去,或是 cleanroom 重寫 (如果有人認為 license 不夠友善)。

另外也終於可以驗證 Skype 的加密到底安不安全。

Update:參考 comment 的說明,只有 UI 的部份會 open。

ZFS 的 dedupe 工具

Slashdot 上看到 ZFS 也在發展 block-level dedupe 的工具:「ZFS Gets Built-In Deduplication」。這東西應該已經有一票軟體專利在前面阻撓,尤其是 SAN 廠商手上應該都有不少這類型的專利...

Block-level Data Deduplication 指的是重複的 block 區塊可以用 reference 紀錄,而非複製完整的 block。等到有修改時再複製修改,也就是 Copy-on-write

在維基百科的頁面記載了:

ExaGrid's patented byte-level deduplication (content aware), NEC's HydraStor (Content Aware Deduplication Technology) , IBM's ProtecTier, Quantum, EMC/Data Domain, Symantec NetBackup PureDisk, EMC Avamar, Sepaton, FalconStor VTL, SIR, FDS (Virtual Tape Library, Single Instance Repository, and File Deduplication System) are some notable names.

應該會有人跳出來告吧?還是 SunOracle 手上跟這些廠商有神秘的 agreement?

The Pirate Bay 被封鎖後的效應

在瑞典法院下令 ISP 封鎖 The Pirate Bay (TPB) 之後,這陣子 ISP 開始動起來了,使得 TPB 的連線斷斷續續的。不過,McAfee 發現,可以取得版權物的站台反而因此增加了 300%:「Pirate Bay Closure Sparked P2P Explosion」。

本來大家都往 TPB 找資料,現在因為 TPB 被擋 (或是不順),就有人利用之前從 TPB 上面搜刮下來的資料 hosting...

不知道這次會花多久時間恢復...

Firefox 3.6 系列

把家裡的 Firefox 換成 3.6b2pre 了,照慣例一樣是砍掉重來。

把東西裝回去時發現 RefControl 爛掉了,不如網站所宣稱的可以用。這部份反而意外找到 Mason 可以用,而且對 host 靈活多了 (用 regular expression),之後應該會丟掉 RefControl 吧。

速度與 UI 沒什麼太大變化。有些動作有感覺變慢了一些,但有些動作有感覺變快... 看了細部設定的部份,發現 about:config 內的 javascript.options.jit.chrome 預設打開了。另外開新的 tab 時,新的 tab 會貼到 tab 的旁邊,而非最後面 (最右側)。

穩定性的話,目前逛網頁還沒遇到 crash 或是卡住,算是堪用的版本吧,是可以找時間把手上的機器都換上去測試了...

Sunlight Labs 對美國政府呼籲:「不要再用 Adobe 的技術了」

這兩天在好幾個地方都看到同樣的報導了,Sunlight Labs 對美國政府呼籲,不要再使用 AdobePDFFlash:「Adobe is Bad for Open Government」,因為這兩項技術對於歐巴馬政府想推動的 Open Government 有極大的障礙。

文章的論點其實很簡單,Sunlight Labs 的人認為 Open Government 使用的技術不僅必須是「公開標準」,而且必須是「容易實做」的標準。PDF 的技術是公開標準 (ISO/IEC 32000-1:2008),但不是容易實做的標準,在不少 comment 裡面很多人都提到,擷取文字的最快方式是轉成圖檔後用 OCR 技術拉出來。這點 OpenDocument (ISO/IEC 26300:2006) 也有相同的問題。

不過,當國外已經更上層樓在爭論要走向「容易實做」的公開標準時,國內還是繼續 doc 與 docx...

Archives