存储由单机到分布式演进

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

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

存储由单机到分布式演进

最开始访问量比较小,直接单体存储就可以解决问题,比如单机 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应该会高很多,并且这个项目中英文文档都很全,部署相关信息也很全,比较小一点遗憾是缺少管理整个分布式集群相关系统,对于整个系统监控、管理方面需要使用者去补全。并且整个集群部署也是比较复杂的,需要对整个系统有比较深认知,才能将整个系统应用起来。

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

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


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

查看所有标签

猜你喜欢:

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

The Algorithm Design Manual

The Algorithm Design Manual

Steven S Skiena / Springer / 2011-11-14 / GBP 55.07

....The most comprehensive guide to designing practical and efficient algorithms.... Written by a well-known algorithms researcher who received the IEEE Computer Science and Engineering Teaching Aw......一起来看看 《The Algorithm Design Manual》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换