日期:2014-05-16  浏览次数:20593 次

存储新技术特性简要总结
平时有所接触,不过这里内容主要引于一个ppt.

Redis
1.本质来说就是个k-v缓存
2.提供了对k-v引擎的更好封装:skip list+hash
  Set
  List
  Etc..
3.单线程+队列处理模型,在实际应用场景,可以减少锁争用。

优势
   内存key-val store 速度高
   单线程处理模型,性能好
劣势
   单机key-val缓存,多机支持还不好
   持久化时内存占用较多
   只支持k-v查询
   持久化不够安全

MongoDB
1.文档数据库
2.基于Mmap(文件内存映射)全内存模型
3.默认前端线程提交即返回
4.Btree存储数据
5.类sql数据库
6.为了取得与mysql更多的比较优势,默认配置是选用最为不安全,但速度最高的模式,
  允许配置为最安全模式.

优势
   多机内存操作,写入性能较高
   多级索引
   Bson
劣势
   持久化引擎目前还不够安全,内存占用较多
   Schema free 是否真的需要
   对旧有体系冲击比较大

Mysql + handle socket/flashcache
handle socket
   akira higuchi 写的一个mysql 插件
   依据:如果数据全部内存中,那么sql解析的开销会变为主要矛盾。
   做法:绕开sql解析层,利用Innodb的BufferPool来作为缓存介质。

flashcache
   Facebook插件
   依据:利用高速硬件处理热点数据读写。

优势
   成熟方案的扩展
   性能大幅提升
   Patch方式集成
   支持事务
   支持单机join
劣势
   限于热点数据分布

Cassandra
  SSTable实现
  1.避开了随机写,写入性能极高
  2.Qurom 可灵活配置,cap中可以随意选择。
  3.Gossip 无主节点结构
  4.Consistent hash  + 自动迁移,解决sacale out的问题。

优势
   提供多种一致性模型
   写入性能在特定的需求场景下,很高
   节点选举自管理
劣势
   读取效率低
   只提供key-val查询
   没有数据导出支持
   模型复杂,不够稳定
   监控太少
   文件较大

Hbase
  1.HDFS
  2.NameNode
    负责记录当前的写入状态
    负责决定数据应该写入到那些节点
  3.DataNode
    基本等于磁盘资源
  4.加节点减节点,自动

优势
   数据强一致,不丢失
   可以较容易的扩展
   Map-reduce
劣势
   复杂
   NameNode单点
   缺少次级索引查询
   读写比较慢

Ocean Base
   1.核心想法:
     后端存储对前端透明
     大量数据是静态数据
     动态数据和静态数据之间的恩恩怨怨太多
     8-2法则分开处理

优势
   易于实现强一致
   写入性能好
劣势
   访问时延
   维护性
   待实战验证

还有那么一段话:
I’ll use whatever is best for the job.
If I need reporting, I won’t be using any NoSQL.
If I need caching, I’ll probably use Tokyo Tyrant.
If I need ACIDity, I won’t use NoSQL.
If I need a ton of counters, I’ll use Redis.
If I need transactions, I’ll use Postgres.
If I have a ton of a single type of documents, I’ll probably use Mongo.
If I need to write 1 billion objects a day, I’d probably use Voldemort.
If I need full text search, I’d probably use Solr.
If I need full text search of volatile data, I’d probably use Sphinx.