2006年10月13日 星期五

文章排行榜 - 開發

MemDB己把單機版和網絡版的基礎打好了, 接著就是向 "網上應用系統" 開發. 這星期自己開始編寫一個系統, 就是 "網誌文章排行榜". 




之前五年的發展, 很多都不是我想行的路, 只是為了生活, 只好任由客戶要求, 他們要甚麼, 我就寫甚麼. 但那些系統, 根本不能讓人們看到 Memory Database (MemDB) 的好處.

"要讓全人類使用MemDB的產品", 是我的願望.

之前幾年的發展, 己令我不用為生活煩惱. 接著應該為自己做些事吧!

在 " 網上解決方案" 一文, 我己解說過為何要開發MemDB和MemWS和我對它們的期望, 我一直在思考, 甚麼的系統需要這技術呢? 會很短時間有很多人用呢? 需要處理很多資料庫Query呢?

在 "為何舊文章會加入排行榜?" 我己看到現時的排行榜有很多漏洞, 這不只是 SinaBlog 和 Yahoo Blog, 就算 Blogger (這些簡稱BSP) 都未有解決方案. 其實一個解決方案, 就是讓人們評分, 一人對一篇文章只能評分一次, 最高10分, 最低-10, 用平均分來排名.

這個是一個很簡單的解決方案, 但為何BSP不能提供呢?

我估計他們是用MySQL或Oracle這類的Relational Database. 例如要解決1000個會員對1000篇文章評分這個問題, 就要處理1000x1000個 Join資料, 而且資料是儲存在 Hard Disk, 如果有100個會員同時Query排行榜, 回應就會好慢 (你都遇過Sinablog多人用時Hang Hang 地啦).

好, 就試一下解決這問題, MemDB 是 Object-Oriented Database, 因為所有資料都在Memory, 而且所有關係 (Relation) 都有 Pointer 直接指住, 所以應該可以解決傳統Relational Database 解決不來的問題. 把資料庫 MemDB和Web Server (MemWS) 整合在一個系統內, 速度應該不會慢.

由星期三開始設計, 昨天開始編寫, 今日第一個版本差不多完成, 過多兩日的測試, 星期一應該可以給大家試. 到時希望大家幫幫忙!

6 則留言:

  1. 想到一個問題,如果所有資料都在memory,就很難把資料分享出去與其他電腦共享.不知MemDB是否已經解決了.

    回覆刪除
  2. Shirlun :
    想到一個問題,如果所有資料都在memory,就很難把資料分享出去與其他電腦共享.不知MemDB是否已經解決了.
    好似兩者沒有關係 (不會發生的問題).

    回覆刪除
  3. 如果最新資料只存在於某一個電腦的記憶裡,其他電腦可能很難直接開啟資料庫取得最新資料.但如果每次更新都寫入硬碟,速度又會慢了.

    回覆刪除
  4. Shirlun 是否電腦人嗎?
    你知道嗎, 資料不是要在硬碟才可以分享的. 就算是在別人電腦A的硬碟, 如果你要看, 電腦A都要Load上Memory, 再傳給你的 Memory, 再寫落你的硬碟.
    像文章排行榜系統, 所有資料在 Memory, 你的Query不需要任何Hard Disk Read, 就傳了給你的瀏覽器 (IE) 了.

    回覆刪除
  5. 你說的是server對browser的情況.假如兩個server要共享同一個資料庫,server之間用server對browser的傳送方法就會很慢.如果MemDB已有解決方法,在資料庫引擎市場會很有競爭力.
    我是bpyang21,近來也在為自己的系統尋找一個可以長期合作的資料庫引擎.^^

    回覆刪除