解決 memcache race condition 的問題

解決辦法就是避免所有的 query 集中在那個 expire 時間點上 , 那該 user 的方法是每次的 get 時加上一個亂數的時間差 .

http://www.alexhopmann.com/2008/06/13/memcache-race-condition-fun/

memcache 的作者認為, user “不應該” 關心他的資料為什麼不再 memcache 裡 , 就算是 memcache server 都關掉, 都不能影響程式的進行, 頂多程式變慢而已.

[code language=’php’]
$key=’key’;
$obj = $memcache->get($key);
if ( $obj==NULL ) {
$obj = Get_obj_from_table();
$memcache->set($key, $obj, $expire);
}
[/code]

測試心得是:

  • 如果 memcached server 的 memory 滿了, 他的 bytes / curr_items 就不會再增加了 , 但是 client 還是可以 set key / get key 沒問題
  • 如果關掉某些 memcache server , 所有的 set 動作 “會” 再重新分配到其他活的 server 上, 要注意 memcache server 群的容量問題, 在 expire 時間內還是可以抓到資料, 不過還是有隨機的 set 是 fail 的(不多啦!)
  • 如果 add的一堆 server 都掛了 , 那麼會 hang 在 set/get 上面 , 等 tcp timeout

Read more

notebook

看到這張 OpenSQLCamp 的照片,

http://www.flickr.com/photos/datacharmer/3075006158/sizes/o/

我又想買一台 notebook , 看起來外國 programmer 喜歡用 Mac 的真的很多

不過我想一想, 我的生活圈頂多在 家 <—> 公司間 , 兩邊都有 PC , 況且我也討厭身上揹著重重的東西來來去去的, 所以算了吧… 看看就好

順便看了這個人的 Flickr : Helsinki  – restroom with a view

http://www.flickr.com/photos/datacharmer/2797070429/sizes/o/

這個廁所的 View 可真好!

Categories JOB

USE Oracle / oci8 with PHP / test sample code

前提環境要先裝好 Oracle instant client , 然後 PHP 要把 instantclient 編譯進去

–with-oci8=instantclient,/usr/lib/oracle/10.2.0.3/client/lib

這是 sample code

$conn = OCILogon('scott', 'scott', '//172.30.0.176/DB1');

$query = 'select * from dept';

$stid = OCIParse($conn, $query);
OCIExecute($stid, OCI_DEFAULT);
while ($succ = OCIFetchInto($stid, $row)) {
  foreach ($row as $item) {
    echo $item." ";
  }
  echo "\n";
}

OCILogoff($conn);


1. 建 oracle table 時不管key 的 table name , field name 是否為小寫, 在 oracle 都顯示成大寫
2. 用 PHP 的 OCI functions 下的 SQL command 也可以不管大小寫

板橋鴨仔味薑母鴨

今天一早氣溫 10 度, 太陽出來後回溫到 17度, 不過冷風一吹還是會冷… , 這家店就在回家的路上, 今天天氣冷於是就去吃看看囉.

P004
擺滿一桌
P005
用碳燒的喔!!
P007
通通丟下鍋
P006
這家店生意還不錯, 我坐在門口看著外帶的人一個接一個; 吃完,滿頭大汗ㄟ … 讚啦!

Mobile01 的介紹文:

http://www.mobile01.com/waypointdetail.php?id=5635

2008 11/28 天氣晴

P000  

中央欺騙局都說今天氣溫會到10度! 結果咧…. 太陽!  把你晒昏咧…

 

P001P002

再一個月就要跑這個了! 2008/12/21 “2008 ING台北馬拉松” , 但不曉得為什麼, 前幾年都叫 “xx國際馬拉松” 今年 “國際” 兩個字都沒有了,   可以看看 “太魯閣峽谷馬拉松”  國際就不見了??

板橋第一運動場

P002 P006 P010 P004

圖1. 看著周圍的建築一棟一棟的蓋起來

圖2. 起跑點, 很喜歡這些紅跑道跟這些白色線條, 很美. 運動場周圍是一個一個像是羅馬競技場的走廊.

圖3. 短跑跑道, 有時會有田徑隊的再這邊練習.

圖4. 那個時鐘是每跑一圈的必看的, 常常我會跟自己下賭注, 再 xx  分還沒到前就跑進終點線, 那個時鐘還有一個溫度計的功能,  簡直太讚了.

天空好藍, ..