下面这篇文章写的比较highlevel,初学者可能看不懂,欢迎资深人士一起探讨。
典型云存储&存储引擎
以AWS为例:
-
存储
-
对象存储:s3
-
块存储:EBS
-
文件存储:ElasticFile System
-
冷存储:Glacier
-
存储引擎
-
关系型数据库RDS
-
NoSQL数据库DynamoDB
-
缓存服务ElastiCache
-
数据仓库Redshift
-
HBASE(EMR服务中的子服务)
存储创新的几种思路
1) 硬件上的创新
-
Cost down之路:从传统的HDD/SAS,转向SMR,单碟容量超过1T。
-
High performance之路:用更高性能的硬件,传统的机械硬件,替换成半导体。SSD,甚至下一代的3DXPOINT都是这个路数。未来的一个可能是数据都在内存里面。内存即存储,分布式的alluxio,ignite有希望做大。
2) 架构上的创新,融合是不二选择
-
内部实现的融合:
存储分类的方法有很多种,对象,块,文件,裸设备多种形态,适应不同的场景。从客户角度来看,五花八门,统一和融合是趋势,工业界有确实,以K/V统一和融合各种存储底层实现,对外提供不同的兼容接口。
-
硬件的融合:
有基于普通x86服务器实现的ServerSAN,也有传统硬件实现的SAN。二者统一和融合也是趋势。硬件的标准化趋势不可能挡。
3) 超融合架构:
区别于传统的存储和计算分离架构,超融合架构的重要特点是不再有单独的存储。Gartner预测2020年超融合架构会成为数据中心的主流,这个的普及对软件架构上存在巨大影响,NDP(near data processing)是其中的一个概念。
存储引擎的创新几种思路
-
存储格式创新
构建存储之上的就是为了不同场景下面的存储格式。最常见的比如个人电脑的pdf/word,就是为个人文件准备的不同的格式。
-
关系型:
在数据领域,最经典的应该是传统数据库。传统数据库以关系模型为理论基础。以表,页,区,块等几级逻辑/物理组织形式来存储关系型数据。
-
Key/Value
传统数据库之外,不满足性能要求,诞生了很多存储引擎,如Hbase,以K/V的形式组织数据;时序数据库
-
倒排索引
典型如lucene,解决全文检索问题。
-
时间序列
InfluxDB :https://influxdata.com/
OpenTSDB:OpenTSDB是基于HBase存储时间序列数据的一个开源数据库,确切地说,它只是一个HBase的应用而已。
-
文件数据库
支持json(bson)格式,支持松散的数据结构。
-
多维分析
Cube,mdx 都是为了解决OLAP分析的事情。
-
跨界融合
举例1:PostgreSQL 9.2版本开始支持json,而且9.4的版本处理JSON的性能比Mongdb还要快。
举例2:NoSQL很多都支持弱事务,比如HBASE和Mongdb。
-
构建闭环系统,自优化技术(微软的Nectar)
一个不能自优化的系统是一个开环系统。
不光是存储,其他资源管理,任务调度都在考虑闭环系统。
存储是否有技术和能力,结合workload,去自动调优数据的放置。存储格式是否能像查询一样进行抽象和描述?(查询是线性代数变化)
微软的Nectar系统,是一个典型,结合cache,自动缓存系统中间结果进行二次利用。