系统存储
文章平均质量分 95
存储一直都是软件系统的重要瓶颈,本专题从块存储、文件存储和对象存储的视角出发,向读者介绍搭建在其上的、在软件系统中大量使用的各种存储技术,以及如何提升这些存储技术的运行性能。
说好不能打脸
我没想过赢,我只是不想输
展开
-
InfluxDB时序数据库基本使用介绍
InfluxDB就是一种时序数据库,除此之外目前业界流行的时序数据库还有Kdb、TDengine、Prometheus(本身内置了一个时序数据库)、Victoriametrics(另一个推荐的时序数据库)。InfluxDB由InfluxData公司开发,使用Go编程语言编写,适用于存储和检索操作监控、应用指标、物联网传感器数据和实时分析等领域的时间序列数据。它的数据模型基于时间序列,其中时间戳作为索引,不支持对过去数据的修改,因此特别适合。原创 2024-07-01 20:19:13 · 2338 阅读 · 0 评论 -
VFS-FUSE用户态文件系统设计说明
针对文件系统操作的特异性需求,可以用过操作系统内核中提供的一种基于用户态的文件系统开发接口,由应用程序开发人员自行实现一个由上层应用系统支持的文件系统。这个统一的用户态文件系统接口就是FUSE。本文主要介绍FUSE编程的基础知识。原创 2024-04-28 08:48:48 · 4385 阅读 · 0 评论 -
Apache-Common-Pool2中对象池的使用方式
Apache Common-Pool2 组件最重要的功能,就是向开发人员提供一个稳定的、高性能的对象池。我们在实际开发过程中最常用、最典型的对象池就是数据库连接池。对象池可以在数据库连接对象被调用前,预先生成和管理一批可以使用的对象,用空间换时间的方式提升应用程序对数据库的操作性能。原创 2024-01-14 10:13:30 · 1391 阅读 · 0 评论 -
架构设计:系统存储(30)——分布式文件系统Ceph(RADOS结构)
从本篇文章开始介绍一款现在非常火的分布式文件系统Ceph,包括这款文件系统的安装、基本使用场景、常用管理命令和重要工作原理。特别是讨论了PaxOS算法的基本理后,就更容易理解Ceph分布式文件系统中各种角色的工作原理。原创 2017-04-29 16:50:47 · 8906 阅读 · 5 评论 -
架构设计:系统存储(29)——分布式文件系统Ceph(管理)
从本篇文章开始介绍一款现在非常火的分布式文件系统Ceph,包括这款文件系统的安装、基本使用场景、常用管理命令和重要工作原理。特别是讨论了PaxOS算法的基本理后,就更容易理解Ceph分布式文件系统中各种角色的工作原理。原创 2017-04-22 11:03:34 · 6955 阅读 · 7 评论 -
架构设计:系统存储(28)——分布式文件系统Ceph(挂载)
从本篇文章开始介绍一款现在非常火的分布式文件系统Ceph,包括这款文件系统的安装、基本使用场景、常用管理命令和重要工作原理。特别是讨论了PaxOS算法的基本理后,就更容易理解Ceph分布式文件系统中各种角色的工作原理。原创 2017-04-14 14:00:38 · 8831 阅读 · 1 评论 -
架构设计:系统存储(27)——分布式文件系统Ceph(安装)
从本篇文章开始介绍一款现在非常火的分布式文件系统Ceph,包括这款文件系统的安装、基本使用场景、常用管理命令和重要工作原理。特别是讨论了PaxOS算法的基本理后,就更容易理解Ceph分布式文件系统中各种角色的工作原理。原创 2017-04-05 13:17:49 · 8353 阅读 · 2 评论 -
架构设计:系统存储(26)——数据一致性与Paxos算法(终)
从本文开始,笔者将花三到四篇文章的篇幅,介绍Paxos算法。包括它的理论基础、基本实现、变种实现,其它保证最终一致性的算法,等等。原创 2017-03-26 20:22:16 · 4636 阅读 · 3 评论 -
架构设计:系统存储(25)——数据一致性与Paxos算法(下)
从本文开始,笔者将花三到四篇文章的篇幅,介绍Paxos算法。包括它的理论基础、基本实现、变种实现,其它保证最终一致性的算法,等等。原创 2017-03-20 18:34:29 · 5530 阅读 · 3 评论 -
架构设计:系统存储(24)——数据一致性与Paxos算法(中)
从本文开始,笔者将花三到四篇文章的篇幅,介绍Paxos算法。包括它的理论基础、基本实现、变种实现,其它保证最终一致性的算法,等等。原创 2017-03-13 22:28:40 · 7029 阅读 · 5 评论 -
架构设计:系统存储(23)——数据一致性与Paxos算法(上)
从本文开始,笔者将花三到四篇文章的篇幅,介绍Paxos算法。包括它的理论基础、基本实现、变种实现,其它保证最终一致性的算法,等等。原创 2017-03-13 22:16:50 · 9255 阅读 · 7 评论 -
架构设计:系统存储(22)——图片服务器:详细设计(2)
之前的两篇文章介绍了图片系统的技术组件选型和技术方案设计,从这篇文章开始我们将搭建工程进行详细的编码开发和效果测试。整个图片服务工程代码会上传到了CSDN的下载区,如果对工程感兴趣那么读者可以直接下载。原创 2017-01-18 11:23:42 · 6359 阅读 · 7 评论 -
架构设计:系统存储(21)——图片服务器:详细设计(1)
之前的两篇文章介绍了图片系统的技术组件选型和技术方案设计,从这篇文章开始我们将搭建工程进行详细的编码开发和效果测试。整个图片服务工程代码会上传到了CSDN的下载区,如果对工程感兴趣那么读者可以直接下载。原创 2017-01-18 11:22:36 · 8487 阅读 · 2 评论 -
架构设计:系统存储(20)——图片服务器:需求和技术选型(2)
图片服务系统是各种针对C端系统常见的子系统,它的特点是存储规模大请求频度高,且单张图片的读请求远远高于写请求。后面几篇文章我们将从图片服务系统的需求分析开始,一起来讨论如何进行这类系统的技术选型、概要设计和详细设计,以及在这个过程中需要关注的技术难点。原创 2017-01-16 16:44:30 · 8490 阅读 · 3 评论 -
架构设计:系统存储(19)——图片服务器:需求和技术选型(1)
图片服务系统是各种针对C端系统常见的子系统,它的特点是存储规模大请求频度高,且单张图片的读请求远远高于写请求。后面几篇文章我们将从图片服务系统的需求分析开始,一起来讨论如何进行这类系统的技术选型、概要设计和详细设计,以及在这个过程中需要关注的技术难点。原创 2017-01-16 16:41:00 · 18018 阅读 · 1 评论 -
架构设计:系统存储(18)——Redis集群方案:高性能
从这篇文章开始我们一起来讨论Redis中两种高性能集群方案,并且在讨论过程中将上一篇文章介绍的高可用集群方案结合进去。这两种高性能集群方案是:Twemproxy和Redis自带的Cluster方案。原创 2016-12-31 11:05:39 · 10113 阅读 · 10 评论 -
架构设计:系统存储(17)——Redis集群方案:高可用
从本篇文章开始,我们将向读者介绍几种Redis的高可用高负载集群方案。除了介绍Redis 3.X版本中推荐的原生集群方案外,还会介绍使用第三方组件搭建Redis集群的方法。本文我们会首先介绍Redis的高可用集群方案。原创 2016-12-20 17:46:51 · 10948 阅读 · 10 评论 -
架构设计:系统存储(16)——Redis事件订阅和持久化存储
在本专题讨论Redis时,会首先花一些较少的篇幅介绍Redis的基本安装和使用,然后将深入Redis所支持的数据结构主要讲解Redis底层设计对这些数据结构的支撑,接下来会介绍Redis的主要配置优化事项,最后介绍Redis的集群搭建方式(基于3.X版本)和实施案例。原创 2016-12-13 11:14:49 · 12347 阅读 · 3 评论 -
架构设计:系统存储(15)——Redis基本概念和安装使用
在本专题讨论Redis时,会首先花一些较少的篇幅介绍Redis的基本安装和使用,然后将深入Redis所支持的数据结构主要讲解Redis底层设计对这些数据结构的支撑,接下来会介绍Redis的主要配置优化事项,最后介绍Redis的集群搭建方式(基于3.X版本)和实施案例。原创 2016-12-04 11:08:35 · 8700 阅读 · 10 评论 -
架构设计:系统存储(14)——MySQL横向拆分与业务透明化(2)
上文提到MyCat的逻辑表支持多种分片规则,表现于schema配置文件中中table标签的rule属性。本节将以MyCat Version 1.6版为基础,介绍几种经常使用的分片规则,这些分片规则都通过rule.xml文件进行定义和配置。原创 2016-11-29 18:15:51 · 6044 阅读 · 4 评论 -
架构设计:系统存储(13)——MySQL横向拆分与业务透明化(1)
之前文章中我们介绍了如何使用MyCat进行读写分离,类似的关系型数据库的读写分离存储方案可以在保持上层业务系统透明度的基础上满足70%业务系统的数据承载规模要求和性能要求。但是这个方案也有一个明显的问题,那就是它没有解决数据存储规模的瓶颈。如果单个节点上某个单表的数据规模超过了千万级,那么这个节点的读操作也会产生性能瓶颈。所以我们还需要进一步使用MyCat的分片技术对业务数据表进行横向拆分。原创 2016-11-29 18:12:13 · 6800 阅读 · 2 评论 -
架构设计:系统存储(12)——MySQL主从方案业务连接透明化(中)
如果数据库中单张数据表的规模达到了亿级(甚至以上),那么查询压力集中在一个读节点上也不会再有助于查询性能提升。所以在必要的情况下,我们还需要继续对上文给出的MySQL集群方案进行改进,让其能够适应更庞大的结构化数据规模。具体的思路就是在保持读写分离方案的基础上,对业务系统中结构化数据量达到或者超过亿级规模的若干张业务表进行拆分工作。本篇文章向读者介绍一个由国人开发并完全免费发布的数据库中间件,MyCat。原创 2016-11-10 16:37:42 · 11605 阅读 · 2 评论 -
架构设计:系统存储(11)——MySQL主从方案业务连接透明化(上)
在之前的文章中,我们提到MySQL一主多从集群模式下,对上层业务系统的访问带来了一些问题。本编文章中我们将深入分析这个问题,并介绍如何对这个问题进行改进。MySQL一主多从集群对上层业务系统带来的主要问题是,**上层业务系统需要自行控制本次MySQL数据操作需要访问MySQL集群中的哪个节点**。产生这个问题的主要原因,是因为**MySQL一主多从集群本身并没有提供现成功能,将集群中的节点打包成统一服务并向外提供**原创 2016-11-04 11:11:53 · 6928 阅读 · 9 评论 -
架构设计:系统存储(10)——MySQL简单主从方案及暴露的问题
从本篇文章开始我们将花一定的篇幅向读者介绍MySQL的各种服务集群的搭建方式。大致的讨论思路是从最简的MySQL主从方案开始介绍,通过这种方案的不足延伸出更复杂的集群方案,并介绍后者是如何针对这些不足进行改进的。MySQL的集群技术方案特别多,这几篇文章会选择一些典型的集群方案向读者进行介绍。原创 2016-10-31 11:12:29 · 22939 阅读 · 19 评论 -
架构设计:系统存储(9)——MySQL数据库性能优化(5)
为了帮助开发人员根据数据表中现有索引情况,了解自己编写的SQL的执行过程、优化SQL结构,MySQL提供了一套分析功能叫做SQL执行计划(explain)。本文我们就为大家介绍一下执行计划功能的使用。原创 2016-10-12 16:19:01 · 8752 阅读 · 6 评论 -
架构设计:系统存储(8)——MySQL数据库性能优化(4)
虽然锁机制是InnoDB引擎中为了保证事务性而自然存在的,在索引、表结构、配置参数一定的前提下,InnoDB引擎加锁过程是一样的,所以理论上来说也就**不存在“锁机制能够提升性能”这样的说法**。但理解InnoDB引擎中的锁机制可以帮助我们在高并发系统中尽可能不让锁和死锁成为数据库服务的一个性能瓶颈。原创 2016-10-07 16:51:37 · 7665 阅读 · 9 评论 -
架构设计:系统存储(7)——MySQL数据库性能优化(3)
MySQL数据库的性能不止受到性能参数和底层硬件条件的影响,在这两个条件一定的情况下,开发人员对SQL语句的优化能力更能影响MySQL数据库的性能。本文我们和读者一起来讨论一下InnoDB数据引擎下SQL语句常见的工作方式和优化规则。原创 2016-10-01 11:11:04 · 6742 阅读 · 10 评论 -
架构设计:系统存储(6)——MySQL数据库性能优化(2)
从本文开始我们将讨论建立在块存储方案之上的关系型数据库的性能优化方案和集群方案。关系型数据库的选型将以创业公司、互联网行业使用最广泛的MySQL数据为目标,但是MySQL的安装过程和基本使用方法等知识并不在我们讨论的范围内。后续几篇文章我们首先讨论影响单个MySQL节点性能的主要因素,然后介绍MySQL读写分离、数据表横纵拆分的原理和技术方案。原创 2016-09-18 18:12:11 · 7433 阅读 · 3 评论 -
架构设计:系统存储(5)——MySQL数据库性能优化(1)
从本文开始我们将讨论建立在块存储方案之上的关系型数据库的性能优化方案和集群方案。关系型数据库的选型将以创业公司、互联网行业使用最广泛的MySQL数据为目标,但是MySQL的安装过程和基本使用方法等知识并不在我们讨论的范围内。后续几篇文章我们首先讨论影响单个MySQL节点性能的主要因素,然后介绍MySQL读写分离、数据表横纵拆分的原理和技术方案。原创 2016-09-12 17:16:25 · 10827 阅读 · 4 评论 -
架构设计:系统存储(4)——块存储方案(4)
目前主流的文件系统包括windows下的NTFS文件系统、Linux下的EXT系列文件系统(管理规则已升级到EXT4)、XFS文件系统和Btrfs文件系统。由于本专题的知识体系全部基于Linux操作系统,所以我们不会对NTFS文件系统做过多介绍。在本文中我们主要介绍两种Linux下的文件系统:EXT系列文件系统。原创 2016-09-07 14:42:42 · 6237 阅读 · 4 评论 -
架构设计:系统存储(3)——块存储方案(3)
目前主流的文件系统包括windows下的NTFS文件系统、Linux下的EXT系列文件系统(管理规则已升级到EXT4)、XFS文件系统和Btrfs文件系统。由于本专题的知识体系全部基于Linux操作系统,所以我们不会对NTFS文件系统做过多介绍。在本文中我们主要介绍两种Linux下的文件系统:EXT系列文件系统和XFS文件系统。原创 2016-09-03 16:15:13 · 6954 阅读 · 8 评论 -
架构设计:系统存储(2)——块存储方案(2)
在“系统存储”专题中,我们将按照“从上至下”的顺序向读者介绍整个“系统存储”体系。在这个专题中我们将至少介绍机械硬盘的主要结构、硬盘阵列的分类、操作系统的EXT文件系统、NAS文件共享存储方案、分布式文件系统重要技术点和分布式文件系统示例。最后如果有时间我们将自行设计一款分布式文件系统。原创 2016-08-22 21:54:19 · 10948 阅读 · 3 评论 -
架构设计:系统存储(1)——块存储方案(1)
在“系统存储”专题中,我们将按照“从上至下”的顺序向读者介绍整个“系统存储”体系。在这个专题中我们将至少介绍机械硬盘的主要结构、硬盘阵列的分类、操作系统的EXT文件系统、NAS文件共享存储方案、分布式文件系统重要技术点和分布式文件系统示例。最后如果有时间我们将自行设计一款分布式文件系统。原创 2016-08-18 20:19:21 · 17682 阅读 · 15 评论