文档章节

【巨杉答疑】巨杉数据库和mongodb有什么关系吗?

巨杉数据库
 巨杉数据库
发布于 2017/07/03 15:47
字数 1979
阅读 521
收藏 5

                 

哈罗,艾瑞巴蒂~巨杉答疑栏目今日上线啦!
巨杉数据库作为商业化开源软件,已经拥有大量社区用户。开源至今,大到分布式数据库原理、架构问题,小到SDB巨杉数据库的安装使用问题,大家似乎都有很多问题想要和我们交流,所以我们邀请技术大咖和大家好好聊聊,有啥问题尽管放马过来!


昨天,我们就请到巨杉数据库的两位技术大咖在巨杉官方微信群针对分布式数据库的相关内容对于群友的提问进行解答。来淘点干货吧!

 

1.官方数据说巨杉很多性能超过mongoDB,前者是否可以替代后者,不能完全替代的话,在哪些性能方面巨杉能力不足于mongoDB,为什么,有设计方面的因素吗?mongodb和SDB有什么关系?

SDB完全可以替代mongodb,而且很多功能mongodb并不支持。例如事务、join查询等。

 

目前在性能上超越mongodb,而且在分布机制上也比mongodb完善。

 

要说弱点,主要在社区的推广和发展上,mongodb最早的出发点是从开发开始的。

 

e-r关系结构对于开发来说迭代太慢了,所以JSON文档型和对象一一对应,而且没有schema的限定,对于开发POC等迭代帮助太大了,很多互联网企业都是半天出个版本,这对开发要求很高。

 

Mongodb在易用性上做的很好,我们也在努力,希望大家支持!

 

Mongodb和SDB没有任何关系,大家的出发点非常不同。

 

 

2.数据库的开发本身技术要求都很高,需要论文原理来支撑,就像CAP理论中的AC的平衡,更希望能听到原理性的分析。

CAP主要是指Consistency(一致性); Availability(可用性);Partition tolerance(分区容错性);主要在分布式存储系统中提出的理论,P是分布式里必须的,当网络等因素发生故障的时候,A和C不能同时满足,因此提出了“三选二”的概念,及AP和CP的取舍选择。

 

三选二会误导很多新人,觉得不是CP就是AP,其实这个选择是极端情况的,并不是简单的非黑即白的选择。

 

首先,由于分区很少发生,那么在系统不存在分区的情况下没什么理由牺牲C或A。其次,C与A之间的取舍可以在同一系统内以非常细小的粒度反复发生,而每一次的决策可能因为具体的操作,乃至因为牵涉到特定的数据或用户而有所不同。所以是0-100%之间的变化。

 

这里举例来说,分布式一主两从,保障了AP,但网络同步的速度决定了CP的能力,所以这个同步能力就是根据网络环境从0-100%里变化的。

 

当条件好的时候,就基本都满足,当断网了,就要做取舍,但是当同步完成,从节点升级为主节点后,又恢复了。

 

当然如果要100%保证CP必须强一致,那么当一台机器宕机,强一致就做不到了,就满足不了CP了。

 

ACID是传统关系型数据库最为重要的特征,原子性、一致性、隔离性、持久性;强调的是一致性。属于CP。

 

BASE是基本可用(Basically Available)软状态(Soft State)最终一致性(Eventually Consistent)软状态就是中间状态,例如同步延时时的分布式从节点的副本状态。从BASE的角度,高可用是优先保障的。属于AP。

 

如何在这两种状态保持平衡,就需要从业务逻辑,用户需求,业务需求出发。

 

3.现在巨杉数据库分社区版和企业版,社区办是否有阉割,这两种分别适用哪些场景?

开源的社区版和企业版的数据库内核源码都是一致的,相较于企业版,社区版只是可视化上操作以及SparkSQL这部分有限制。

 

其他的就是专业的服务,企业版有一些我们专用的调试工具等,便于服务,但是对社区影响不大。

 

4. 巨杉数据库是怎么与Spark进行结合的?不用普通sql查询,那是利用什么方法查询?

Spark适合低并发,大数据量复杂查询。

 

巨杉数据库专门为spark开发了一套连接器,可以支持为spark 提供原数据。Spark SQL 的语法基本沿用了Hive SQL 的语法,大家基本可以通过查阅hive SQL 语法进行编写。

 

5.spark sql与普通sql区别在哪里?语法不一样还是语言不同?

Spark SQL是类似于标准SQL的语言,写得时候基本没有障碍,但是毕竟不是做OLTP(On-Line Transaction Processing联机事务处理过程)的,一些语法不支持,属于SQL子集。

 

6.巨杉数据库的瓶颈在哪里?

目前最大的瓶颈在隔离机制,巨杉SDB主要追求高可用、高性能的,就是ACID和BASE机制中,在BASE机制上巨杉SDB的优势更明显。

 

ACID和BASE分别推动了关系型数据库和NoSQL的发展,现在大家所主张的NewSQL就是在寻找更好的平衡点,在高可用的基础上,尽量支持ACID。

 

对于现在的业务来说,高可用的场景远大于OLTP场景。

 

7.nosql 和newsql 的区别?

这个要从nosql讲起,在互联网时代激发了大量用户,高可用变得非常重要,所以就退出了BASE机制

 

BASE是基本可用(Basically Available)软状态(Soft State)最终一致性(Eventually Consistent)软状态就是中间状态,例如同步延时时的分布式从节点的副本状态。从BASE的角度,高可用是优先保障的。属于CAP中的AP,主要目的就是为了保障业务迭代的便捷性和高可用。Newsql就是在BASE基础上,尽量满足ACID。

 

8.巨杉数据库支持分布式文件存储吗?

支持的,巨杉有SequoiaCM产品专门用于非结构化存储,分布方式相同,存储结构不同,是块存储。

 

目前SDB 是支持双存储的,一个是行存的BSON结构,另外一个块存储结构, SDB 对于块存储的功能称为 LOB(大对象),支持存储任意大小的非结构化文件。所以大家可以使用SDB 的LOB 功能来存储文件,并且该文件将会被切分成256KB(默认)的块大小分布式存储在整个数据库集群中,数据的冗余依赖数据分区组的方式进行。

 

【巨杉解决方案】ECM企业内容管理

 

9.SDB目前有官方docker镜像吗?

目前没有官方docker。

 

主要原因是我们目前从性能角度考虑,docker对于内存管理和i/o的使用上有很多技巧,但是从小项目,易用性角度来说,我们会考虑推出docker。

 

我们近期在青云会提供镜像版本的APP,对于其他云,我们也考虑使用docker部署。

 

10.如果我是一个视频文件,性能会有什么变化?

如果用户持续对SDB写入一些大的非结构化文件,性能的变化主要取决于你的服务器I/O。

 

 

 

对于SDB、分布式数据库你有什么疑问吗?添加“杉杉”为微信好友来聊聊吧~

© 著作权归作者所有

巨杉数据库
粉丝 54
博文 109
码字总数 222243
作品 1
朝阳
数据库管理员
私信 提问
巨杉数据库 王涛:如何打造金融级数据库

巨杉数据库SequoiaDB是一家特立独行的金融级数据库厂商。大型企业客户需要“原厂”金融级数据库产品和服务,巨杉数据库坚持以此为宗旨,历经6年从1.0到3.0的不断迭代创新,目前已经广泛应用于...

巨杉数据库
2017/10/28
43
0
NoSQL性能测试:MongoDB VS SequoiaDB

作为NoSQL的一个重要类型,文档型NoSQL通常被认为是最接近传统关系型数据库的NoSQL。文档型NoSQL的核心是数据嵌套,这种设计可以从某 种程度上大大简化传统数据库复杂的关联问题。同时由于摆...

SequoiaDB2013
2013/09/15
543
0
从MongoDB IPO谈谈企业级数据库市场

10月20日,NoSQL数据库MongoDB在NASDAQ正式 IPO,当日收于 32.07 美元。截至10月27日,MongoDB报收30.89美元,公司市值保持在15亿美元左右,可以说是分布式数据库的“第一股”。 作为同样数据...

巨杉数据库
2017/11/02
296
0
SequoiaDB 关于 MongoDB 安全事件的一些思考

刚刚过去的这个周末,各位大数据和数据库从业者想必是被MongoDB的“安全事件”给刷屏了,MongoDB作为当前NoSQL在全球的领军人物,遭到这么大规模的黑客攻击,这也再次让我们对于新一代的开源...

巨杉数据库
2017/01/09
2.7K
5
【开源访谈】乔国治:分布式数据库如何实现海量数据实时查询

高访问量、海量数据业务背后的基础系统架构是如何设计和优化的?分布式数据库是如何做到数据的透明水平、垂直拆分,实现海量数据实时查询的?本期,【开源访谈】邀请到了巨杉数据库技术总监乔...

王练
2017/03/20
4.3K
6

没有更多内容

加载失败,请刷新页面

加载更多

Eureka应用注册与集群数据同步源码解析

在之前的EurekaClient自动装配及启动流程解析一文中我们提到过,在构造DiscoveryClient类时,会把自身注册到服务端,本文就来分析一下这个注册流程 客户端发起注册 boolean register() t...

Java学习录
10分钟前
1
0
Java描述设计模式(15):责任链模式

本文源码:GitHub·点这里 || GitEE·点这里 一、生活场景描述 1、请假审批流程 公司常见的请假审批流程:请假天数 当 day<=3 天,项目经理审批当 3<day<=5 天,部门经理审批当 day>5 天...

知了一笑
21分钟前
3
0
总结:数组与链表

1、内存申请:数组在内存上是连续的空间;链表,内存地址上可以是不连续的。 2、查询速度:数组可以随机访问,链表必须顺序访问,即从首个元素开始遍历,逐个查找,所以数组查询很快。 3、写入...

浮躁的码农
29分钟前
3
0
HashMap源码分析

read

V丶zxw
48分钟前
5
0
Python字符串或JSON字符串转字典dict、列表list

有3种方法 1、使用ast模块 >>> import ast>>> s = '["test",1]'>>> ast.literal_eval(s)['test',1]>>> s = '{"test":1}'>>> ast.literal_eval(s){'test': 1} 2、eval函数,这个......

编程老陆
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部