初步了解SequoiaDB巨杉数据库-程序员宅基地

技术标签: postgresql  sequoiadb  数据库  

 1.SequoiaDB 简介
 2.整体架构
3.数据库存储引擎
4.核心特性

SequoiaDB 简介

SequoiaDB 巨杉数据库是一款金融级分布式数据库,主要面对高并发实时处理型场景提供高性能、可靠稳定以及无限水平扩展的数据库服务。

用户可以在 SequoiaDB 巨杉数据库中创建多种类型的数据库实例,以满足上层不同应用程序各自的需求。

SequoiaDB 巨杉数据库支持 MySQL、MariaDB、PostgreSQL 和 SparkSQL 四种关系型数据库实例、JSON 文档类数据库实例、以及 S3 对象存储的非结构化数据实例。

整体架构

SequoiaDB 巨杉数据库作为分布式数据库,由数据库存储引擎与数据库实例两大模块构成。

其中,数据库存储引擎模块是数据存储的核心,负责提供整个数据库的读写服务、数据的高可用与容灾、ACID 与分布式事务等全部核心数据服务。

数据库实例模块则作为协议与语法的适配层,用户可根据需要创建包括 MySQL、MariaDB、PostgreSQL 与 SparkSQL 在内的结构化数据实例;以及 JSON 和 S3 对象存储的非结构化实例。

通过使用 SequoiaDB 巨杉数据库,用户可以通过创建不同类型的数据库实例,使应用程序从传统数据库进行无缝迁移,大幅度降低应用程序开发者的学习成本。

 

数据库存储引擎

SequoiaDB 巨杉数据库存储引擎采用分布式架构。集群中的每个节点为一个独立进程,节点之间采用 TCP/IP 协议进行通讯。

同一个操作系统可以部署多个节点,节点之间采用不同的端口进行区分。

SequoiaDB 巨杉数据库的节点分为三种不同的角色:协调节点、编目节点与数据节点。

 

协调节点
协调节点不存储任何用户数据。作为外部访问的接入与请求分发节点,协调节点将用户请求分发至相应的数据节点,最终合并数据节点的结果应答对外进行响应。

编目节点
编目节点主要存储系统的节点信息、用户信息、分区信息以及对象定义等元数据。在特定操作下,协调节点与数据节点均会向编目节点请求元数据信息,以感知数据的分布规律和校验请求的正确性。

数据节点
数据节点为用户数据的物理存储节点,海量数据通过分片切分的方式被分散至不同的数据节点。在关系型与 JSON 数据库实例中,每一条记录会被完整地存放在其中一个或多个数据节点中;而在对象存储实例中,每一个文件将会依据数据页大小被拆分成多个数据块,并被分散至不同的数据节点进行存放。

核心特性

弹性水平扩展
作为一款分布式数据库,支持无限弹性水平扩展是 SequoiaDB 巨杉数据库的基本特性,其底层的分布式存储引擎与上层的数据库实例均支持无限弹性水平扩展能力。

SequoiaDB 巨杉数据库的数据库实例均无状态并使用 TCP/IP 协议对外提供服务。为了提升整体处理能力,用户可以通过增加服务器数量或创建额外的数据库实例实现对应用的水平弹性扩张。

高可用与容灾
由于 PC 服务器内置物理磁盘不同于传统小型机加存储设备的架构,在 PC 服务器出现物理故障时无法保障存储在本地磁盘的数据不丢不坏,因此所有基于 PC 服务器内置盘架构的数据库,必须采用多副本机制以保障数据库的高可用与容灾。

分布式事务
SequoiaDB 巨杉数据库支持强一致分布式事务功能。利用二段提交机制,SequoiaDB 巨杉数据库在分布式存储引擎实现了对结构化与半结构化数据的强一致分布式事务功能,不论用户创建哪种数据库实例,其底层均可提供完整的分布式事务及锁能力。

SequoiaDB 巨杉数据库完整支持四种隔离级别,同时支持读写锁等待以及读已提交版本机制。

多模式接口
SequoiaDB 巨杉数据库通过数据库实例的形式提供多种关系型以及非关系型数据库兼容引擎,支持结构化、半结构化以及非结构化数据。在当前版本中,SequoiaDB 巨杉数据库支持包括 MySQL、MariaDB、PostgreSQL 以及 SparkSQL 在内的四种关系型数据库引擎,同时支持 JSON API 的半结构化数据引擎,以及 S3 对象存储的非结构化数据引擎。

使用多模式接口机制,用户可以使用 SequoiaDB 巨杉数据库服务于任何类型的应用程序,真正做到分布式数据库的平台化服务。

多租户隔离
对于分布式数据库来说,其存在的价值不仅仅在于解决单点数据量大的问题。更是在应用程序微服务化的今天,分布式数据库需要以一种平台化(PaaS)的形式对上层大量的应用与微服务同时提供数据访问能力。在这种情况下,如何做到不同微服务之间所对应的底层数据逻辑与物理隔离,是保障云环境中分布式数据库安全、可靠和性能稳定的前提。

在 SequoiaDB 巨杉数据库中,数据域可以用于复杂集群环境中对资源进行逻辑与物理划分隔离。例如,在极为重要的实时处理型账务类应用中,其物理资源往往需要与审计后督类业务完全隔离,以保障在任何情况下审计类业务的复杂压力不会影响到核心账务系统的稳定运行。同样,不同的数据域之间的数据安全性配置、硬件资源环境等往往也不尽相同。

通过包括数据域、多模式接口、水平弹性扩展在内的多种机制,SequoiaDB 巨杉数据库能够保障应用程序在云环境下的多租户隔离。
 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_57644230/article/details/130355352

智能推荐

异常的捕获和处理-程序员宅基地

文章浏览阅读3k次。异常的处理

ASP.NET Core微服务实战系列-程序员宅基地

文章浏览阅读510次。ASP.NET Core微服务实战系列 原文:ASP.NET Core微服务实战系列  希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注。前言  这里记录的是个人奋斗和成长的地方,该篇只是一个系列目录和构想,并没有完全真正开弓。之所以有这个题目,是..._微服务 asp.net core

Hyperion高光谱数据预处理_pie软件 hyperion数据-程序员宅基地

文章浏览阅读1.6w次,点赞20次,收藏87次。Hyperion高光谱数据——影像获取+预处理最近在用Hyperion做植被分类,利用高光谱的优势,应该能得到比Landsat精度更高的结果。按照以下几项对数据准备工作总结:Hyperion数据的免费下载影像预处理的必要性利用ENVI补丁Workshop进行处理——对出现的bug进行修改最小噪声变换(MNF)改进锯齿现象Firstly–Download the Image主要在美国地质勘探_pie软件 hyperion数据

vs2010 语法错误: 缺少“;”(在标识符“PVOID64”的前面)-程序员宅基地

文章浏览阅读1.6k次。网上有很多答案,看了让人不知道在说什么,一个行之有效的解决方案是在“stdafx.h”中添加#define POINTER_64 __ptr64。已验证有效。缺点是每生成一个新项目,都要添加一次。_vs2010 语法错误: 缺少“;”(在标识符“pvoid64”的前面)

leetcode sql题目_leedcode sql-程序员宅基地

文章浏览阅读392次。1 # Write your MySQL query statement belowselect max(salary) as SecondHighestSalary from Employee where salary not in (select max(salary) from Employee )Write a SQL query to get the second hig_leedcode sql

嵌入式软件工程师笔试面试指南-ARM体系与架构_嵌入式工程师笔试面试指南-程序员宅基地

文章浏览阅读1.1w次,点赞74次,收藏324次。嵌入式软件笔试,嵌入式软件面试,程序员简历书写,Linux驱动工程师笔试,Linux驱动工程师面试,BSP工程师笔试,BSP工程师面试,应届生秋招,应届生春招,C/C++笔试题目,C/C++面试题目,C/C++程序员,BSP工程师_嵌入式工程师笔试面试指南

随便推点

Chapter4 The Relational Model_order pairs and cartesian product-程序员宅基地

文章浏览阅读756次。Chapter4 The Relational Model4.2TerminologyAn relational model is based on the mathematical concept of a relation,whichis phycisally represented as a table.4.2.1Relational Data Structurewe d_order pairs and cartesian product

java检查手机号是否被注册_【java】如何开发一个检测手机号注册过哪些网站的应用?...-程序员宅基地

文章浏览阅读707次。问题描述使用python或其它语言开发一个检测手机号注册过哪些网站的应用问题出现的环境背景及自己尝试过哪些方法在登陆一个很久没使用的网站时,原注册的手机号已弃用无法找回密码。所以希望有这么一款应用,能够在我输入手机号时列出注册过的网站,方便更换注册账号用的手机号目前的思路是,使用爬虫爬到网站中忘记密码的页面,然后输入手机号。这么做有几个问题:爬取忘记密码页面的通用规则该用什么思路去写关于验证码,我..._java 导入验证手机号是否注册某个网站

Android 插件化-程序员宅基地

文章浏览阅读3.3k次。1.插件化插件可以理解为免安装的Apk,而支持插件的app称为宿主。在Android系统中,应用是以Apk的形式存在的,应用都需要安装才能使用。实际上Android系统安装应用的方式相当简单,就是把应用Apk拷贝到系统不同的目录下,然后把so解压出来而已。常见的应用安装目录有:/system/app:系统应用/system/priv-app:系统应用/data/app:用户应用一个Apk会包含如下几个部分:classes.dex:Java代码字节码res:资源文件._android 插件化

最新阿里内推 Java 后端面试题_索引会不会使插入、删除作效率变低,怎么解决?-程序员宅基地

文章浏览阅读80次。【这里想说,因为自己也走了很多弯路过来的,所以才下定决心整理,收集过程虽不易,但想到能帮助到一部分想成为Java架构师或者是想职业提升P6-P7-P8的人,心里也是甜的!有需要的伙伴请点㊦方】↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓。数据库隔离级别,每层级别分别用什么方法实现,三级封锁协议,共享锁排它锁,mvcc 多版本并发控制协议,间隙锁。数据库表怎么设计的?_索引会不会使插入、删除作效率变低,怎么解决?

Redis实现延迟队列方法介绍-程序员宅基地

文章浏览阅读3.3k次。其中,延迟队列是 Redis 的一个重要应用场景,它被广泛应用于异步任务的调度、消息队列的实现以及秒杀、抢购等高并发场景的处理。在实现延迟队列时,我们可以使用 Redis 的有序集合来保存待执行的任务,其中元素的分值表示任务的执行时间,元素的值表示任务的内容。使用 ZADD 命令将任务添加到有序集合中,将任务的执行时间作为元素的分值,将任务的内容作为元素的值。使用 ZADD 命令将任务添加到有序集合中,将任务的执行时间作为元素的分值,将任务的内容作为元素的值。一、Redis 有序集合实现延迟队列。

Python入门实战:Python的文件操作-程序员宅基地

文章浏览阅读701次,点赞23次,收藏7次。1.背景介绍Python是一种强大的编程语言,它具有简洁的语法和易于学习。Python的文件操作是一种常用的编程技术,可以让程序员更方便地读取和写入文件。在本文中,我们将深入探讨Python的文件操作,涵盖了核心概念、算法原理、具体操作步骤、数学模型公式、代码实例以及未来发展趋势。1.1 Python的文件操作背景Python的文件操作是一种基本的编程技能,它允许程序员在程序中读取和写...