头图是西雅图风光,站在山上可以眺望华盛顿湖和雷尼尔雪山。
下面这篇文章写的比较highlevel,初学者可能看不懂,欢迎资深人士一起探讨。
以AWS为例:
1) 硬件上的创新
2) 架构上的创新,融合是不二选择
存储分类的方法有很多种,对象,块,文件,裸设备多种形态,适应不同的场景。从客户角度来看,五花八门,统一和融合是趋势,工业界有确实,以K/V统一和融合各种存储底层实现,对外提供不同的兼容接口。
有基于普通x86服务器实现的ServerSAN,也有传统硬件实现的SAN。二者统一和融合也是趋势。硬件的标准化趋势不可能挡。
3) 超融合架构:
区别于传统的存储和计算分离架构,超融合架构的重要特点是不再有单独的存储。Gartner预测2020年超融合架构会成为数据中心的主流,这个的普及对软件架构上存在巨大影响,NDP(near data processing)是其中的一个概念。
构建存储之上的就是为了不同场景下面的存储格式。最常见的比如个人电脑的pdf/word,就是为个人文件准备的不同的格式。
在数据领域,最经典的应该是传统数据库。传统数据库以关系模型为理论基础。以表,页,区,块等几级逻辑/物理组织形式来存储关系型数据。
传统数据库之外,不满足性能要求,诞生了很多存储引擎,如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。
一个不能自优化的系统是一个开环系统。
不光是存储,其他资源管理,任务调度都在考虑闭环系统。
存储是否有技术和能力,结合workload,去自动调优数据的放置。存储格式是否能像查询一样进行抽象和描述?(查询是线性代数变化)
微软的Nectar系统,是一个典型,结合cache,自动缓存系统中间结果进行二次利用。