叢磊:好象一般IT互聯網公司還沒有招NoSQL的職位,更多項目是利用到NoSQL的知識。其實我的觀點跟志豐差不多,首先這個人看他的需要,實際上NoSQL分成兩層,一個是比較高一點,涉及到分布式一些理論,第一點也不是說這個低,不是層次低,更多涉及到本地存儲的東西,很重要硬件,我覺得從傳統硬件將來這個存儲引擎一定會發生變化,包括Google最新出的一個,一定會有超越傳統搜索引擎的數據庫出現來代替以前的方法,從高層來講基本上被亞馬遜(微博),Google幾家都包了,去學習理論的時候,大家一般提到理論就是CAP,可以劃成兩個放心,一個是擴展性,還有一個就是復制,從這方面更好理解一些。
主持人程顯峰:現在如果大家用NoSQL的話,可能大家已經討論過整個開發成本相對風險要小一些,主要的成本,或者說他的風險可能體現在他的部署,和集成上面,部署這個問題,現在好的NoSQL解決相對好一些,還有自動化的水平擴展,包括分片,集群,熱備這些都稍微好一點,我請大家談一談關于集成這塊,他怎么與我們現有的業務結合起來。比如說有KVDB,他在這個過程中,我希望大家多談一談,因為你們都有實戰經驗,多談一談血淚教訓,不能我們來了之后看到大家都是光鮮一面,你們把血淚都掩藏在自己內心深處,搞的沒有彩頭了。
李祎:我做NoSQL的時候確實有很多血淚史,第一個版本出來的查詢特別慢,跟蹤一下原因,因為有些用戶他大的用戶關系的時候,因為我們前面是一個相當于有些大用戶,比如你是趙薇,你有好幾百萬粉絲,這時候這個數據,一開始沒做二級緩存,相當于趙薇數據每次有一個用戶在查的時候,會來來回回倒騰好幾次,那時候基本上那個系統不可用了,后面我們要進行分片,比如說大用戶粉絲列表做了一些分片,分片之后,數量受到限制,比如前5千個,或者日期限制,今天的,做了這樣一些限制之后,我們在算一些分組的時候效率就會更高一點,這也是我們用NoSQL的時候,經常會預見的一個問題,當你的對象很大的時候,你怎么去控制他,本來是想提高IO的,反而變成相反的了。
叢磊:對于這塊NoSQL和業務整合我從云計算的角度來說,怎么利用云計算整合。我這塊只有一個經驗,這個經驗是從亞馬遜來的,不要試圖去改變用戶的使用習慣,不要試圖教用戶這些東西,用戶不會學,我所知道幾乎90%以上 開發者他們對NoSQL很小,這應該有公有云自己的平臺去解決。
楊志豐:因為你做的還是一個NoSQL,我是一個底層系統,對上邊開發人員當然接口最簡單,所以從我們這邊的角度來看,現在希望剛才那樣一個系統打包稱一個解決方案,比如現在一個很火的接口我們就可以進行打包,讓上手容易一些。另外從經驗的角度來看,負載均衡比較重要,剛才說雙十一的時候,我們最開始遇到的問題有一個地方,要做負載均衡,只要算法上有問題,就會把一些問題變成熱點,你上面應用是什么樣子的,需要你上面負載均衡不一樣的。
主持人程顯峰:高度運營相關的?
楊志豐:對,策略是不一樣的。另外第三個,我是在一個公司內部做底層系統的,別人是做底層系統上邊的應用系統,我們經驗就是說,我們是幫著他們一起去做,比如說我們會從開發人員里面挑幾個人和應用的人坐在一起,我就是來幫助你一起做,在系統開發初期,因為你的系統,剛開始的時候可運維性很差,可能有各種各樣的穩定性問題,這樣的問題你直接暴露給用戶的話,他們是解決不了的。另外你可能由于你接口涉及很爛,別人用起來很煩瑣,總是在不斷在發展,初期的時候據我所知Google他們最早那套平臺他們也是手把手去教應用,這個查詢應該怎么去做,那個查詢應該怎么去做,不應該寫那樣一個語句在里面,這樣就把服務爭取服務好。
主持人程顯峰:還有強烈支持在后面,如果有這個品牌以后,還需要給客戶強烈的支持?
楊志豐:對,我覺得那個MySQL接口就很好,很清楚,不容易用錯,但像一個數據庫的東西,如果你的SQL,因為SQL的表達能力太強了,很容易就弄錯了。
主持人程顯峰:如果一個東西很靈活,寫的又很爛的話,客服人員一定挺忙的。
巨建華:剛才談的這個主題是血淚史,如果想避免血淚史最好選擇穩定的產品,我們一開始在選擇1.4的產品遇到很多問題。比如說,當時一個表,一個集合,當時你可以用任意的名字去創建,如果你用一個大寫的名字建立一個集合之后,打算再建立一個小寫的名稱直接退出也不會出現錯誤,在這種情況下很神奇,可能有人在寫程序的時候沒有把大小寫注意到,跑了一段時間程序崩潰了,我們甚至想看都看不到。很久之后我們找到那個問題,把相應的bug去官網上做一些問題,很快就修復了,如果在正式運行的系統上發生這樣問題,你會很痛苦的。
因為我們一開始用在不是很關鍵的產品上,DBI對這個也很不熟不是太關注。當有一天我們發現我們廣告點擊頂過來的日志特別多,發現已經把虛擬內存耗掉非常多,我們打算增加節點,基本上沒有辦法把那個很安全的進行平衡轉移。最后解決方案,我們把那個議程慢慢移數據,當然在新版本里面已經有很好解決。如果想避免血淚史的話,還是原來我在PPT上講的,一定要放在產品服務器之前,先做一些實際使用,在應用過程中去感受,我覺得這樣來逐步適應,而不是一下子上來之后,很貿然把一個項目放到一個不成熟的產品上去,這是逐步適應,可能會避免很多血淚史。
主持人程顯峰:大家有各種各樣避免血淚史的方法,關于NoSQL實施部署,以及集成方面。很多人會問一個問題,現在云計算這么火,我自己為什么還要自己弄一個NoSQL,這樣的服務可不可以用,比如國內盛大提出這樣服務,他做了一個多足環境你可以自由來用,我想問叢磊,你作為一個PASS平臺,很多人在你這做了應用,他可能想從別的地方做一個,從你這個角度來講,會不會建議你這個PASS平臺有集成第三方的應用?
叢磊:這塊集成,只要用戶有需求我們都會盡量滿足,只要不是太離譜都會去滿足。像現在有很多游戲開發商,因為游戲是盈利的,所以我們把游戲開發商需求也是提到前面的,游戲開發商肯定會有很多需求,他就不想改代碼,KVDB也可以做,他一點都不想改,我們也盡量去滿足他。我們這時候解決方案,我們也在做IS平臺,就像盛大這種做法可以進行租賃,這種東西我們還是鼓勵他去用的,畢竟這是用戶需求,關鍵還在隔離性,如果用IS,像這種產品隔離性還是比較容易保證的,因為我通過網絡層,還是通過虛擬化的技術都可以來保證。
推薦閱讀
[ 針對新增資金如何投資的問題,中投公司副總經理汪建熙表示中投會根據既定的投資戰略和市場的變化進行投資;短期來看會有積極的偏離,但一定是做長期的配置,不會在短期內有大幅度的變化 ] 全國政協委員、中投公司副>>>詳細閱讀
本文標題:圓桌沙龍:NoSQL技術實戰
地址:http://www.sdlzkt.com/a/kandian/20120305/36928.html