2012-09-10

MySQL exception: Host 'host_name' is blocked

[環境]

  • client
  1. 數台機器定時向 MySQL database 取得資料。
  2. windows 2008 R2 standard
  3. .net 2.0 sp2
  4. c#
  • db server
  1. MySQL 5.0.45
  2. windows 2008 R2 standard


[狀況]

突然間(about 2am. orz),有一台機器連不到 MySQL,但其他機器仍正常運作。

MySql.Data.MySqlClient.MySqlException: Host 'xxx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'   在 MySql.Data.MySqlClient.PacketReader.CheckForError()
   在 MySql.Data.MySqlClient.NativeDriver.Open()
   在 MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
   在 MySql.Data.MySqlClient.MySqlPool.GetConnection()
   在 MySql.Data.MySqlClient.MySqlConnection.Open()
   在 SQLDB.MySQLNativeDB.reCreateSqlCommand() 位置 D:\projects\vs2008\source\MatchEngine\Scupio2.0\SQLDB\MySQLNativeDB.cs:行号 132
   在 SQLDB.MySQLNativeDB.ExecuteCmdNonQuery(String sqlcmd, IDataParameter[] parameters) 位置 D:\projects\vs2008\source\MatchEngine\Scupio2.0\SQLDB\MySQLNativeDB.cs:行号 86

這個例外訊息看起來蠻明確的: 機器 xxx 被 MySQL db server 擋(block)了。


2012-04-15

zoom out of Chrome browser

前幾個星期,突然發現 chrome 瀏覽器的縮放倍率改變了!

之前,由 100% 直接跳到 125%,對寬螢幕的筆電來說,100% 字過小,而 125% 字有點過大,但最要緊的是一個畫面看不了幾行。

在前幾個星期時,按下 ctrl + 時,突然發現字沒有那麼大了,檢查了一下,110% 的放大倍率出現了,對寬螢幕來說,感覺大小適中,真是增加了使用者的方便啊 -- 雖說,firefox 古早古早就是如此了。

2012-01-10

install Cassandra in Ubuntu

目標:
    利用 VirtualBox 架起兩台 ubuntu server,並且安裝 Cassandra,並設定成同一個 ring。

環境(environment):
(1) Virtual Box
(2) Ubuntu 10.04
(3) Cassandra
   
步驟:
(1) 安裝 ubuntu server * 2。
      IP 分別為 192.168.65.39 & 192.168.65.222。
(2) 分別安裝 Cassandra。
(3) 設定兩台成一個 cassandra ring。
      以 192.168.65.39 為 seed provider。


2011-12-02

NoSQL (II)

主要參考自 IThome
   NoSQL解決資料庫暴量的新方法
   了解NoSQL不可不知的5項觀念  :
   快速認識4類主流NoSQL資料庫  : 這4大類型包括了Key-Value資料庫、記憶體資料庫、圖學資料庫和文件資料庫。

[terms]:
avalanche of data: 雪崩資料(大量資料或瞬間之高流量)
split-brain
map-reduce: 映射 與 化簡
parallel aggregated queries: 平行聚合查詢

about NoSQL

這篇是看了 InfoQ 上的影片: NoSQL誤用和常見陷阱分析(孫立) 後,記錄下的一些摘要:

NoSQL:
1. 有許多個版本,如 TtServer(
Tokyo Cabinet), ....
2. 升級版本之相容性: data format, API interface
3. 精通它


2011-11-10

列表(List)與字典(Dictionary)的比對效能

[問題]
某個 windows service 時常處於 CPU 忙碌、佔據大量記憶體,而且執行速度極慢? (應該說是執行結果跟不上現實需要)

[原因]
幾經測試,原來...,現有的 code 是用上 List().Contains 的方式來比對。
以前沒那麼慢,那是因為要比對的歷史記錄並不多,而累積到現在,赫然發現已有四十七萬多筆了。再加上判斷二千多筆資料是否存在在歷史記錄之中,比對數就用上了 2k * 470k 這種等級。難怪CPU那麼忙,而且要花費許多時間。

[step]
知道原因後,二話不說,直接改寫成 Dictionary,利用 Dictionary 來比對。
結果,執行一次時間由數十秒變成1~2秒,CPU 偶爾上揚一下 -- 表示有在做事。
這... 也不去細究源由了,算是補上一個坑,路更平了。

2011-11-09

消失的時間 -- ASP.Net 呼叫 remoting call

[寫在前面]

(1) 在 IIS 下,aspx 接到 request 後,再以 remoting call 的方式,呼叫一 windows service(主要是在本機上); 而這個 windows service 實做了所有的邏輯,並且會定時(如: 每一分鐘或每五分鐘)從 database 中重新載入資料形成 memory cache;並將結果回傳給 aspx,再由 aspx 組成網頁或字串以回應。
(2) aspx 與 windows service 會記錄各自所消耗的時間。
(3) environment: Windows 2003, .net framework 2.0 sp1.

[問題 & 狀況]
(1) aspx 記錄了呼叫 remoting call 到得到結果的時間,在某些時候,會遠超過 windows service 處理該次的時間。
      而其中,消失的時間那裡去了呢?
      會是因為 thread pool 滿了,而在等待嗎? CPU 太忙所導致嗎?
      但是看起來,系統資源似乎還綽綽有餘啊!
(2) 而這種現象,在流量大(QPS高)時,尤其明顯。
(3) 有些機器很嚴重,但有些機器卻還可以接受。(ps: 機器等級差不多,執行內容都相同。)