存储由单机到分布式演进

栏目: 数据库 · 发布时间: 5年前

存储发展与线上业务发展类似,都是依据业务发展而不断发展,需要不断演进,不可能一蹴而就,应用程序由单体到集群到大规模分布式,存储也类似演进路径。

存储由单机到分布式演进

最开始访问量比较小,直接单体存储就可以解决问题,比如单机 MySQL 、单机Oracle,再到读写分离把读写分开来解决问题,再到Oracle集群承载更大存储量以及并发量,后来并发量再大通过分库分表来扩大存储以及承载更大并发量。

单机数据库事务性方面做的非常好,明显特点是ACID,即原子性、一致性、隔离性、持久性,并且单机数据库事物也分成很多级别,可以根据性能以及我们业务想要达到效果来选择相应级别,核心是通过共享锁、排它锁等不同锁级别设定来实现相应事务级别,从而避免幻影读、脏读、不可重复读等问题。单机数据库实际也是多线程以及锁级别来实现各种各样事务。

线上高并发、高性能应用程序,存储是很重要一个基础设施,分布式 redis 能处理很高并发量,并且能有很高性能,缺点是内存价格高以及不能持久化,大规模存储的话redis规模上T已经很大,但互联网应用还不够。

分布式存储主要分几类,分布式kv存储、分布式表格存储、分布式数据库,分布式kv是其中最简单的 分布式redis是nosql,分布式表格存储bigtable、hbase是其中代表,分布式数据库比前两者要复杂,特点是带有分布式事务,例如Google Spanner和阿里OceanBase。

分布式存储运维是分布式存储一块重要内容,以及怎样无障碍升级。并且升级时不影响整个分布式集群使用,这是分布式存储在线上应用很重要一个点。不能达到这点,后续发现bug进行升级或者增加新特性,怎么样在不影响线上业务情况下使用,是一件很重要事情。

节点出问题后的数据迁移,迁移时不影响线上业务,能够正常支持线上业务应用,这一点很重要。应用架构基石存储这篇对于应用相关问题做了相关探讨。

最近一直在调研分布式存储,主要要解决redis规模不够大问题,开源存储有很多,Facebook 开源mysql引擎Rocksdb,这个存储比redis好地方不会将所有数据都加载到内存,而是很多数据存储在磁盘而不会把全部数据加载到内存,从而节省内存,缺点是主要单机方案,分布式方案资料不多。

百度开源Tera类似于HBase由C++开发性能高,配合开源BFS类似与HDFS可以很好应用,性能比HBase应该会高很多,并且这个项目中英文文档都很全,部署相关信息也很全,比较小一点遗憾是缺少管理整个分布式集群相关系统,对于整个系统监控、管理方面需要使用者去补全。并且整个集群部署也是比较复杂的,需要对整个系统有比较深认知,才能将整个系统应用起来。

通过这段时间调研,了解到分布式存储是一个研发与运维并重软件,光有系统不够,还要整个系统包含齐全的运维,例如扩容、缩容以及机器故障时对于线上业务无感迁移,监控能够方便对节点以及分布式集群整体进行监控,管理对于集群能够通过平台便捷进行相关管理配置以及相关操作。分布式系统从研发到应用到线上不是一件简单事情。

你在实际业务研发中应用过哪些单机数据库或者分布式数据库,遇到过哪些问题,欢迎留言分享。


以上所述就是小编给大家介绍的《存储由单机到分布式演进》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Algorithms in C, Parts 1-4

Algorithms in C, Parts 1-4

Robert Sedgewick / Addison-Wesley Professional / 1997-9-27 / USD 89.99

"This is an eminently readable book which an ordinary programmer, unskilled in mathematical analysis and wary of theoretical algorithms, ought to be able to pick up and get a lot out of.." - Steve Sum......一起来看看 《Algorithms in C, Parts 1-4》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具