分布式数据库DDB

通过中间件的形式为前台提供一台虚拟的数据库服务器,而中间件在后台实际管理着多个数据库节点,允许将单张表分布到不同的数据库节点上进行性能均衡。

总体架构:
master管理服务器,提供资源分配,负载统计等总多功能;

DBN(database node)数据库节点服务器;

DBI(database interface)数据库访问接口,部署在客户机上,以jar包的形式提供给应用程序使用,提供查询处理功能,隐藏了数据访问的复杂性;

数据的分区和负载均衡:

数据的水平分区方式:hash分区;

系统采用hash表和映射表两级映射的方式实现:首先根据一个固定的hash算法和特定的字段值将表中的每条记录映射到一个hash桶上,然后使用一个动态可调的map将多个hash桶映射到一个存储节点上,这个计算hash值的字段称为均衡字段。

两级映射方案,消除了直接使用hash表无法调整和直接使用map映射占用空间过大的缺点,扩充后端节点时,仅需要修改map映射就能完成迁移;同类数据之间宜采用相同的分区或者均衡策略(均衡字段和hash算法),在进行负载均衡调整时以桶为单位进行统一处理。

数据库表均衡字段的选择:

1. 对于表中字段a,当且仅当访问这个表时经常指定a上的等值条件时,字段a才是一个好的均衡字段候选人;

2. 当依据规则一产生多个候选均衡字段时,倾向于用distinct值比较多的那个;

如student(name,dept专业,age...)访问这张表总是指定name和dept的等值条件,则选择name;

3. 当多个表需要使用相同的均衡策略时,表的均衡字段选取要统一考虑;

4. 表之间存在外键的引用关系时,最好使用同一个均衡策略;

分布式查询:
分布式数据库中间件需要提供透明的数据访问接口,在中间件中采用了分布式查询处理技术实现了这种透明的sql语句执行功能:系统解析输入的sql语句,根据查询条件访问map存储映射表,得到需要访问的后台存储节点,并生成查询计划。查询计划包括对各个存储节点的查询以及对多个节点返回结果的进一步处理。

原文地址:http://blog.51cto.com/13580976/2103500

时间: 2024-10-13 05:41:13

分布式数据库DDB的相关文章

DBA 分布式数据库复习总结

tag:DDB,分布式数据库,复习要点 [第一次自己总结,又想起大学考政治的时候为大家总结要点的同学们,辛苦辛苦......如今我已经自力更生了,哈哈] 第一章 1.   分布式数据库的定义(P4) 物理上分散而逻辑上集中的系统,它使用计算机网络将地理位置分散而管理和控制又需要不同程度集中的多个逻辑单位(通常是集中式数据库系统)连接起来,共同组成一个统一的数据库系统.分布式数据库系统可以看成是计算机网络和数据库系统的有机结合. 2.   分布式数据库的两种分类方法(P7) l  按局部DBMS的

云时代的分布式数据库:阿里分布式数据库服务DRDS

[http://www.csdn.net/article/2015-07-15/2825221] 云时代的分布式数据库:阿里分布式数据库服务DRDS -- 伴随着系统性能.成本及扩展性的新时代需要,以HBase.MongoDB为代表的NoSQL数据库和以阿里DRDS.VoltDB.ScaleBase为代表的分布式NewSQL数据库如雨后春笋般不断涌现出来.本文详细介绍了阿里分布式数据库服务DRDS.

Mysql分布式数据库变更自动化部署

Author:skate Time:2015/03/05 MySQL数据库变更自动部署 概述: 这个Mysql数据库发布程序,可以自动.快速.并发的发布数据变更并记录结果.把部署内容从部署server传输到所有部署database并执行部署内容. 本程序主要用于分布式数据库部署,比如把一个部署脚本需要同时部署到多台database上. 测试环境: deploydb: [[email protected] skate]# ll autodeploy total 36 -rw-r--r-- 1 ro

分布式数据库中间件–(3) Cobar对简单select命令的处理过程

友情提示:非原文链接可能会影响您的阅读体验,欢迎查看原文.(http://blog.geekcome.com) 原文地址:http://blog.geekcome.com/archives/284 在上一篇中介绍了Cobar和client初次建立连接的过程,Cobar监听端口,client发起连接请求,Cobar发送握手数据包,client发送认证数据包最后依据认证的结果Cobar向client发送认证结果. 在认证成功后Cobar会将该连接的回调处理函数由FrontendAuthenticat

探析大数据需求下的分布式数据库

一.前言 大数据技术从诞生到现在,已经经历了十几个年头.市场上早已不断有公司或机构,给广大金融从业者"洗脑"大数据未来的美好前景与趋势.随着用户对大数据理念与技术的不断深入了解,人们已经开始从理论探索转向对场景落地的寻找,让大数据在企业中落地并开花结果. 从大数据的管理和应用方向集中在两个领域.第一,大数据分析相关,针对海量数据的挖掘.复杂的分析计算:第二,在线数据操作,包括传统交易型操作以及海量数据的实时访问.大数据高并发查询操作.用户根据业务场景以及对数据处理结果的期望选择不同的大

分布式数据库集群中间件

我是一个分布式数据库集群中间件的开发人员,已经一年多一点的开发时间了,今天总结点我所知道的一些事情,给有新近来到这个领域的研发人员一点借鉴. 生活不易,赚钱不易,离开仅仅是为多赚点钱. ----学渣 我仅仅是说我所开发过的系统: 后面文章会有具体的分析.这里仅仅做简单的梳理.也就是你要研发分布式数据库集群中间件.须要向着哪些方面去思考. 首先我们从名字去分析我们正在从事的工作内容: 1. 分布式 须要考虑它的方向(后面具体说明) a)  分布式中的概念 b)  分布式的模型 c)  分布式系统特

SQL Server 创建水平分布式数据库尝试

创建水平分布式数据库,需要分两步实现:划分子集和对子集进行并集操作.分布式数据库的优势是:IO分散,便于快速读取数据,劣势是消耗大量的网络带宽资源. 划分子集是将原始表水平切分成若干个较小的成员表,每一个成员表都是全集的一个划分(各子集的并集是全集,其交集是空集).每个成员表包含与原始表相同数量的列,并且每一列具有与原始表中的相应列同样的特性(如数据类型.大小.排序规则),水平切分原始表,也叫做数据库水平分片,sharding.在查询时,为了实现SQLServer内部水平分片对用户透明,必须利用

大型分布式数据库集群的研究

1.为什么要设计成分布式数据库,数据为什么要分区? 当数据量很大的时候,即使服务器在没有任何压力的情况下,某些复杂的查询操作都会非常缓慢,影响了最终用户的体验. 在大数据量下对数据库的装载与导出,备份与恢复,结构的调整,索引的调整等都会让数据库停止服务或者高负荷运转很长时间,影响了数据库的可用性和可管理性. 这个时候靠提升服务器的硬件配置是起不到作用的,只有靠分区把数据分成更小的部分才能提高数据库的可用性和可管理性. 通过分区把各部分数据放到不同的机器中,每次查询可以由多个机器上的CPU,I/O

分布式数据库服务器的四层架构

分布式数据库服务器的四层架构: 访问层:接收访问信息并按负荷智能的分配给中转服务器,接受数据结果并返回客户端. 中转层:接收访问服务器发来的数据访问指令,从总储存服务器寻找数据分布所在的储存服务器,发送指令. 表头层:储存数据的表头信息,以确定储存服务器位置. 处理层:分布式数据储存服务器,接收指令并执行,然后返回数据给访问服务器. 功能分布: 访问服务器只做四件事:接收客户端的访问数据,接收中转服务器的负荷状态信息,并且把数据分配给负荷最低 的中转服务器,接收结果后返回客户端. 中转服务器只做