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
[環境]
[狀況]
突然間(about 2am. orz),有一台機器連不到 MySQL,但其他機器仍正常運作。
這個例外訊息看起來蠻明確的: 機器 xxx 被 MySQL db server 擋(block)了。
- client
- 數台機器定時向 MySQL database 取得資料。
- windows 2008 R2 standard
- .net 2.0 sp2
- c#
- db server
- MySQL 5.0.45
- 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 古早古早就是如此了。
之前,由 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。
利用 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。
訂閱:
文章 (Atom)