跳至主要內容
《HBase A NoSQL database》笔记

《HBase: A NoSQL database》笔记

简介

HBase 是一种 NoSQL 数据库,它是Java版本的 Google’s Big Table 实现,它原本是 Hadoop 的子项目,现在已独立出来,并成为 apache 的顶级项目。

HBase 的设计目标是用于存储大规模数据集。HBase 是列式数据库,与传统行式数据库相比,其非常适合用于存储稀疏性的数据。

HBase 是基于 HDFS 实现的。

HBase 和历史

HBase 关键特性:

  • 水平扩展
  • 分区容错性
  • 支持并行处理
  • 支持 HDFS 和 MapReduce
  • 近实时查询
  • 适用于存储大规模数据集
  • 适用于存储稀疏型数据(宽表)
  • 表的动态负载均衡
  • 对于大规模的查询,支持块缓存和布隆过滤器

钝悟...大约 2 分钟笔记分布式分布式存储分布式分布式存储HBASE
《The Log-Structured Merge-Tree (LSM-Tree)》笔记

《The Log-Structured Merge-Tree (LSM-Tree)》笔记

LSM 被广泛应用于很多以文件结构存储数据的数据库,如:HBase, Cassandra, LevelDB, SQLite。

LSM 的设计目标:通过顺序写来提高写操作吞吐量,替代传统的 B+ 树或 ISAM。

参考资料


钝悟...小于 1 分钟笔记分布式分布式存储分布式分布式存储HBASE
《24 讲吃透分布式数据库》笔记

《24 讲吃透分布式数据库》笔记

开篇词 吃透分布式数据库,提升职场竞争力

导论:什么是分布式数据库?聊聊它的前世今生

分布式数据库的核心

数据分片

  • 水平分片:按行进行数据分割,数据被切割为一个个数据组,分散到不同节点上。

  • 垂直分片:按列进行数据切割,一个数据表的模式(Schema)被切割为多个小的模式。

数据同步

数据库同步用于帮助数据库恢复一致性。

分布式数据库发展就是一个由合到分,再到合的过程


钝悟...大约 11 分钟笔记分布式分布式存储分布式分布式存储
分布式存储

分布式存储

📖 内容

  • 分布式缓存 - 关键词:进程内缓存分布式缓存缓存雪崩缓存穿透缓存击穿缓存更新缓存预热缓存降级
  • 读写分离
  • 分库分表 - 关键词:分片路由迁移扩容双写聚合

钝悟...小于 1 分钟分布式分布式存储分布式分布式通信
读写分离基本原理

读写分离基本原理

读写分离的基本原理是:主服务器用来处理写操作以及实时性要求比较高的读操作,而从服务器用来处理读操作

1. 为何要读写分离

  • 有效减少锁竞争 - 主服务器只负责写,从服务器只负责读,能够有效的避免由数据更新导致的行锁竞争,使得整个系统的查询性能得到极大的改善。
  • 提高查询吞吐量 - 通过一主多从的配置方式,可以将查询请求均匀的分散到多个数据副本,能够进一步的提升系统的处理能力。
  • 提升数据库可用性 - 使用多主多从的方式,不但能够提升系统的吞吐量,还能够提升数据库的可用性,可以达到在任何一个数据库宕机,甚至磁盘物理损坏的情况下仍然不影响系统的正常运行。

钝悟...大约 3 分钟分布式分布式存储分布式数据调度读写分离
分库分表基本原理

分库分表基本原理

1. 为何要分库分表

分库分表主要基于以下理由:

  • 并发连接 - 单库超过每秒 2000 个并发时,而一个健康的单库最好保持在每秒 1000 个并发左右,不要太大。
  • 磁盘容量 - 磁盘容量占满,会导致服务器不可用。
  • SQL 性能 - 单表数据量过大,会导致 SQL 执行效率低下。一般,单表超过 1000 万条数据,就可以考虑分表了。
# 分库分表前 分库分表后
并发支撑情况 MySQL 单机部署,扛不住高并发 MySQL 从单机到多机,能承受的并发增加了多倍
磁盘使用情况 MySQL 单机磁盘容量几乎撑满 拆分为多个库,数据库服务器磁盘使用率大大降低
SQL 执行性能 单表数据量太大,SQL 越跑越慢 单表数据量减少,SQL 执行效率明显提升

钝悟...大约 18 分钟分布式分布式存储分布式数据调度分库分表
缓存基本原理

缓存基本原理

缓存是一种利用空间换时间的设计,其目标就是更快更近

缓存简介

为什么需要缓存

众所周知,当今是一个互联网时代,而互联网应用几乎遍及我们日常生活的方方面面。一般而言,一个互联网应用的请求/响应流程会有以下几个主要流程:

  • 客户端发起请求,请求经过网络 I/O,分发到服务层。
  • 服务层可能有多级服务,请求需要被多个服务层层处理。
  • 不同服务根据请求进行计算时,可能依赖于不同数据库的数据,需要通过网络 I/O 读写数据库。

钝悟...大约 37 分钟分布式分布式存储分布式数据调度缓存