![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式技术专题
文章平均质量分 80
天云数据
这个作者很懒,什么都没留下…
展开
-
天云数据Hubble数据库被评为“IDC创新者:中国分布式数据库,2022”
近日,国际知名研究机构 IDC 发布《IDC Innovator:中国分布式关系型数据库》报告正式发布,天云融创数据科技(北京)有限公司(以下简称“天云数据”)被评为“IDC创新者:中国分布式数据库,2022”。原创 2023-01-30 15:12:31 · 494 阅读 · 0 评论 -
天云数据Hubble数据库荣获2022年度IT168技术卓越奖
在2022年即将结束之际,IT168再次启动“技术卓越奖”评选。由行业CIO/CTO大咖、技术专家及IT媒体三方联合评选,评判标准代表了用户和媒体声音。经过多方评审,天云数据Hubble数据库荣获2022年度IT168技术卓越奖。原创 2023-01-30 15:07:05 · 258 阅读 · 0 评论 -
天云数据历史数据查询解决方案,全量·全渠道·多维度·7*24h随时随地想查就查
随着互联网时代的到来,人们足不出户用手机就可以办理各种银行业务。事物总有两面性,便捷的网上交易使得银行系统中积累的数据量越来越大。因此,为了保证核心数据存储系统正常工作,常规银行无法实时查询五年以上的历史数据。普通业务办理,可以预约等待。但如果遇到公安办案、监管部门查交易明细等紧急情况时,无法满足实时查询的需求会影响办案的时效性。随着时间的流逝,历史数据查询难度日益增加。源起:银行数据存贮、服务现状目前银行核心系统一般只保存近13个月左右的数据,所有历史数据几乎离线保存在如磁带库、光盘库中,以减原创 2021-09-03 10:25:38 · 553 阅读 · 0 评论 -
「分布式技术专题」事务型、分析型数据资源隔离机制
资源隔离在分布式系统里通常将进程进行资源隔离,然后在同一个进程里的各种业务都共享线程池对外提供服务,这就经常会遇到这样的问题:分析型的负载较高,抢占了线程池里的大部分线程资源,从而会造成事务业务的服务质量下降;或者某个业务负责较高,使其他的业务质量下降。同一个进程内新加入一个业务,这个业务会抢占其他业务的资源,从而造成系统的不稳定,比如业务性能抖动;难以调试,比如同一个进程里的10个业务共享同一个线程池,当出现故障时难以通过简单的日志判断是哪个业务出了问题。因此,希望通过一种机制处理上面的问题,资源隔离的原创 2021-03-05 17:27:45 · 409 阅读 · 0 评论 -
「分布式技术专题」副本机制
副本放置算法1、raft协议原理raft2、单个shard的复制raft-single3、Raft group组raft-group在一定情况下,copyset的数量不是越多越好,在恢复时间确定的情况下,找到合适的copyset的数量可以降低数据丢失的概率。为了提高存储系统数据可靠性,首先在系统允许的成本范围内选择合适的副本数,再次在系统设计中我们首先优先考虑加快数据恢复时间,在此基础上减小系统的copyset数量。使得在既定的成本下达到尽可能高的可靠性。参考论文《Copysets:Re原创 2021-03-05 17:23:28 · 1102 阅读 · 0 评论 -
「分布式技术专题」外部接口
外部接口(提供给第三方使用的接口)。提供外部JAVA服务来进行调用,如:JDBC、ODBC.原理外部接口目前采用JDBC和ODBC,提供外部系统对数据库的操作访问, JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。简言之,JDBC就是Java用于执行原创 2021-03-05 17:21:11 · 351 阅读 · 1 评论 -
「分布式技术专题」内部语言层接口
在分布式数据库中,内部接口(供系统内部调用的接口),通过内部语言层接口来进行数据库体系内部各层之间的通信协议进行交互。原理为提高整个系统的智能性,实现主节点对各数据节点的监控、调配和统计,将所处理的数据以数据库的式传送给主机,并严格以相应的格式来读写文件。数据库文件由文件结构和数据两部分组成,文件结构采用的是二进制存储方式而数据部分则是以ASII方式存储。库文件结构部分描述文件的概况:建立或修改日期,数据记录个数、库文件的结构长度、记录长度等。数据库底层存储采用C语言进行结构存储。C语言具有很好的底层控原创 2021-03-04 16:54:06 · 131 阅读 · 1 评论 -
「分布式技术专题」故障恢复
由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。原理随着计算机网络技术的日臻成熟,分布式数据库以其较高的访问局部性能逐渐成为关系企业的主流数据库系统。其中恢复子系统是分布式数据库系统的关键性组成部分,其在数据库的故障恢复中发挥着至关重要的作用。在分布式数据库特点分析的基础上,对数据库故障恢复技术进行了剖析,基于两阶段及三阶段协议的数据库恢复方法,从而提高了数据库系原创 2021-03-04 16:50:06 · 500 阅读 · 1 评论 -
「分布式技术专题」缓存
缓存凡是位于速度相差较大的两种硬件之间,用于协调两者数据传输差异的结构,都称为cache。缓存可分为本地缓存和分布式缓存,在现在的系统架构中,缓存的地位可以说是非常高的。因为在互联网的时代,请求的并发量可能会非常高,在分布式数据库中,对高并发的要求越来越高,实现高并发的策略,需要借助一些缓存的实现机制,而缓存由于是在内存中处理,并不需要磁盘的IO,所以非常适合于高并发的处理,也就成为了各个系统中必不可少的一部分了。不过,由此产生的问题也是非常多的,其中一个就是如何保证数据库和缓存之间的数据一致性。由于数据原创 2021-03-03 16:59:29 · 193 阅读 · 3 评论 -
「分布式技术专题」数据切分与合并
为何进行数据切分海量数据的存储和访问成为系统设计的瓶颈问题。每天海量数据的增长无疑对数据库造成了相当高的负载。给系统的稳定性和扩展性造成了极大的问题。通过数据的拆来提高系统整体性能,扩充系统整体容量,横向扩展数据层已经成为分布式数据库架构师及开发人员首选的方式。因此,需要能数据库的数据进分切分存储。为何进行数据合并存储文件会被后台的管理进程仔细地监控起来以确保它们处于控制之下。随着memstore的刷写会生成很多磁盘文件。会生成很小文件,如果文件的数目达到阈值,合并(compaction)过程将把它们原创 2021-03-03 16:57:57 · 589 阅读 · 2 评论 -
「分布式技术专题」分区
数据分区是一种物理数据库的设计技术,它的目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间。分区并不是生成新的数据表,而是将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介子中,实际上还是一张表。另外,分区可以做到将表的数据均衡到不同的地方,提高数据检索的效率,降低数据库的频繁IO压力值。原理分区是将大量数据和访问请求均匀分布在多个节点上。如果每个节点均匀承担数据和请求,那么理论上10个节点就应该能承担10倍于单节点的数据量和访问量。这个理论是忽略了复制产生的Follower副本的原创 2021-03-02 17:18:11 · 190 阅读 · 0 评论 -
「分布式技术专题」数据分布(数据复制、数据分片及优劣势)
数据复制对于那些需要在多个场地上对数据进行更新的应用来说,自动快照的功能就显得很不够了。这些应用要求同一个表的多份拷贝在多个场上进行维护。把数据复制到远程节点,使数据更容易被系统中的较远的用户访问,从而境加了系统的本地自治度。分布式数据库必须解决一个重要问题是,保持所有拷贝的同步更新。当同一表的多个拷贝存在时,访问这些分布数据的用户应该不会察觉这些副本的位置。否则,用户必须依靠系统当前的位置和当前维护的副本的编号进行修改。复制、数据一致性和位位置透明性都是分布式数据库复制数据时要完成的功能。这些功能在原创 2021-03-02 17:16:13 · 750 阅读 · 0 评论 -
分布式技术专题」数据分布(数据重复、数据分配及实现方式)
数据重复数据重复也可称为副本,能提高数据的可用性,最极端的情况是每个场 直均重复配置置整个数据库,建成完全重复的分布式数据库。这时可用性最高,只要有一个场地能工作,整个系统均能工作,同时提交了合局查询的性能。合局查询可能在任何一个场地上提出,当该场地上包含 了服务器软件,刚全局查询可在局部场地上完成。但缺点是更新操作的效果极差,一次更新,为了瓮中捉鳖其各副本的一到处性必须更新每个场地上的副本,使并发控制和必得机制理更加得杂。完全重复的别一个极端是不重复,即每个分片段只存储在现代战争场地上。这时所有的片原创 2021-03-01 17:26:49 · 712 阅读 · 0 评论 -
「分布式技术专题」数据分布(原理、数据分片)
数据分布是分布式数据库的主要特征。实现数据访问的局部化是分布式数据库设计的重要内容。介绍了分布式数据库系统的主要特征及关键技术,重点对关系的分割和分布式数据的访问进行了描述。如:分布式数据库中的数据分布在不同的节点上,有的事务分解成不同节点上的多个局部事务,若某个局部事务不能正常提交,则必须撤销所有其他节点已提交的局部事务。事务的这种性质,官能称为事的原子性。原理数据分布的策略,分布式数据库的每个全局关系可以分为若干个不相关的部分,每一个部分秒为一个片段。片段可以存储在各个场地,这就是分布;片段还允许重原创 2021-03-01 17:25:30 · 692 阅读 · 0 评论 -
分布式技术专题」非独立存储的优势与劣势
分布式数数据库非独立存储采用非独点空间的策略机制。非独站空间是数据空间的一种,可以通过数据空间中的一个属性来描述,会与其他非独占空间的数据空间共用磁盘目录,通过逻辑来隔离,非独占空间会包含多个shard,多个shard可能属于多个数据空间,属于多张表。非独占空间也可称为共享表空间:每一个数据库的所有的表数据,索引文件全部放在一个或多个文件中,默认这个共享表空间的文件路径。原理分布式数据库与他关系型数据库一样,有具体的存储结构、数据和元数据的,作为分布式数据库系统,首先要决定数据的存储模型,即数据是以原创 2021-02-26 16:39:56 · 111 阅读 · 0 评论 -
「分布式技术专题」独立存储的优势与劣势
数据库的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。分布式数数据库独立存储采用独点空间的策略机制。独站空间是数据空间的一种,可以通过数据空间中的一个属性来描述,通常这个空间会在磁盘上有独占的存储目录,与其他空间是物理隔离的,独占空间包含多个shard,所有的shard属于同一个数据空间,属于同一张表。用于满足特定的业务应用场景。原理分布式数据库与其他关系型数据库一样,有具体的存储结构、数据和元数据的,作为分布式数据库系统,原创 2021-02-26 16:38:52 · 183 阅读 · 0 评论 -
「分布式技术专题」基于Gossip协议的去中心服务
概述Gossip 协议可以翻译为流言协议。它是在 1987 年发表在 ACM 上的论文 《Epidemic Algorithms for Replicated Database Maintenance》中被提出的。论文中给 Gossip 协议的定义是一个以流行病传播的方式为基础的计算机点对点通信程序或过程(a procedure or process of computer peer-to-peer communication that is based on the way epidemics spre原创 2021-02-25 16:13:22 · 230 阅读 · 0 评论 -
「分布式技术专题」去中心化服务与中心化服务的优劣
在云计算、大数据等新技术的带动下,越来越多的企业需要对结构化的数据进行查询、分析、处理和更新。同时,随着创新业务的不断增加,业务的复杂及庞大的体量必然会产生错综复杂且规模巨大的结构化数据,这些都必然迫使企业对数据库的需求指向大规模、高可靠、高扩展及高性能。什么是数据去中心化?数据去中心化过程也就是数据拆分的过程。依据服务划分数据,将数据从主体数据剥离出来。为什么需要数据去中心化?规范化数据模型是传统关系型数据库设计的核心,即通过三大范式实现数据的有效存储,并为开发人员提供一整套对数据的操作方式。规范原创 2021-02-25 16:11:40 · 347 阅读 · 0 评论 -
「分布式技术专题」事务基础及特性
事务中的基本概念在数据库中,会将有意义的数据操作进行集中处理,利用数据库进行数据的检索、插入、更新、删除操作, 这里用户的一个连贯的操作,就是事务(transaction)。为了解决多个用户同时访问数据库时不会发生问题,就需要控制这些操作, 也就是通常意义上的并发控制中的上锁(LOCK)操作(乐观并发不上锁的情况不在本文讨论范围内)。上锁的意义在于防止对重要数据的误操作。 比如两笔对同一账户的转账,如果并发操作,可能第二次转账未读取到第一次转账后的结果时, 会造成账户的金额错误。这种情况下,第二次操作原创 2021-02-23 16:19:40 · 134 阅读 · 0 评论 -
「分布式技术专题」并发系列三:乐观并发控制之原型系统(分布式验证)
原型系统——分布式验证Centiman: Elastic, High Performance Optimistic Concurrency Control by Watermarking 2015concurrent8Centiman是一个在云环境基于NoSQL存储层+事务处理层(OCC)实现的具备串行化事务隔离级别的KV系统,由KV存储、事务处理子系统(包括处理结点和验证结点)、全局总控结点及客户端组成。一个事务的完整生命周期分为如下阶段:读取阶段处理结点维护一个本地的已应用事务提交时间戳(原创 2021-02-23 16:18:20 · 269 阅读 · 2 评论 -
「分布式技术专题」并发系列三:乐观并发控制之原型系统(动态调整提交时间戳减少事务中止率)
原型系统——动态调整提交时间戳减少事务中止率MaaT: Effective and scalable coordination of distributedtransactions in the cloud VLDB 2014这篇论文可以称为是为OCC摇旗呐喊的战斗檄文。论文首先提出了事务级云存储系统的概念,有代表性的系统如工业界的Spanner、 学术界的Calvin、开源界的MySQL Cluster。与传统事务级云数据库的区别在于更加透明的数据分区,包括自动化的分区拆分、合并、迁移、负载均衡, 这原创 2021-02-22 14:59:58 · 158 阅读 · 0 评论 -
「分布式技术专题」并发系列三:乐观并发控制之生产系统
以时间轴的方式对不同时期的有代表性的论文(从理论研究、原型系统、 生产系统三个维度分类)进行了梳理,带你简要回顾一下OCC在学术界及工业界的发展历程。生产系统——在验证阶段使用Paxos提交协议发现冲突Megastore: Providing Scalable, Highly Available Storage for Interactive Services CIDR 2011concurrent6Megastore是少有的在内核层实现OCC的生产级分布式数据库系统,在Entity Group的原创 2021-02-22 14:58:40 · 109 阅读 · 0 评论 -
「分布式技术专题」并发系列三:乐观并发控制之原型系统
以时间轴的方式对不同时期的有代表性的论文(从理论研究、原型系统、 生产系统三个维度分类)进行了梳理,带你简要回顾一下OCC在学术界及工业界的发展历程。原型系统——MVCC+OCC+2PCDistributed transaction management in jasmin VLDB 1984这篇论文给出了OCC在分布式系统实现层面的解决方案,系统采用多版本存储,数据对象的粒度为一个页面,事务流程简要描述如下:• 读取阶段选取全局读时间戳,保证读取阶段能够看到一致的数据库视图。对于只读事务,在读取原创 2021-02-20 13:48:03 · 121 阅读 · 0 评论 -
「分布式技术专题」并发系列三:乐观并发控制之理论研究
以时间轴的方式对不同时期的有代表性的论文(从理论研究、原型系统、 生产系统三个维度分类)进行了梳理,带你简要回顾一下OCC在学术界及工业界的发展历程。这里需要先对OCC(Optimistic Concurrency Control)指代的概念做一个说明, 从广义上理解,OCC表示一种乐观并发控制的思想,只在事务提交时对事务是否符合串行化进行验证; 而悲观并发控制(Pessimistic Concurrency Control)会对事务执行过程中的每个操作进行串行化验证。在这一思想的指导下,应用层的乐观锁原创 2021-02-20 13:45:49 · 479 阅读 · 0 评论 -
「分布式技术专题」并发系列二:基于时间的并发控制
与基于加锁的并发控制不同,基于时间戳的并发控制并不试图通过互斥关系来维护可串行化, 而是先提前选择一个串行化顺序,再根据这个顺序来执行事务, 为了建立这个顺序,事务管理器需要对每个事务T进行初始化时分配一个时间戳。时间戳时一种专门用来唯一标识每个事务并将事务排序的标识符。 唯一性、单调性是时间戳的特性,即每个时间戳都是唯一的,事务管理器生成的事务必须单调递增。一种方式是维护一个全局的计数器,但这在分布式系统中是一个比较困难的问题。 还有一种方式是让每个节点根据本地的局部计数器独立分配时间戳。 为了维护唯原创 2021-02-19 17:17:02 · 601 阅读 · 0 评论 -
「分布式技术专题」并发系列一:基于加锁的并发控制
并发控制分类数据库中如果出现了冲突,一般有几种情况。两个操作同时访问了相同的数据库条目, 并且他们中的任意一个是写操作,那么它们就是冲突的。众所周知,读操作是不会相互冲突的,冲突的类型只有两种:读-写(或写-读)和写-写冲突, 并且无论这两个操作是属于相同的事务还是属于不同的事务。直观上,两个操作相冲突表明它们之间的执行顺序很重要,而两个读操作的顺序不重要。从可串行化的角度来看的话,我们只需要处理事务中相互冲突的操作,而不是所有的操作。为了实现并发,需要加入并发控制来避免冲突,一般的分类方式是基于原创 2021-02-19 17:14:42 · 403 阅读 · 0 评论 -
「分布式技术专题」时钟系列二:数据库世界中为什么要有时钟?
时间概念来源于事件发生顺序的最基本概念,如果说事件发生在3点15分,说明它发生在3点15分到3点16分之间。在现实世界里,想知道当前时间好像并不是什么难事,可对于电脑来说,事情却没有那么简单。现代计算机系统中,对于时间流逝的感知和度量,大部分来自石英晶体振荡器。石英晶体振荡器是高精度和高稳定度的振荡器,被广泛应用于彩电、计算机、遥控器等各类振荡电路中,以及通信系统中用于频率发生器、为数据处理设备产生时钟信号和为特定系统提供基准信号。但其并不以绝对恒定的频率震动,所以总会出现频率稍高或稍低的状况,而这转载 2021-02-19 17:04:13 · 213 阅读 · 0 评论 -
「分布式技术专题」时钟系列一:事件的因果和逻辑时钟
随着数据量的上升,传统单机架构存在的瓶颈已不能满足对性能和容量的要求,从而分布式系统变得越来越火热,但另一方面, 分布式也带来了很多相对于单机架构不同的问题。其中一个问题就是多节点的时间同步问题:不同节点上的物理时钟难以同步,导致无法区分在分布式系统中多个节点的事件顺序。早在1978年,Lamport在《Time, Clocks and the Ordering of Events in a Distributed System》中,就提出了逻辑时钟的概念,就是用来解决分布式系统中事件发生的顺序问题。事转载 2021-02-19 17:01:37 · 393 阅读 · 0 评论 -
「分布式技术专题」SQL 解析的 AP/TP 判别
通常SQL语句可以分为分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。但在数据的操作上,可以根据SQL对于IO、CPU、内存等资源的消耗可以分为AP的SQL和TP的SQL。通常情况下单个TP的SQL语句对于资源的消耗是非常的少的。而AP的SQL会消耗量的IO、内存、CPU等资源。过程如下图:ap_tp_decideSQL的判别可以从几个点入手:1)基于规则的判别。SQL语法可以解析为抽象语法解析树,通过观察者模型对语法解析数进行规则分析,提取出SQL转载 2021-02-19 16:56:14 · 3679 阅读 · 0 评论 -
「分布式技术专题」基于代价解析的最优路径规划
CBO代价解析在过去数据库主要使用基于规则的优化器(RBO),基于规则将SQL解析生成的关系表达式进行等价交换,形成更优的方案,例如,有一个多表查询SQLselect a.c_id,sum(c.price) from a,b,c where a.c_id=c.c_id and c.o_id=b.o_id group by a.c_id order by sum(c.price) desc;如果直接解析,将会把a,b,c查询的一部分创建为CROSS JOINS,再创建FILTER。再未优化的情况下,CR转载 2021-02-19 16:53:32 · 119 阅读 · 0 评论 -
「分布式技术专题」数据库常见的JOIN算法
mysql支持的join算法• Nested Loop Join• Index Nested-Loop Join• Block Nested-Loop JoinIndex Nested-Loop Join 和 Block Nested-Loop Join是在Nested-Loop Join基础上做了优化。Nested Loop JoinNested-Loop Join的思想就是通过双层循环比较数据来获得结果; 其中左表为外循环,右表为内循环,左表为驱动表。其实现逻辑简单粗暴,可以理解为两层for转载 2021-02-19 16:26:50 · 180 阅读 · 0 评论 -
「分布式技术专题」两种向量化执行引擎的实现方法
向量化执行引擎在三种常见的数据库查询引擎执行模型中我们讲到了向量化执行引擎本质上是一种批处理模型。批处理思想在计算机的世界里经常闪闪发光。高并发场景中,可以把大量的请求合并,改为调用批量接口;大数据下读取分布式文件系统时,如果要读取大量的小文件,可以将这些小文件打成tar包,或者批量一次打开100~500个文件;数据库插入数据时,修改单条插入为批量插入等。批处理减少了cpu的中断次数,可以更加合理的利用资源。在向量化执行引擎模型中,列式存储占据着天然的优势:1、压缩能力的提升。同一列的数据类型相同,压转载 2021-02-19 16:16:55 · 394 阅读 · 0 评论 -
「分布式技术专题」三种常见的数据库查询引擎执行模型
一、迭代模型/火山模型(Iterator Model)二、物化模型(Materialization Model)三、向量化/批处理模型(Vectorized / Batch Model)原创 2021-02-07 14:14:08 · 456 阅读 · 0 评论 -
「分布式技术专题」SQL优化的前置条件和优化技巧分享
SQL优化是数据库优化的一部分,数据库优化又是系统优化的一部分。本篇着重讲解SQL优化的一些技巧,另外,硬件基础、业务类型、存储结构也是影响SQL执行效率的重要因素,是SQL优化的前置条件。原创 2021-02-07 11:24:17 · 234 阅读 · 0 评论 -
「分布式技术专题」常用的SQL算子介绍
SQL查询的执行过程,就像工厂的加工流水线,层层递进,最终得到想要的结果,而SQL算子就好比其中的一道道工序。原创 2021-02-05 14:08:49 · 380 阅读 · 0 评论 -
「分布式技术专题」剖析一个SQL的解析及执行过程
无所不能的程序猿吐出一句魔法[SQL],刹那间,IO 犹如千军万马奔流不息,内存 似鲸吸牛饮,海纳百川,CPU 更是狂暴着以360%负荷高速运转,瞬间,一个美妙的身影出现了……原创 2021-02-05 11:05:03 · 288 阅读 · 0 评论