
数据库原理
文章平均质量分 78
数据库原理专栏
数据源的港湾
这个作者很懒,什么都没留下…
展开
-
理解Hash表
有效管理数据的技术是计算机科学的传统热点。除了存储数据之外,从存储中高效地恢复数据是另一个相关问题。即使使用最好的算法处理某些特定的数据,如果没有优化数据管理,我们的性能也会很差。因此,恢复和向算法提供数据以及保存其输出成为性能瓶颈。随着时间的推移,已经提出了几种保存和管理数据的技术。例如数组、链表、树和图。这些数据结构非常适合多种用途。但是,查找和恢复存储在它们中的数据的时间复杂度通常高于另一种数据结构:哈希表。因此,本教程将探讨与散列表有关的最相关的概念。首先,我们将简要回顾一下哈希。原创 2023-10-23 10:35:35 · 160 阅读 · 0 评论 -
hash join的基本原理是怎样的?
我们知道数据库里面两表关联主要有三种常见的关联方式,即nested loop join在OLTP交易场景占比是最多的,常用于关联字段为主键或索引字段的情况,通过主键或索引以及loop的方式,A表可以快速查找到匹配的B表中的数据。merge join又称为sort merge,可想而知,如果被关联的两个数据集正好是有序的,那么采用这种方式是最高效的。hash join则是把一个表(通常为小表)放在hash内存中,进行匹配关联。虽然知道这点简单的理解,不过当别人问起来hash join具体怎么实现的时候,发现并原创 2023-10-17 09:24:08 · 1463 阅读 · 0 评论 -
Greenplum的两阶段提交
注:本文章引自在前面的文章中,我们了解了单机库中的事务一致性实现以及分布式事务中的两阶段提交协议。大多数分布式系统都是采用了两阶段提交塄来保证事务的原子性,Greenplum也是采用了两阶段提交,Greenplum的两阶段提交是基于PostgreSQL的基础上实现的。原创 2023-02-16 18:19:08 · 720 阅读 · 0 评论 -
分布式事务实现机制及二阶段提交
注:本文章引自。原创 2023-02-16 17:06:44 · 724 阅读 · 0 评论 -
单机数据库事务实现机制
注:本文章引自。原创 2023-02-16 13:06:43 · 484 阅读 · 0 评论 -
分布式事务排序与时钟方案
租户级别的全局时钟服务每个租户启动一个全局时间戳服务(Global Timestamp Service,即GTS),事务提交时通过本租户的时间戳服务获取事务版本号,保证全局的事务顺序。基于Paxos的高可用GTS默认三副本(基于Paxos),使用租户级别内部表的leader作为GTS服务提供者,时间来源于该leader的本地时钟。时钟获取优化。原创 2022-12-01 09:33:29 · 696 阅读 · 0 评论 -
分布式一致性协议之Gossip
Gossip协议也叫 Epidemic协议(流行病协议),是基于流行病传播方式的节点或者进程之间信息交换的协议。如果把两个节点数据同步一次定义为一个周期,则在一个周期内,Push 需通信 1 次,Pull 需 2 次,Push/Pull 则需 3 次。Paxos、Raft、ZAB 等分布式算法经常会被称作是“强一致性”的分布式共识协议,因为从整体上对系统外部看来是不会有不一致的情况的。Gossip协议通常以**随机的“对等选择”**形式实现:以给定的频率,每台计算机随机选择另一台计算机,并共享任何消息。原创 2022-09-21 12:02:04 · 557 阅读 · 0 评论 -
分布式数据库理论知识之CAP理论、ACID原则及分布式事务一致性算法
一阶段提交不需要“协调者”角色,各结点之间不存在协调操作,因此其事务执行时间比两阶段提交要短,但是提交的“危险期”是每一个事务的实际提交时间,相比于两阶段提交,一阶段提交出现在“不一致”的概率就变大了。一旦协调者出现问题,那么整个二阶段提交流程将无法运转,更为严重的是,如果协调者是在阶段二中出现问题的话,那么其他参与者将会一直处于锁定事务资源的状态中,而无法继续完成事务操作。当且仅当所有的参与者同意提交事务协调者才通知所有的参与者提交事务,否则协调者将通知所有的参与者取消事务。原创 2022-08-24 17:00:10 · 2071 阅读 · 0 评论 -
分布式一致性问题之混合逻辑时钟
物理时钟存在的问题计算机的系统时钟是一个频率精确和稳定的脉冲信号发生器,也称为物理时钟。对于传统的单机数据库系统,时间戳值可依据本机器的物理时钟获取。但在分布式系统中,各个节点分布在不同的物理位置,每个节点都有自己的物理时钟,而这些节点的物理时钟无法保正完全精确一致。所以物理时钟不能作为分布式系统内在不同节点上并发执行的事务的排序依据。逻辑时钟Lamport Logicla Clocks(LC) 算法定义的偏序关系能正确的排列出具有因果关系的事件的次序,但是不能保正并发事件的真实顺序,使得分布式系原创 2022-05-04 16:08:32 · 1875 阅读 · 2 评论 -
并发访问控制技术之MVCC
MVCC,全称Multi-Version Concurrency Control,是并发访问控制的核心技术之一,是用于防止用户表数据被并发事务访问时出现数据不一致的问题。MVCC有三个主要的核心技术:多版本;快照;可见性判断算法。多版本一般情况下,在数据库基于某个数据进行基于封锁的并发访问控制技术时,读会阻塞写操作,写会阻塞读操作,写也会阻塞写操作,这导致了数据库事务处理的性能会比较差。MVCC技术对数据进行“分身”处理,把数据按照生存状态和阶段生命期进行区分。对于数据来说,意味着数据有多原创 2022-04-16 21:57:44 · 950 阅读 · 0 评论 -
事务处理的三种策略
经典的事务处理策略主要有三种。乐观并发控制策略(Optimistic Concurrency Control,OCC)从事务开始,每一项操作都允许进行,但在事务提交的时刻,需要进行隔离性和完整性约束检查,如果有违反相关约束的行为则终止事务。单机事务处理模型很少使用乐观并发控制策略。使用这种策略的分布式数据库有Percolator、CockroachDB等。悲观并发控制策略(Pessimistic Concurrency Control,PCC)从事务开始就检查每一项操作是否会违反隔离性和完整性约束原创 2022-04-15 16:47:53 · 1065 阅读 · 0 评论 -
数据库架构设计的三种模式
数据库架构设计当前主要有三种模式,分别为Shared Nothing、Shared Everything、Shared Disk。Share Nothing各个处理单元都有自己私有的CPU/内存/硬盘等,不存在共享资源,类似于MPP(大规模并行处理)模式,各处理单元之间通过协议通信,并行处理和扩展能力更好。典型代表DB2 DPF和Hadoop ,各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转。我们常说的 Sharding 其实就是Share Nothing架构,它是把某个原创 2022-04-13 17:15:22 · 973 阅读 · 0 评论 -
关于共识算法
实际上,要保障系统满足不同程度的一致性,往往需要通过共识算法来达成。共识算法解决的是对某个提案(Proposal),大家达成一致意见的过程。提案的含义在分布式系统中十分宽泛,如多个事件发生的顺序、某个键对应的值、谁是领导……等等,可以认为任何需要达成一致的信息都是一个提案。注:实践中,一致性的结果往往还需要客户端的特殊支持,典型地通过访问足够多个服务节点来验证确保获取共识后结果。问题挑战实际上,如果转载 2017-11-29 13:11:13 · 2342 阅读 · 0 评论 -
关于CAP原理
CAP 原理最早由 Eric Brewer 在 2000 年,ACM 组织的一个研讨会上提出猜想,后来 Lynch 等人进行了证明。 该原理被认为是分布式系统领域的重要原理。定义分布式计算系统不可能同时确保一致性(Consistency)、可用性(Availablity)和分区容忍性(Partition),设计中往往需要弱化对某个特性的保证。一致性(Consistency):任何操作应该都是原子转载 2017-11-29 11:33:47 · 667 阅读 · 0 评论