特性描述
伸缩性
分布式存储打破数据库数据的上限
分布式存储,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式存储采用可扩展结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
分布式存储提升数据访问性能
磁盘的I/O一直是数据库产品的软肋(这里提及的磁盘是HDD、SSD),尤其当数据增加到TB甚至PB级别之后,这种I/O的延迟将变得更为明显。分布式系统将数据访问分散在不同的数据服务节点上,其效果是多个硬盘的同时读写操作(并发处理),该方式将传统数据库的磁盘I/O的压力转化为网络I/O,从而提升整体性能。
高可用性
分布式存储集群和容错
UXDB是将数据处理(数据库引擎)和数据存储(分布式存储)分离的数据库系统,数据库引擎不再参与数据的复制(replication),该工作将由分布式存储接管,UXDB的分布式存储系统支持:无复制(none replication)、读复制(read only replication)和读写复制(read-write replication)。当启动了复制功能后,同一份数据会分别存储在不同的数据内容服务节点上(缺省为3份replication的副本),当集群中任何一台数据内容服务结点失败时,分布式存储都将能够提供完整的数据,这将不会影响数据库引擎的正常工作。
此外,分布式存储还包括DIR-目录服务器、元数据和复制服务器,这两种服务器均支持Hot-Standby的集群。
数据库引擎的Hot-Standby集群
数据库引擎支持Hot-Standby集群方式,该方式是通过以流方式实时复制WAL(write、head log)实现的。
流复制传递日志的方式有两种,一种是异步方式,一种是同步方式。异步方式是事务提交后不必等日志传递到Standby即可返回,所以Standby数据库通常比Primary数据库落后很少;同步方式在Primary数据库提交事务时,一定会等到WAL日志传递到Standby后才会返回,这样当主备库切换时可以做到零数据丢失。
数据一致性
支持ACID
ACID是指数据库事务正确执行的四个基本要素的缩写,包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。UXDB支持事务的这四种特性,可以使开发人员的开发工作得到最大限度的简化,不必考虑过于复杂的并发问题,有易于保证程序在并发状态下的正确性。
MVCC
MVCC(Multiversion Concurrency Control)即多版本并发控制,它可以避免读写事务之间的互相阻塞,与通常的封锁技术相比极大的提高了业务的并发性能。
WAL (Write-Ahead Log)
当系统意外宕机后,恢复时需要回退未完成事务所做的更改,并确保已提交事务所作的更改均已生效。
支持多租户
基于数据库的多租户
UXDB支持基于数据库的多租户,采用该种方式的多租户使得数据库的隔离较为彻底,从认证层面就开始隔离,数据库与数据库之间无法直接访问,必须登陆到对方的数据库中才能访问记录。
同时,UXDB支持进一步的通过预先配置的方式进行来源IP控制,即只允许某些IP白名单中的IP访问数据库。
基于SCHEMA的多租户
UXDB支持基于SCHEMA的多租户方式,该方式是单库多SCHEMA的方式,通过UXDB的权限体系进行隔离用户,访问不同的SCHEMA。
基于数据和访问的多租户
除了上述两种传统的方式之外,UXDB还可提供第三种基于数据和访问的多租户模式,该方式是在同一个数据库,同一个SCHEMA下,针对每个用户建立一个不同的角色,对需要进行隔离的数据库表,设置针对角色和操作的行级数据访问控制(参见“(5)安全性-行级数据访问控制”)来达到多个用户在同一个数据库中的数据访问和操作范围的控制和隔离。
安全性
全数据库级别加密
UXDB支持全数据库级别数据加密,即数据在持久化到分布式存储之前就进行了数据加密。
列数据加密
UXDB支持对关键表的关键列进行加密设置,该设置将在该列数据持久化到分布式存储之前就进行了数据加密。
表级访问控制
UXDB支持基于用户级别的对象访问控制。
行级数据访问控制
UXDB支持对行级数据的访问授权,这是一种基于用户的访问控制,用来根据用户权限来进行数据访问的控制。
通信信道加密
UXDB支持全程通信信道的加密,全程通信信道指的是从客户端到数据库处理引擎,数据库处理引擎到分布式存储的所有通信信道。
基于会话的访问隔离
UXDB采用多进程的方式处理请求,这确保了每个连接会话都将由一个独立的UXDB服务进程来处理。
内置数据库审计
UXDB提供可定制的基于会话和操作的数据库审计功能,实时记录数据库活动,对数据库操作进行细粒度审计(谁在什么时候做了什么以及结果)。它通过对用户访问数据库行为的记录、分析和汇报,用来帮助用户事后生成合规报告、事故追根溯源,同时加强内外部数据库网络行为记录,提高数据资产安全。
二次开发和扩展
UXDB是基于扩展设计的云数据库系统,该系统提供了针对扩展外部数据源和自定义数据处理的二次开发和扩展的框架。