2012-11-30

compare performance in Dictionary and ConcurrentDictionary

Dictionary 類別,是不支援 thread safe 的。
意思是說,在 multi-thread 環境下,如果同時直接 read/write dictionary 、而不 lock (或沒有使用 InterChange) 的話,就有可能發生 exception。

在 .net 4.0 之後,針對平行處理提供了許多類別,其中之一就是 ConcurrentDictionary (so also)。
也就是在 multi-thread 環境,就算有同時 read/write 的可能,也不用自己實做 lock 機制,系統支援了。

這當然是一個好消息。

但是,第一個首要擔心的是: 效能會不會掉。

這裡,先就 single thread 來簡單測試一下:

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。