巨杉数据库SequoiaDB初探

巨杉数据库SequoiaDB

官网: http://www.sequoiadb.com

简介:国产分布式关系型数据库,自研的原生分布式存储引擎支持完整 ACID,具备弹性扩展、高并发和高可用特性,支持 MySQL、PostgreSQL 和 SparkSQL 等多种 SQL 访问形式

SequoiaDB 3.0实现了100%的MySQL协议级兼容:

  • 全面兼容:全面支持MySQL协议与语法,用户可以直接使用MySQL客户端或任何管理、开发与监控工具对数据库进行操作;
  • MySQL语法:由于使用了MySQL原生的解析器,SequoiaDB 3.0 能够实现100%的MySQL语法兼容,支持语法包括基础CRUD操作,多表关联,跨节点事务操作,创建视图,存储过程,索引和访问计划等。
  • 无缝切换: 对于任何已有应用程序,SequoiaDB 3.0提供全面的MySQL兼容,几乎无需应用程序代码调整,即可无缝切换;
  • 分布式弹性扩展:通过SequoiaDB存储引擎原生分布式架构,数据库在兼容MySQL同时,无需“分库分表”,分布式存储引擎直接提供弹性容量扩展能力,可以上百倍提升应用程序的存储空间与访问性能;
  • 表多维分区:通过存储-SQL分离架构,用户访问MySQL也可以实现表的多维分区,提升应用的灵活性。

安装

在官网下载的安装压缩包,解压后发现有一下几个文件:

1
2
3
4
5
sequoiadb-3.2-linux_x86_64-installer.run
sequoiasql-mysql-3.2-linux_x86_64-installer.run
sequoiasql-postgresql-3.2-x86_64-installer.run
readme.txt
setup.sh

ReadME.txt中的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
sequoiadb-3.2-linux_x86_64-installer.run

一.简介:SequoiaDB是一款金融级分布式数据库,SequoiaDB3.0 主要提供:
分布式NewSQL--- 支撑分布式架构的核心交易系统
分布式对象存储--- 海量结构化、非结构化和半结构化数据统一管理
分布式NoSQL--- 高性能、高并发数据访问

二.使用:
所有的主机都安装了 SequoiaDB 后,用户可以根据自身的情况(可参考规划数据库部署),选择部署单机模式或者集群模式的环境。
1.安装包常用参数:
mode: 安装模式,默认是gtk图形界面安装
prefix: 安装路径,默认是/opt/sequoiadb
SMS: 是否安装om,默认不安装,只支持true或者false
更多参数及取值参考--help,详细步骤可查看http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1432191000-edition_id-302,安装完成后添加集群管理服务sdbcm


sequoiasql-postgresql-3.2-x86_64-installer.run

一.简介:SequoiaSQL 是 SequoiaDB 的 一种 SQL 引擎,支持标准 SQL 2003 语法,完全兼容 PostgreSQL 语法。用户可以使用 SQL 语句访问 SequoiaDB 数据库,完成对 SequoiaDB 数据库的增、删、查、改操作。用户可以通过 JDBC 驱动连接 SequoiaSQL 进行应用程序开发。

二.使用:
1.安装包常用参数:
mode: 安装模式,默认是gtk图形界面安装
prefix: 安装路径,默认是/opt/sequoiasql/postgresql
更多参数及取值参考--help,详细步骤可查看http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1519628019-edition_id-302
安装完成后添加实例管理服务sequoiasql-postgresql


sequoiasql-mysql-3.2-linux_x86_64-installer.run

一.简介:MySQL 是一款开源的关系型数据库管理系统,也是目前最流行的关系型数据库管理系统之一,支持标准的 SQL 语言。SequoiaDB 以存储引擎的方式与 MySQL 对接,使得用户可以通过 MySQL 的 SQL 接口访问 SequoiaDB 中的数据,并进行增、删、改、查等操作。

二.使用:
1.安装包常用参数:
mode: 安装模式,默认是gtk图形界面安装
prefix: 安装路径,默认是/opt/sequoiasql/mysql
installInstance: 是否添加数据库实例,默认添加端口号为3306的数据库实例
更多参数及取值参考--help,详细步骤可查看http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1521595270-edition_id-302

所以可以得知,兼容MySQL,实际上是SQL解析引擎+SequoiaDB存储引擎的方式实现的

测试单节点sequoiasql-mysql性能

压测说明

测试软件

主机: 虚拟机2核4G
压测对比: “单MySQL”VS“单sequoiasql-mysql”
测试量: 10万写入+20万分页查询(count+limit)+20万通过主键查询

线程数:100

数据库参数:默认

测试结果

单MySQL
20190430181645

单sequoiasql-mysql

20190505165738

单机测试结果和MySQL差不多,有点失去兴趣,不想继续…

集群的性能如何? 那搭建个集群玩一玩, 加油…继续…

搭建sequoiasql-mysql + sequoiadb集群

机器准备及规划

机器名称 IP 用途
sequoiadb1 192.168.1.86 sequoiadb编目节点,数据节点,协调节点
sequoiadb2 192.168.1.87 sequoiadb编目节点,数据节点,协调节点
sequoiadb3 192.168.1.89 sequoiadb编目节点,数据节点,协调节点
sequoiasql-mysql 192.168.1.90 sequoiasql-mysql数据节点,协调节点

安装过程

  1. 配置所有机器的hosts

    1
    2
    3
    4
    192.168.1.86  sequoiadb1
    192.168.1.87 sequoiadb2
    192.168.1.89 sequoiadb3
    192.168.1.90 sequoiasql-mysql
  1. sequoiadb1,sequoiadb2,sequoiadb3三台机器上安装sequoiadb,教程:http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1432191000-edition_id-0

  2. sequoiadb1,sequoiadb2,sequoiadb3三台组建集群(集群模式),教程:http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1432191002-edition_id-302

  3. sequoiasql-mysql机器上安装sequoiasql-mysql,教程:http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1521595270-edition_id-0

  4. sequoiasql-mysql机器上创建MySQL实例,并连接至sequoiadb集群,教程:http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1521595283-edition_id-0

    1
    2
    3
    4
    5
    # 创建实例
    bin/sdb_sql_ctl addinst myinst -D database/3306/

    # 配置 SequoiaDB 连接地址(也可通过配置文件/opt/sequoiasql/mysql/database/3306/auto.cnf)
    bin/sdb_sql_ctl chconf myinst --sdb-conn-addr=192.168.1.86:11810,192.168.64.1:11810,192.168.1.89:11810,192.168.1.90:11810

    失败!失败!尴尬,整个过程无报错,但是在测试过程,发现只有sequoiasql-mysql有负载和大流量,后面的集群没有应该是没有参与工作!!!

    暂时放弃…