高可靠事务处理
openGauss提供事务管理功能,保证事务的ACID特性。
为了在主节点出现故障时尽可能地不中断服务,openGauss提供了主备双机高可靠机制。通过保护关键用户程序对外不间断提供服务,把因为硬件、软件和人为造成的故障对业务的影响程度降到最低,以保证业务的持续性。
故障恢复
支持节点故障可恢复及恢复后满足ACID特性。节点故障、停止后重启等情况下,openGauss能够保证故障之前的数据无丢失,满足ACID特性。
事务管理
- 支持事务块,用户可以通过start transaction命令显式启动一个事务块。
- 支持单语句事务,用户不显式启动事务,则单条语句就是一个事务。
高并发&高性能
openGauss通过服务器端的线程池,可以支持1W并发连接。通过NUMA化内核数据结构,支持线程亲核性处理,可以支持百万级tpmC。通过页面的高效冷热淘汰,支持T级别大内存缓冲区管理。通过CSN快照,去除快照瓶颈,实现多版本访问,读写互不阻塞。通过增量检查点,避免全页写导致的性能波动,实现业务性能平稳运行。
SQL自诊断
通过执行查询对应的explain performance,获得对应执行计划,是一种十分有效的定位查询性能问题的方法。但是这种方法需要修改业务逻辑,同时输出的日志量大,问题定位的效率依赖于人员的经验。SQL自诊断为用户提供了另一种更为高效易用的性能问题定位方法。
在执行作业之前,配置GUC参数resource_track_level和resource_track_cost,然后运行用户作业,就可以通过查看相关系统视图,获得执行完成的相关查询作业可能存在的性能问题。系统视图中会给出导致性能问题的可能原因,根据这些“性能告警”,参考《性能优化指南》中“SQL调优指南 > 典型SQL调优点 > SQL自诊断”章节,就可以对存在性能问题的作业进行调优。
SQL自诊断可以在不影响用户作业,不修改业务逻辑的情况下,诊断出相对准确的性能问题,为用户提供更为易用的性能调优参考。
全密态数据库等值查询
伴随着云基础设施的快速增长和成熟,与之对应的云数据库服务也层出不穷。云数据库俨然已成为数据库业务未来重要的增长点,绝大多数的传统数据库服务厂商正在加速提供更优质的云数据库服务。但无论是传统的线下数据库服务,还是日益增长的云数据库服务,数据库的核心任务都是帮助用户存储和管理数据,在复杂多样的环境下,保证数据不丢失、隐私不泄露、数据不被篡改,同时服务不中断。这就要求数据库具有多层次的安全防御机制,用来抵抗来自多方面的恶意攻击行为。通过成熟的安全技术手段,构建数据库多层级安全防御体系,保障数据库在应用中的安全。因此,为了更好的保护敏感和隐私数据,特别是针对云数据库服务,急需一种能在服务器端彻底解决数据全生命周期隐私保护的系统性解决方案,该方案被称为密态数据库解决方案。
-
密态数据库总体方案
密态等值查询属于密态数据库第一阶段方案,但是遵从密态数据库总体架构。密态数据库的总体架构示意图如图5所示。密态数据库的完整形态包括密码学方案和软硬结合方案。
-
从总体流程上来看,数据在客户端完成加密,以密文形式发送到openGauss数据库服务侧,即需要在客户端构建加解密模块。加解密模块依赖密钥管理模块,密钥管理模块生成根密钥(RK, Root Key)和客户端主密钥(CMK,Client Master Key)。有了CMK,可以通过SQL语法定义列加密密钥(CEK,Column Encryption Key),CMK由RK加密后保存在密钥存储文件(KSF,Key Store File)中,CMK和RK由KeyTool统一管理;CEK则由CMK加密后存储在服务端(加密算法使用对称加密算法AES256)和国密算法SM2。
客户端依据生成的CEK来对数据进行加密,数据加密算法主要使用对称加密算法AES算法(包括AES128和AES256)和国密算法SM4。加密后的数据会存放在数据库服务端,经过密文运算后服务端返回密文结果集,并在客户端完成最后的解密,获取最终结果。
用户根据业务需要对数据定义加密属性信息(被加密的列被称之为加密列),对于不需要加密的数据则按照原有明文格式发送至服务端。当查询任务发起后,客户端需要对当前的Query进行解析,如果查询语句中涉及加密列,则对对应的列参数(加密列关联参数)也要进行加密(这里说的加密均需要为确定性加密,否则无法支持对应的查询);如果查询语句中不涉及加密列,则直接发送至服务端,无需额外的操作。
在数据库服务侧,加密列的数据始终以密文形态存在,整个查询也在密文形态下实现。对于第一阶段密态等值查询解决方案,需要采用确定性加密,使得相同的明文数据获得相同的密文,从而支持等值计算。
-
密态数据库数据流图
-
从该数据流图中可以看出,密态数据库允许客户端对客户端应用程序内的敏感数据进行加密。在查询期间,整个业务数据流在数据处理过程中都是以密文形态存在。优势如下:
- 保护数据在云上全生命周期的隐私安全;
- 通过将密钥掌握在用户自己手上,实现公有云、消费者云以及开发用户的用户信任问题;
- 让云数据库借助全密态能力更好的遵守个人隐私保护方面的法律法规。
-
使用场景
混合云场景:数据库客户端和数据库服务端均部署于用户私有网络,客户端采用华为管控界面。
公有云场景:数据库客户端在用户本地,数据库服务端在华为云。
公有云服务:数据库客户端和数据库服务端均在华为云。