aerospike特點簡單描述

micweaver發表於2015-03-22
aerospike特點分析

1. 資料存放

   資料可以放記憶體,也可以放SSD。
   資料放記憶體時速度肯定會很快,但這和memcache一樣,相比memcache效能並沒有優勢

   資料放記憶體時可以進行持久化配置,但文件只有一個地方提了一下,沒展開描述,說明持久化不推薦使用。

   資料也可以放SSD,並做了特定優化,相比mysql會更快,但資料操作模型過於簡單,可使用場景很少。也比mongo效能更好,但其要求SSD儲存,這樣容量較小,費用也較高,這時mongo是好選擇


2. 資料操作模型
    
  支援 按主鍵及二級索引篩選資料
  支援 聚合 (強大,一個賣點)
  不支援排序(通過聚合功能的lua指令碼也可能可以實現,但並不現實)
  
  雖然支援類SQL語法操作,但可進行的操作非常簡單,好於memcache, 稍好於mongo,比redis差些,跟mysql完全沒法比,但其聚合功能還比較強大。


3. 叢集管理

   相當強大,多個平等的結點,平攤儲存所有資料,並且互相備份。叢集結點的失效及新增完全自動化處理,不影響使用者請求。
   相比memcache,這是它強大的地方,也不會弱於其它nosql的叢集管理。


4.儲存大資料


   記憶體或SSD中可以存放很大的單個二進位制資料。


5. 聚合功能

   這裡聚合的概念等同於mysql中的聚合。可以通過編寫lua指令碼,實現對資料的聚合,此時aerospike可以看作一個分散式的基於記憶體的map-reduce計算平臺,相比普通的            hadoop map-reduce,速度是很快的,當然,可處理的資料量相對較少。


aerospike可能應用場景 

aerospike總體來說是一個基於記憶體的並且具有高度可靠性的分散式計算系統。放在記憶體中是易失的,更多場景應該是放在SSD,但放在SSD其效能就不一定具有太大優勢了,而且SSD儲存容量小,費用也是比較貴的。

1. 替換memcache做快取

    這是由於它有強大的叢集管理功能,對非常重要不能當機的快取服務可以採用它,但代價就是需要更多的硬體伺服器。

2.效能要求很高的實時聚合計算
    aerospike是一個分散式的基於記憶體的map-reduce服務,速度快。
    一般來說,原始資料變化較頻繁,而對聚合計算實時要求較高的情景可以用它。


aerospike官網描述的其目前主要應用如下: 

  • For session management, as a server-side cookie store or user profile store with fast access to current context—such as page views, recent search terms, ads served, game state, last move, friends list, and location—as well as pre-computed data loaded from analytic warehouses.
  • By recommendation engines running similarity metrics on current context, matching recent behavior, and finding users who are close by or have played particular games recently.
  • As an in-memory database or persistent cache replacing Memcached and MySQL as a safe, reliable and persistent cache or in-memory database for mobile, social-media and content-rich applications. Aerospike’s unique flash optimizations deliver near in-memory speeds with 10x gains in cost performance.
    http://www.aerospike.com/press-releases/aerospike-launches-free-community-edition/

相關文章