Mobile01 的 Ryan 換 InnoDB 的筆記與心得

沒記錯的話,Mobile01 應該是去年暑假左右從 MyISAM 換成 InnoDB 的?一切的起頭應該是蔣大「現在SSD硬碟可以拿來跑資料庫嗎?」這篇。

另外同場加映使用 Percona 的工具讓管理上更方便:

MyISAM 是 MySQL 5.0 與 5.1 預設的 storage engine (到 5.5+ 預設的 storage engine 改成 InnoDB),讀取的效能相當好,但總是有些問題:

當時剛好有機會跟蔣大與 Ryan 聊到當時 Mobile01 遇到的問題,問了一些細節後感覺上是 MyISAM 的問題,就提了 MyISAM 與 InnoDB 的優缺點比較,以及幾個 InnoDB 的 High Availability 的解決方案 (晚上就算設備出問題也不用擔心要爬起來救機器)。

  • MyISAM 的讀寫互斥、寫入也是互斥。當有資料在讀取時無法更改資料庫內容,而有寫入時其他人不能讀取。另外同時間只能有一個人寫入。(有少數操作是例外,像是 bulk insert,這邊就不提了…)
  • MyISAM 不是 crash-safe storage engine。機器總是有機會爛掉,這時候除了重開機的時間外,還需要有修 table 的時間,對於網站的 uptime 比較痛。

這兩點是當時 Mobile01 遇到最痛的問題:用 iostat 看起來 I/O 明明就沒有滿,但就是會卡 SQL query,而當機後修資料庫的時間又很長。

一個是已經在業界驗證很久的解決方案 XFS + DRBD + Heartbeat,當機器發生問題時的 downtime 從 30secs 到五分鐘 (依照資料性質與大小而有差異,在切換上線後有資料庫的熱機問題)。另外一個是當時還很新的 Percona XtraDB Cluster,可以避免資料庫的熱機問題,不過技術很新。

後來 Mobile01 用 RAID 10 的硬體,軟體的部份用 Debian + XFS + DRBD + Heartbeat 跑 Percona Server 的 XtraDB (InnoDB 的加強版),先用 VM 做了 PoC (直接砍掉 mysqld,或是直接關掉 VM 之類的,測試整個機制夠不夠自動化),然後就上線了 :p

記得上線那幾天跟 Ryan 聊,好像效果還不錯吧…

Posted in Computer, Database, Hardware, Murmuring, MySQL, Software | Tagged , , , , , , , , , , , , | 1 Comment

AWS 的 ELB 可以自訂 HTTP/HTTPS Timeout 時間了

Elastic Load Balancing 之前的 timeout 時間是預設值 60 秒,現在可以自訂時間了:「Elastic Load Balancing Connection Timeout Management」。

文章裡有提到好處:

Some applications can benefit from a longer timeout because they create a connection and leave it open for polling or extended sessions. Other applications tend to have short, non- recurring requests to AWS and the open connection will hardly ever end up being reused.

目前可以設定 1 秒到 3600 秒,預設值是 60 秒。

Posted in AWS, Cloud, Computer, Murmuring, Network, WWW | Tagged , , , , , , , , , , , , | Leave a comment

Hacker News 上所推薦的各種工具

看到「Tools of The Trade, from Hacker News.」這個,把各種只要跟 Hacker News 有關的工具都列出來了。

已經用了某個工具,要找同質性的替代方案也可以在這邊找… 太過基礎的就只列出來而不會解釋了,像是「Google Analytics」XD

Posted in Computer, Murmuring, Network, Software | Tagged , , , | Leave a comment

Mozilla 推出 mozjpeg 2.0

othree 前天已經寫過:「mozjpeg 2.0」,不過因為這類性的研究其實對全世界幫助頗大,所以就再提一次…

原文在「Mozilla Advances JPEG Encoding with mozjpeg 2.0」這邊,主要的成果:

With today’s release, mozjpeg 2.0 can reduce file sizes for both baseline and progressive JPEGs by 5% on average compared to those produced by libjpeg-turbo, the standard JPEG library upon which mozjpeg is based [1]. Many images will see further reductions.

文章內也出現了一些關鍵字:

We’ve added options to specifically tune for PSNR, PSNR-HVS-M, SSIM, and MS-SSIM metrics.

PSNR 是最常聽到的,其他幾個 keyword 剛好可以拿來當 entry point。在「Video quality」這邊的 See also 部份也有不少 keyword 可以查…

Posted in Computer, Murmuring, Software | Tagged , , , , , , , , , | Leave a comment

用基地台的訊號監控天氣

基地台的密度比氣象站以及雷達的密度高很多,於是就有人想用基地台的訊號衰減資料來監控氣象:「New Technology Uses Cellular Towers For Super-Accurate Weather Measurements」。原文在「Cellular towers in the service of meteorology」這邊。

很好玩的方法,一個城市裡面有上百上千隻基地台,用這些資料來分析 XD

Posted in Computer, Murmuring, Science | Tagged , , | Leave a comment

avast 的人從網路上買了二十台智慧型手機…

然後從裡面拉出四萬張照片:「Tens of thousands of Americans sell themselves online every day」。

We purchased 20 used Android phones off eBay and used simple and easily available recovery software to restore deleted files.

雖然文章是在推銷 avastAndroid 清除軟體,但還是顯示出一般人對資安上的熟悉度不足。

Posted in Computer, Murmuring, Security, Telephone | Tagged , , , , , | Leave a comment

Outlook 裡 Ctrl-F 的設計

OSNew 上看到為什麼 Outlook 裡 Ctrl-F 不是 find 的原因:「Why does Outlook map Ctrl+F to forward instead of find?」。

先引用這句話:

Before clicking the link to go to the full story, try to guess the answer. I’m pretty sure you’re going to be wrong.

原文在「Why does Outlook map Ctrl+F to Forward instead of Find, like all right-thinking programs?」這邊,1995 年發生的事情。

Posted in Computer, Mail, Murmuring, Network, Software | Tagged , , , , , , , , , , | Leave a comment

Noto 的逗點問題


Noto 的逗點問題。

Plurk 上查到的 http://www.plurk.com/p/k7pya8 (pingooo),在 GitHub 上已經修正,也就是下一個版本就會更新:「The `U+FF0C FULLWIDTH COMMA` (,) is visually unaligned in Source Han Sans TWHK」。

Posted in Computer, Murmuring | Tagged , , , , , | Leave a comment

SSL Blacklist

現在新的 malware 或是 botnet 為了避免被 IDS/IPS 之類的設備抓包,大多都使用 SSL 連線傳遞資料在技術上躲避偵測。

而為了因應新型態的 malware 與 botnet,就有人想到去建立 SSL certificate SHA-1 的資料庫來偵測:「SSL Black List Aims to Publicize Certificates Associated With Malware」,也就是「SSL Blacklist」這個服務。

不過這應該會再演變成透過 malware 與 botnet 改用 PKI 架構而變成要偵測 CA 簽名的部份?還可以想出一些變形…

Posted in Computer, Murmuring, Network, Security | Tagged , , , , , , , | Leave a comment

用 Content-Security-Policy 攻擊

在「When Security Generates Insecurity」這篇文章裡,介紹了如何利用 Content-Security-Policy 攻擊網站。

首先,我想要知道是不是有登入 Facebook 或是 Google

Interest piqued by the report-uri feature, I looked into abusing it to glean information about user state, my idea was this: when a user is not logged into Google Calendar, accessing calendar.google.com redirects them to accounts.google.com via a Location header. If I whitelisted calendar.google.com but not accounts.google.com, accessing that resource within my web page would break CSP, subsequently sending me a message telling me whether they were logged into Google.

也就是說,利用 CSP 的 report-uri 以及重導的特性,可以分辨出使用者是否有登入。以 Facebook 以及 Google 的例子:

The implementation was like this: I had a single image on the page <img src="http://calendar.google.com"/>, and I sent the Content-Security-Policy header Content-Security-Policy: image-src calendar.google.com. The test was a success, I was able to detect login on Google. The same extended to Facebook; apps.facebook.com would redirect to www.facebook.com only if the user was logged in.

另外,由於實務上可以偵測 path,所以可以去「猜測」使用者是不是某個特定的人,在文章裡假設的是美國總統 Barack Obama:

By using CSP to whitelist facebook.com/me and facebook.com/barackobama and embedding http://facebook.com/me as an image, I can conditionally create a CSP report only if the current user on Facebook is not Barack Obama.

很有趣的安全性問題…

Posted in Computer, Murmuring, Network, Security, WWW | Tagged , , , | Leave a comment