摘要:
1. Ceph架构 1.1 Ceph存储架构 Ceph独一无二地统一的系统提供了对象存储、块存储和文件存储功能。Ceph存储集群由几个不同的软件守护进程组成(比较重要的两个是MON和OSD),每个守护进程负责Ceph的一个独特功能并将值添加到相应的组件中。 Ceph术语简介: RADOS:可靠、自动 阅读全文
摘要:
1. 事务 1.1 事务概述 事务用来保证数据库的完整性——要么都修改,要么都不修改。事务必须满足ACID四个特性。 原子性(atomicity),指整个数据库事务是不可分割的工作单位。只有使事务中所有的数据库操作执行都成功,才算整个事务成功。如果事务中任何一个SQL语句执行失败,那么已经执行成功的 阅读全文
摘要:
MySQL分区就是将一个表分解为多个更小的表。从逻辑上讲,只有一个表或一个索引,但在物理上这个表或者索引可能由多个物理分区组成。每个分区在物理上都是独立的。MySQL数据库分区类型: Range分区:行数据基于属于一个给定连续区间的列值放入分区。 List分区:和Range分区类似,只是List分区 阅读全文
摘要:
1. binlog(二进制日志) 1.1 binlog介绍 binlog记录了对数据库执行更改的所有操作(不包括查询),还包括了执行数据库更改操作的时间和执行时间等信息。binlog主要有两个作用: 恢复(recovery)。可以通过binlog进行point-in-time的恢复。 复制(repl 阅读全文
摘要:
1. 二叉堆 1.1 堆简介 二叉堆是一个完全二叉树,分为最大堆和最小堆。在最大堆中,父节点的值大于等于其左右子节点的值,即最大堆中根节点的值最大。在最小堆中,父节点的值小于等于其左右子节点的值,即最小堆中根节点的值最小。 本文以最大堆为例。 二叉堆一般用数组表示,本文直接用int型数组存储堆数据( 阅读全文
摘要:
1. Kafka控制器介绍 在Kafka集群中会有一个或多个broker,其中有一个broker会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。当某个分区的leader副本(一个分区会有多个副本,其中只有leader副本对外提供读写服务)出现故障时,由 阅读全文
摘要:
概述 简单回顾下Kafka消息,Kafka中的消息以主题(Topic)为单位进行分类,主题是一个逻辑上的概念,主题还可以细分为一个或多个分区,一个分区只属于单个主题,所以也可以把分区称为主题分区(Topic-Partition)。同一个主题下的不同分区包含的消息是不同的,每个分区还可以有多个副本用于 阅读全文
摘要:
[TOC] 1. 守护进程简介 守护进程(deamon)是生存期长的一种进程。它们常常在系统引导装入时启动(如果需要守护进程随系统自启动,需要在 目录下放置响应的启动脚本,或者利用 来控制,还有一些其他方法如 等,读者可自行网上搜索相关用法),仅在系统关闭时才终止。因为它们没有控制终端,所以说 它们 阅读全文
摘要:
[TOC] 1. 需求分析 1.1 背景介绍 一个主系统和若干其他团队(或公司)开发的子系统(主系统和每个子系统都有前后端)需要对外展现为一个系统(实际上没有主系统和子系统之分,这里是因为主系统研发团队需要对整个系统负责,而子系统研发团队只对自身系统负责)。因时间关系,主系统研发团队不再重新开发界面 阅读全文
摘要:
[TOC] 1. 切片底层实现 1.1 切片简介 Go语言中的切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数append来实现的,还可以通过对切片再次切片来缩小一个切片的大小。因为切片在内存中是连续的,所以切片还能获得索引、迭代以及垃圾回收优化的好处。 1.2 阅读全文