存储新技术特性简要总结
平时有所接触,不过这里内容主要引于一个ppt.
Redis1.本质来说就是个k-v缓存
2.提供了对k-v引擎的更好封装:skip list+hash
Set
List
Etc..
3.单线程+队列处理模型,在实际应用场景,可以减少锁争用。
优势
内存key-val store 速度高
单线程处理模型,性能好
劣势
单机key-val缓存,多机支持还不好
持久化时内存占用较多
只支持k-v查询
持久化不够安全
MongoDB1.文档数据库
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.