互連網百萬級應用的大資料處理問題 探討大資料量處理__大資料

來源:互聯網
上載者:User

我說的大資料量處理是指同時需要對資料進行檢索查詢,同時有高並發的增刪改操作。記得以前在XX做電力時,幾百萬條資料,那時一個檢索查詢可以讓你等你分鐘。現在我是想探討下對大資料量的處理,那時我就在想例如騰訊,盛大,動輒數以億計的帳號,怎麼能這麼快呢, 於是找到了互連網現在對資料處理的發展。

對於大資料量處理,如果是互連網處理的話,一般分為下面階段: 第一階段,所有資料都裝入一個資料庫,當資料量大了肯定就會出現問題,就像剛剛說的查詢,於是想辦法。 第二階段,那時肯定想做緩衝機制,確實可以如加上緩衝Memcached,但緩衝也是治標不治本,資料量太大了也是不行,於是有了下面的方法。 第三階段,master-slave模式,進行主從資料庫,master提供寫,slave進行讀,這個適合於有寫造成資料庫卡的方法,XX那個還是不行,於是—— 第四階段,垂直分庫,這個意義還是不大,對於這種採集資料的,於是—— 第五階段,進行水平分庫,這個不錯,記得以前從興也是按這個分時間水平分庫,其實可以分的更細點估計效果更好 第六階段,用nosql做了,關於nosql怎麼做可以參考google的bigtable

其實本文主要目的也是想探討nosql對大資料量的處理:

NOSQL就是將寫操作在記憶體中進行,定時或按某一條件將記憶體中的資料直接寫到磁碟上,一定基礎上是解決了一些問題: 高並發讀寫的需求  海量資料訪問的需求 資料庫橫向擴充性的需求

CAP理論來說,nosql是犧牲了一致性,做到了AP,一致性只是保證了最終一致性。

缺點也很明顯:

1. 當機器掛了資料將會丟失,可以考慮共用記憶體解決。

補充:其實這裡可以展開了講,一種是通過共用記憶體來實現。

叢集記憶體:根據的是Quorum NRW理論,比如你有N台機子用來叢集,每次你進行讀寫資料時可以至少要同步到X個節點才算成功,所以你每次讀資料時只需要讀大於N-X個節點就能保持你的正確率,其實就是對資料進行的冗餘備份,不過我們存的是記憶體,相對於直接的磁碟操作,跨網路進行記憶體操作可以更快。

其實還一種保證資料一致性,就是記錄日誌,當資料每次寫操作記憶體時都進行日誌記錄,然後再在記憶體中進行寫操作,至少很多資料庫就是這樣做的,如redis。

2. 記憶體的限制,記憶體有限當寫資料操作太大的時候記憶體也會爆。

解決:Bigtable的做法是通過bloom-filter演算法合并掉相同的操作,比如UPDATE A='A' ,update A='B'時可以直接合并了。 基本理論基礎

nosql理論基礎:記憶體是新的硬碟,硬碟是新的磁碟

關係型資料庫都要實現事務ACID,即:原子性(Atomicity),一致性(Consistency),隔離性(Isolation), 持久性(Durability)。

CAP理論: Consistency 一致性 Availability -可用性 Partition -容錯性

 大多數NoSQL資料庫都不支援事務,不支援SQL等,所以還是得保留關係型資料庫。現在有人提到用記憶體資料庫, 總體如果是簡單業務來說,NOSQL的速度比記憶體資料庫更快,但NOSQL最大缺點,不支援事務,不支援SQL查詢等。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.