随着互联网技术的发展,面对海量数据的存储和分析,传统关系型数据库已经无法满足,由此衍生出一种与关系型数据库区别开的数据库NoSQL(Not Only SQL)。
国外做的比较成熟的NoSQL有MongoDB,Cassandra,ToKuMX等,不一一列举。
据我的粗略了解,BAT等巨头内部基本都有自己的NoSQL项目,有的是基于开源项目自行研发,有的是依托MongoDB等NoSQL为基础搭建数据分析平台。而近些年迅速成长的各类公有云服务提供商,在除了SQL Server,MySQL,MariaDB等关系数据库之外,也在开始尝试部署的NoSQL(当然,这些NoSQL数据库是以MongoDB为主)。
BAT等大互联网公司,财大气粗,大都养着一群程序员基于开源数据库做改进,使之更适合他们自己的业务,因此,很少这类产品发布。
值得庆幸的是,国内也有NoSQL研发商。广州巨杉发布的的企业级NoSQL:SequoiaDB,号称在功能和研发技术方面,并不输MongoDB。SequoiaDB之前名字还是很陌生的,但是近几个月来,经常在各类大数据主题的大会,论坛等场合出现,而且在近期宣布获得千万级美元的A轮,同时在ArchSummit峰会(门票太贵了,囧)上宣布开源,声名鹊起。
目前,SequoiaDB已经开源,据说相关社区也已经开放了,并在OSChina上已经建立了讨论组。作为开源爱好者,赶着这个台风和对产品的好奇,也去github上下载了一份代码业余研究一下。同比与火热的MongoDB,其相关的技术以及使用,已经在各大技术论坛炒爆了,书籍也出版了不少。因此我就不再借MongoDB来分析,而是借用国产货SequoiaDB来分析。国产手机已经不输国外货了,咱也来深入看看咱国产的NoSQL的质量。
广州巨杉软件对其产品SequoiaDB的简介是:SequoiaDB(巨杉数据库)是一款分布式文档型NoSQL数据库,是业界唯一支持事务和SQL的产品。SequoiaDB既可作为Hadoop与Spark的数据源以满足实时查询和分析的混合负载,也可独立作为高性能、灵活易用的数据库被应用程序直接使用。SequoiaDB已拥有的客户包括知名IT互联网公司和世界五百强企业。
经过这近些天的源码浏览,SequoiaDB大致有以下几个大模块:
- PMD模块:这块和下面的EDU模块关系紧密,是SequoiaDB进程的入口;
- EDU模块:其实就是线程控制模块,把SequoiaDB提供的服务线程框架化了,个人比较喜欢这个玩意儿;
- OSS模块:这块大都是对不同平台的系统调用进行封装,Linux和windows的接口不尽相同;
- RTN模块:这块是数据库操作的承载者,是对操作的真正实现;
- DPS模块:这块是对数据库的日志文件记录模块;
- DMS模块:这块是真正的数据存储服务模块了;
- IXM 模块:这块是数据索引模块,保存对数据的索引;
此处可能列的不全,因为我也是大致看了看,后面的模块的再补上。SequoiaDB的模块划分还算清晰,代码风格也比较容易接受。虽然MongoDB的设计和架构很好,但是其代码风格,我不忍吐槽。说句题外话,最喜欢cocos2d-x的代码风格了,看起来非常舒服。开源代码都像cocos2d-x一样,那看代码就会和看美女一样美好哇。
依据上面所列,本博客将会陆续撰写一系列的文章:
- SequoiaDB 系列之一 :SequoiaDB的安装、部署
- SequoiaDB 系列之二 :SequoiaDB的简单CRUD操作
- SequoiaDB 系列之三 :SequoiaDB的高级功能
- SequoiaDB 系列之四 :架构简析
- SequoiaDB 系列之五 :源码分析之main函数
- SequoiaDB 系列之六 :源码分析之coord节点
我也要上班工作,只能利用闲暇时间分析,尽量保持一周写一篇。还没有写的我先拉上删除线,等写完再去掉,并补上链接 :)
准备环境:
- 安装有Linux操作系统的PC(或远程虚拟机)一台(ubuntu,centos,suse等皆可,我用的deepin Linux),需要具备root权限;
- 约 20G的磁盘空间;
- SequoiaDB的安装包,可在SequoiaDB官网下载;附下载地址:SequoiaDB v1.10 下载
下一篇将用SequoiaDB的安装和集群的部署,敬请关注!
才疏学浅,学习过程中,难免认识不足及错误之处,为不误于人,请严词指正,敬谢!
=====>THE END<=====