1. 原理概述
UXDB 是一种将数据处理和存储分离的混合式的数据库架构,既可以满足 OLTP 的高
并发、高可用性特点,又可以满足 OLAP 的大数据处理要求。
UXDB 避免传统 RDBMS 数据库将处理和数据捆绑在一起的架构所带来扩展性不足和
性能随数据量的增大而线性衰减的问题。UXDB 的这种设计将磁盘 I/O 的瓶颈转化为
网络 I/O。将传统数据库操作流程中的磁盘 I/O 串行化转化为并行化,而无需事先规划
数据规模和存储大小。
UXDB 数据处理端负责执行的数据处理并保证 ACID 和 MVCC。存储端采用分布式存
储,采用 Paxos 算法保证数据的强一致性、采用多副本的方式实现容错和自我恢复、
自动支持新增数据节点和存储节点的动态再平衡。
2. 产品逻辑结构图

图1 产品逻辑结构图
UXDB 逻辑上可以分为 SQL 客户端,NoSQL 引擎以及分布式数据存储。客户总是通
过 UXDB 提供的接入方式连接到 UXDB 的 SQL 客户端,使用 SQL 操作 UXDB 数据
库。而无需关心数据的来源和具体存储位置。
3. 产品工作流程图

图2 产品工作流程
UXDB 内部采用共享内存的方式在为同时在线的多个客户进程提供服务,共享内存中
的数据通过后台服务进程组与分布式存储交互来进行数据的读和写。分布式存储是将
数据分片并存储到多个数据节点上,因此,当 UXDB 的数据处理引擎需要数据的时
候,将并发调用多个数据存储节点获取数据。
一个典型的流程是当客户应用发起 SQL 请求到 UXDB,UXDB 内部会根据每个客户的
连接建立一个单独的进程(会话隔离)负责此次登陆的操作请求。
- 处理读操作请求的时候,首先需要检查本地共享内存中是否有需要的数据,并且是否完整,如果是,则立刻响应;否则驱动后台服务进程从分布式存储中获取数据再返回客户。
- 处理写操作请求的时候,首先更新本地共享内存并记录在 WAL 日志里,调用后台服务进程将数据写入分布式存储系统然后返回给客户。
本文节选至《优炫数据库 UXDB 技术白皮书》,前往查看更多内容。
最后修改时间:2019-12-25 15:37:04
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




