Newsql
lhdz_bj
大学毕业至今,一直深耕于数据库领域20余载,擅长数据库优化、数据库分析诊断、数据库规划设计等,曾任职多家知名大型企业,多次独立承担并成功上线关键大型项目。
展开
-
CockroachDB架构——CockroachDB中的读和写
本文解释CockroachDB复制和分布特性如何影响读和写。本文以总结某些重要的CockroachDB架构概念开始,接着,介绍几个简单的读写场景。--注意:1)一个查询通过CockroachDB架构各层的更多细节,请参考分布式事务的生命周期。一.重要概念1.集群(Cluster):CockroachDB部署,充当单个逻辑应用。2.节点(Node):运行CockroachDB的单个机器。多个节点联合一起创建集群。3.范围(Range):CockroachDB存储所有的用户数据(表,索引等。),原创 2020-10-19 11:40:07 · 1017 阅读 · 0 评论 -
CochroachDB架构——分布式事务的生命周期
因为CockroachDB是一个分布式事务数据库,查询采用的路径与很多其他数据库架构有显著不同。为了帮助您熟悉CockroachDB内部,该指南会覆盖路径介绍的内容。如果您已经阅读了CockroachDB架构文档,该指南作为概念化该数据库工作机制的另一个方式。这次,我们不是专注CockroachDB架构的各个层,而是将专注于查询通过系统(然后再回来)采用的线性路径。为了最大化该指南的价值,我们推荐以架构文档的概览开始并继续阅读如下所有部分。该指南简要描述每个组件功能和其他合适文档的链接,但假设读者首先对原创 2020-10-16 14:49:35 · 1260 阅读 · 2 评论 -
CockroachDB架构——存储层
CockroachDB架构的存储层对磁盘数据进行读写。--注意:1)如果您还没准备好,我们推荐您阅读架构概览。一.概览每个CockroachDB节点包含至少一个store,其在节点启动时指定,其是CockroachDB进程在磁盘上读写数据的地方。数据通过RocksDB以键值对存储于磁盘,RocksDB主要以黑盒API被处理,每个store包含两个RocksDB实例:1)一个用于存储临时分布SQL数据。2)一个用于节点上的所有其他数据。此外,还有一个块缓冲在一个节点的所有stores间共享。原创 2020-10-14 11:29:57 · 765 阅读 · 1 评论 -
CockroachDB架构——复制层
CockroachDB架构的复制层在节点间拷贝数据并通过我们的共识算法确保这些拷贝间的一致性。--注意:1)如果您还没准备好,我们建议阅读架构概览部分。一.概览高可用性要求数据库能容忍节点下线而不会中断应用服务。这意味着节点间的复制确保数据保持可访问。确保离线节点的一致性是一个挑战,很多数据库都失败了。为了解决这个问题,CockroachDB用了共识算法要求某个范围的更新在提交前副本的法定人数必须一致同意这些更新。因为3(即,3个中的2个)是能获得法定人数的最小数,所以,CockroachDB的高原创 2020-10-13 10:51:58 · 500 阅读 · 1 评论 -
CockroachDB架构——分布层
CockroachDB架构的分布层提供了集群数据的统一视图。--注意:1)如果您还没有准备好,我们建议先阅读架构概览部分。一.概览为了从任何节点访问集群中的所有数据,CockroachDB按照整体排序映射来存储键值对。该键空间描述集群中数据的所有信息及其位置,并将其分为我们称为的"范围",其为连续的键空间块,以便每个键值总是能在单个范围内找到。CockroachDB实施排序映射以开启:1)简化查找(Simple lookups):因为我们要鉴别哪个节点复制某部分数据,查询能快速定位其需要的数据.原创 2020-10-10 15:07:21 · 1138 阅读 · 0 评论 -
CockroachDB架构——事务层
CockroachDB架构的事务层通过协调并发操作实现对ACID事务的支持。--注意:1)如果您还没准备好,我们建议您阅读架构概览部分。一.概览胜过一切,CockroachDB认为一致性是数据库最重要的特性——否则,开发人员不能构建可靠的工具,并且业务会遭受潜在微妙而难以探测的异常。为了支持一致性,CockroachDB在事务层实现了对ACID事务语义的完全支持。但是,明白所有语句包括单条语句——这有时被称为"自动提交模式(autocommit mode)"被作为事务处理非常重要,因为,其行为就原创 2020-09-25 17:05:39 · 872 阅读 · 1 评论 -
CockroachDB架构——SQL层
ChockroachDB架构的SQL层向开发人员公开SQL API并将SQL语句转换成数据库其他部分使用的键值操作。--注意:1)如果您还没有准备好,我们建议您阅读架构概览部分。一.概览一旦CockroachDB部署,开发人员只需通过连接串连接到簇并发送SQL语句开始工作。因为CockroachDB节点行为都是对称的,开发人员能向任何节点发送请求(这意味着CockroachDB能与负载据衡器很好的工作)。无论哪个节点作为"网关节点(gateway node)"接收到请求,都像其他层一样处理该请求原创 2020-09-22 17:21:26 · 775 阅读 · 0 评论 -
CockroachDB架构——概览
CockroachDB被设计用于创建开发者想用的源码可用的数据:集扩展性与一致性一体的数据库。开发者经常问到我们是如何实现的,该指南详细说明了CockroachDB进程的内部工作原理。然而,使用CockroachDB您肯定不需要理解底层架构。这些内容为认真的用户和数据库爱好者提供了一个高级框架来解释底层发生了什么。一.指南使用该指南分为多部分来详细说明CockroachDB的每一层。推荐按顺序阅读这些层,以该概览开始,接着阅读SQL层。如果您正寻找CockroachDB的高级理解,您能只阅读每层的概原创 2020-09-22 15:15:13 · 1372 阅读 · 1 评论 -
CockroachDB Docs
本文源自:https://www.cockroachlabs.com/docs/v20.1/index.html总算找到你,留个脚印,有时间也好踩踩。。。CockroachDB is the SQL database for building global, scalable cloud services that survive disasters.GET STARTEDOnline TrainingInstall CockroachDBStart a Local Cluster转载 2020-09-21 17:38:03 · 174 阅读 · 0 评论 -
RocksDB Wiki
留个RocksDB的脚印,也好有时间去踩踩。。。本文源自:https://www.bookstack.cn/read/rocksdb-en/573fb63dc4216007.mdWelcome to RocksDBRocksDB is a storage engine with key/value interface, where keys and values are arbitrary byte streams. It is a C++ library. It was developed a转载 2020-09-21 15:16:28 · 1039 阅读 · 1 评论 -
【Rocksdb实现分析及优化】事务之Pessimistic ①
本文源自:https://kernelmaker.github.io/Rocksdb_transaction_1之前对Rocksdb都是关于它主体实现的介绍,最近在看他的事务实现,还没全看完,打算边看边记录,用几篇博客详细写一下Rocksdb Transaction相关的原理及实现。这一篇先不展开细节实现,简单介绍一下它的Pessimistic Transaction。1. Pessimistic vs OptimisticRocksdb的事务实现包括Pessimistic(悲观)和Optimi转载 2020-09-19 12:24:36 · 1223 阅读 · 1 评论 -
Rocksdb基本用法
本文源自:https://www.cnblogs.com/wanshuafe/p/11564148.htmlrocksdb 用法简单介绍 RocksDB是使用C++编写的嵌入式kv存储引擎,其键值均允许使用二进制流。由Facebook基于levelDB开发, 提供向后兼容的levelDB API。 RocksDB针对Flash存储进行优化,延迟极小。RocksDB使用LSM存储引擎,纯C++编写。 打开一个数据库 rocksdb::DB* db; rocksdb::Options转载 2020-09-19 11:38:05 · 2272 阅读 · 1 评论 -
RocksDB事务的隔离性分析
本文源自:https://www.cnblogs.com/happytech/p/13166703.htmlRocksdb事务隔离性指的是多线程并发事务使用时候,事务与事务之间的隔离性,通过加锁机制来实现,本文重点剖析Read Commited隔离级别下,Rocksdb的加锁机制。Rocksdb事务相关类族Rocksdb的事务相关的类图如下图所示。主要有两个类族,Transaction和DB,默认采用PessimisticTransaction,而PessimisticTransaction内部的转载 2020-09-19 11:30:22 · 741 阅读 · 1 评论 -
RocksDB事务实现TransactionDB分析
本文源自:https://developer.aliyun.com/article/257424基本概念1. LSN (log sequence number)RocksDB中的每一条记录(KeyValue)都有一个LogSequenceNumber(后面统称lsn),从最初的0开始,每次写入加1。该值为逻辑量,区别于InnoDB的lsn为redo log物理写入字节量。这个lsn在RocksDB内部的memtable中是单调递增的,在WriteAheadLog(WAL)中以WriteBat转载 2020-09-19 11:15:56 · 671 阅读 · 1 评论 -
OceanBase架构初探
本文源自:https://blog.csdn.net/jiankunking/article/details/840200301、设计思路OceanBase的目标是支持数百TB的数据量以及数十万TPS、数百万QPS的访问量,无论是数据量还是访问量,即使采用非常昂贵的小型机甚至是大型机,单台关系数据库系统都无法承受。一种常见的做法是根据业务特点对数据库进行水平拆分,通常的做法是根据某个业务字段(通常取用户编号,user_id)哈希后取模,根据取模的结果将数据分布到不同的数据库服务器上,客户端请求通转载 2020-09-18 17:15:22 · 370 阅读 · 0 评论 -
TiDB 最佳实践系列(三)乐观锁事务
本文源自:https://pingcap.com/blog-cn/best-practice-optimistic-transaction/本文对TIDB的悲观事务和实践经验进行了介绍和说明,供各位同学及自己学习参考研究。Fri, Oct 18, 2019 ShirlyTiDB 最佳实践系列是面向广大 TiDB 用户的系列教程,旨在深入浅出介绍 TiDB 的架构与原理,帮助用户在生产环境中最大限度发挥 TiDB 的优势。我们将分享一系列典型场景下的最佳实践路径,便于大家快速上手,迅速定位.转载 2020-09-18 16:12:30 · 427 阅读 · 2 评论 -
CockroachDB架构浅析
本文源自:http://www.cockroachchina.cn/?p=685这篇文档介绍和说明了cockroachdb的架构,简单明了。作为Spanner的开源实现,CockroachDB具有支持标准SQL接口,线性扩展,强一致,高可用等重要特性。总体架构如下图所示:CockroachDB架构图 总览 Node代表一个CockroachDB进程实例,一般情况下一台物理机部署一个CockroachDB实例,一个CockroachDB实例可以配置多个Store, 单个Store与R...转载 2020-09-18 15:42:24 · 1193 阅读 · 1 评论 -
了解 TiDB 技术内幕 - 调度
本文源自:https://pingcap.com/blog-cn/tidb-internal-3/Tue, Jun 6, 2017 申砾为什么要进行调度先回忆一下三篇文章了解 TiDB 技术内幕 - 说存储提到的一些信息,TiKV 集群是 TiDB 数据库的分布式 KV 存储引擎,数据以 Region 为单位进行复制和管理,每个 Region 会有多个 Replica(副本),这些 Replica 会分布在不同的 TiKV 节点上,其中 Leader 负责读/写,Follower 负责同步.转载 2020-05-12 17:41:08 · 199 阅读 · 0 评论 -
TiDB 技术内幕 - 计算
本文源自:https://pingcap.com/blog-cn/tidb-internal-2/Wed, May 24, 2017 申砾关系模型到 Key-Value 模型的映射在这我们将关系模型简单理解为 Table 和 SQL 语句,那么问题变为如何在 KV 结构上保存 Table 以及如何在 KV 结构上运行 SQL 语句。 假设我们有这样一个表的定义:CREATE TABLE User { ID int, Name varchar(20), Role varchar(20)转载 2020-05-12 09:44:58 · 239 阅读 · 0 评论 -
TiDB 技术内幕 - 存储
本文源自:https://pingcap.com/blog-cn/tidb-internal-1/Mon, May 15, 2017 申砾引言数据库、操作系统和编译器并称为三大系统,可以说是整个计算机软件的基石。其中数据库更靠近应用层,是很多业务的支撑。这一领域经过了几十年的发展,不断的有新的进展。很多人用过数据库,但是很少有人实现过一个数据库,特别是实现一个分布式数据库。了解数据库的实现原理和细节,一方面可以提高个人技术,对构建其他系统有帮助,另一方面也有利于用好数据库。研究一门技术最转载 2020-05-11 18:07:22 · 337 阅读 · 0 评论 -
What Is New About NewSQL(NewSQL的独到之处)?
文本源自:https://softwareengineeringdaily.com/2019/02/24/what-is-new-about-newsql/ https://cloud.tencent.com/developer/article/1445846ByGokhan SimsekArticleSunday, February 24 2019Most programmers are familiar with SQL and the...转载 2020-05-09 14:58:08 · 1339 阅读 · 0 评论 -
分布式NewSQL对比
本文源自:https://www.cnblogs.com/GO-NO-1/p/9935195.html1、TiDB:说明:PingCAP公司基于GoogleSpanner/F1论文实现的开源分布式NewSQL数据库。开源分布式NewSQL关系型数据库TiDB是新一代开源分布式NewSQL数据库,模型受GoogleSpanner/F1论文的...转载 2020-05-08 16:27:56 · 613 阅读 · 0 评论