Pick of the Week'19 | Nebula 第 45 周看点--Nebula 到底是不是原生存储?
每周五 Nebula 为你播报每周看点,每周看点由本周大事件、用户问答、Nebula 产品动态和推荐阅读构成。
今天是 2019 年第 45 个工作周的周五,来和 Nebula 看看本周有什么图数据库和 Nebula 的新看点~~
本周大事件
RC1 Release
本次 RC1 主要增强了 nGQL,新增 LIMIT
, ORDER BY
等语句;算法方面增加了最短路径,全路径搜索。 Storage 层新增 PUT/GET 接口,支持 scale out/in,以及新增了 Golang 客户端以及多线程 Golang 数据导入工具。
Release Note 见这里 https://github.com/vesoft-inc/nebula/releases/tag/v1.0.0-rc1
社区问答
Pick of the Week 每周会从微博、知乎、微信群、微信公众号及 CSDN 等技术社区选取 3 - 5 个用户问题同你分享,欢迎阅读本文的你通过知乎、微信公众号后台或者添加 Nebula 小助手微信号:NebulaGraphbot 进群交流。
1、@柯东 提问
其实 Nebula 到底是不是原生存储?按介绍,你们还只是在 RocksDB 和 HBase 上搭建一层
Nebula:Nebula 最底层使用的 kv 存储引擎是 RocksDB,上层自己实现了数据一致性协议,然后再封装成图的语义。当然图在数据结构上有多种存储方式,可是在数据 sharding 和分布式能力上,各种方式之间只能做个权衡。比如可以把图结构单独存放,这样查询图结构能非常快,但这样属性的 scalebility 会是个问题。就看使用的时候,更看重哪个方面了。另外业务需要的时候也可以支持 HBase。
2、@yfractal 提问
求介绍介绍 Nebula 锁相关或者是如何保证一致性的
Nebula:我们用的 Raft 保持副本一致的,数据写入过程中是不存在脑裂情况的,也不允许出现脑裂, 否则数据会乱套; 读取过程中可能会存在脑裂,这是一种假脑裂,在一段时间内会读取不到新数据,你可以参考之前 PingCAP 对读取脑裂处理方案(阅读传送门:https://mp.weixin.qq.com/s/ppd78-WmFVNH5tN3wTdvgA),只不过 PingCAP 称他为 region leader ,在 Nebula Graph 里是 part raft ,和 region leader 的概念类似。
3、@cristiano ronaldo 提问
Nebula 在 Docker 里编译是方便了, 但是 Docker 里编译的二进制还是只能在 Docker中运行。 虚机/物理机运行还是要安装一大堆依赖库。
Nebula:目前 Docker 编译有四个环境:CentOS 7.5,CentOS 6.5,Ubuntu 1804,Ubuntu 1604。
假如你使用 Docker 编译,选择了 CentOS 7.5 编译,那么编译出来的二进制文件可以在物理机也是 CentOS 7.5 上面运行,不需要安装其他依赖,同理其他三个系统也是。
假如你需要在 CentOS 7.0~7.5 的物理机上面运行,那么用 CentOS 7.5 系统的 Docker 编译出来的可能在低版本的 CentOS 由于 glic 的版本不支持而运行不了的话,那么可以选择直接物理机编译。只需要按照文档 https://github.com/vesoft-inc/nebula/blob/master/docs/manual-CN/3.build-develop-and-administration/1.build/1.build-source-code.md 里面操作按照我们编译好的第三方依赖就能简单实现源码编译。
再次感谢你的提问,后续我们会简化编译,做到只依赖 C++14 编译器和通过 OS 官方 repo 可直接安装的 libs。
4、@CreaPlus 提问
这个和 Neo4j 的区别
Nebula:二者的区别主要有以下几点:
- 两者的查询语言类似但不一样;(当然Nebula正在开发去兼容OpenCypher)
- Neo4j 3.4开源是个单机版,分布式架构也是把图结构放在单机上。 Nebula 把所有的点和边都打散,做成完全的分布式。因此对于横向扩展的能力不一样,特别是当数据量单机无法存放或者处理的时候。
- 不同的开发语言,Neo4j 是 Java,Nebula 是 C++;
Nebula 产品动态
Pick of the Week 每周会从 GitHub issue 及 pr 中选取重要的产品动态和大家分享,欢迎阅读本文的你关注我们的 GitHub:https://github.com/vesoft-inc/nebula 及时了解产品新动态~
1、SHOW TAGS
和 SHOW EDGES
时显示 tag 和 edgetype 的 ID,可以方便调试。参见:https://github.com/vesoft-inc/nebula/pull/1207
(user@127.0.0.1) [t]> show tags
=================
| ID | Name |
=================
| 2 | course |
-----------------
| 3 | building |
-----------------
| 4 | student |
-----------------
Got 3 rows (Time spent: 1784/2755 us)
(user@127.0.0.1) [t]> show edges
===============
| ID | Name |
===============
| 5 | like |
---------------
| 6 | select |
---------------
Got 2 rows (Time spent: 1519/2359 us)
2、新增 SHOW PARTS
命令获取当前 space 的 partition 详情,参见:https://github.com/vesoft-inc/nebula/pull/1086
选取 Leader 前,使用 SHOW PARTS
命令
(user@172.25.61.1) [(none)]> use myspace;
Execution succeeded (Time spent: 1463/2378 us)
(user@172.25.61.1) [myspace]> show parts;
===========================================================================================
| Partition ID | Leader | Peers | Losts |
===========================================================================================
| 1 | | 172.25.61.1:44700, 172.25.61.1:44500, 172.25.61.1:44600 | |
-------------------------------------------------------------------------------------------
| 2 | | 172.25.61.1:44500, 172.25.61.1:44600, 172.25.61.1:44700 | |
-------------------------------------------------------------------------------------------
| 3 | | 172.25.61.1:44600, 172.25.61.1:44700, 172.25.61.1:44500 | |
-------------------------------------------------------------------------------------------
| 4 | | 172.25.61.1:44700, 172.25.61.1:44500, 172.25.61.1:44600 | |
-------------------------------------------------------------------------------------------
| 5 | | 172.25.61.1:44500, 172.25.61.1:44600, 172.25.61.1:44700 | |
-------------------------------------------------------------------------------------------
| 6 | | 172.25.61.1:44600, 172.25.61.1:44700, 172.25.61.1:44500 | |
-------------------------------------------------------------------------------------------
| 7 | | 172.25.61.1:44700, 172.25.61.1:44500, 172.25.61.1:44600 | |
-------------------------------------------------------------------------------------------
| 8 | | 172.25.61.1:44500, 172.25.61.1:44600, 172.25.61.1:44700 | |
-------------------------------------------------------------------------------------------
| 9 | | 172.25.61.1:44600, 172.25.61.1:44700, 172.25.61.1:44500 | |
-------------------------------------------------------------------------------------------
选取 Leader 后,使用 SHOW PARTS
命令
(user@172.25.61.1) [myspace]> show parts;
======================================================================================================
| Partition ID | Leader | Peers | Losts |
======================================================================================================
| 1 | 172.25.61.1:44500 | 172.25.61.1:44700, 172.25.61.1:44500, 172.25.61.1:44600 | |
------------------------------------------------------------------------------------------------------
| 2 | 172.25.61.1:44500 | 172.25.61.1:44500, 172.25.61.1:44600, 172.25.61.1:44700 | |
------------------------------------------------------------------------------------------------------
| 3 | 172.25.61.1:44500 | 172.25.61.1:44600, 172.25.61.1:44700, 172.25.61.1:44500 | |
------------------------------------------------------------------------------------------------------
| 4 | 172.25.61.1:44500 | 172.25.61.1:44700, 172.25.61.1:44500, 172.25.61.1:44600 | |
------------------------------------------------------------------------------------------------------
| 5 | 172.25.61.1:44500 | 172.25.61.1:44500, 172.25.61.1:44600, 172.25.61.1:44700 | |
------------------------------------------------------------------------------------------------------
| 6 | 172.25.61.1:44500 | 172.25.61.1:44600, 172.25.61.1:44700, 172.25.61.1:44500 | |
------------------------------------------------------------------------------------------------------
| 7 | 172.25.61.1:44500 | 172.25.61.1:44700, 172.25.61.1:44500, 172.25.61.1:44600 | |
------------------------------------------------------------------------------------------------------
| 8 | 172.25.61.1:44500 | 172.25.61.1:44500, 172.25.61.1:44600, 172.25.61.1:44700 | |
------------------------------------------------------------------------------------------------------
| 9 | 172.25.61.1:44500 | 172.25.61.1:44600, 172.25.61.1:44700, 172.25.61.1:44500 | |
------------------------------------------------------------------------------------------------------
3、完成部分升级库 folly, fbthrift,参见:https://github.com/vesoft-inc/nebula/pull/1161
推荐阅读
- New issue | 众测图数据库 Nebula 第二弹
- 推荐理由:你知道一个 issue 可以兑换多少人民币吗?Nebula 只知道你的 issue 可兑换五百软妹纸。
Pick of the Week'19 | Nebula 第 45 周看点--Nebula 到底是不是原生存储?的更多相关文章
- Pick of the Week'19 | 图数据库 Nebula 第 47 周看点-- insert 的二三事
每周五 Nebula 为你播报每周看点,每周看点由本周大事件.用户问答.Nebula 产品动态和推荐阅读构成. 今天是 2019 年第 47 个工作周的周五,来和 Nebula 看看本周有什么图数据库 ...
- COSCon'19 | 如何设计新一代的图数据库 Nebula
11 月 2 号 - 11 月 3 号,以"大爱无疆,开源无界"为主题的 2019 中国开源年会(COSCon'19)正式启动,大会以开源治理.国际接轨.社区发展和开源项目为切入点 ...
- 分享Kali Linux 2016.2第45周VMware虚拟机
分享Kali Linux 2016.2第45周VMware虚拟机本虚拟机使用Kali Linux 2016.2第45周镜像安装而成.有兴趣的同学,可以下载使用.(1)该虚拟机支持VMware 9.10 ...
- 分享Kali Linux 2016.2第45周镜像
分享Kali Linux 2016.2第45周镜像Kali Linux官方于11月6日发布Kali Linux 2016.2的第45周的镜像.此次镜像维持了以往11个镜像文件的规模,包括32位.64位 ...
- Nebula 架构剖析系列(一)图数据库的存储设计
摘要 在讨论某个数据库时,存储 ( Storage ) 和计算 ( Query Engine ) 通常是讨论的热点,也是爱好者们了解某个数据库不可或缺的部分.每个数据库都有其独有的存储.计算方式,今天 ...
- Java课程课后作业之19学期之第一周博客作业
作为一个大二的学生,自己已经不小了,没有大一那个时候的无忧无虑的可以放纵的时光,只剩下一年,我就该做出我人生的下一个重大决定了,这一次真的是我一个人的决定,从小到大,父母为我做过很多的决定,即使在小的 ...
- SpringBootSecurity学习(19)前后端分离版之OAuth2.0 token的存储和管理
内存中存储token 我们来继续授权服务代码的下一个优化.现在授权服务中,token的存储是存储在内存中的,我们使用的是 InMemoryTokenStore : 图中的tokenStore方法支持很 ...
- oracle与DB2的一些架构
首先,我们需要理解 Oracle 使用的架构,并理解它与 DB2 的不同之处.图 1 展示了 Oracle 的系统结构.将该图与 图 2 进行比较,后者显示了 DB2 的系统结构.在阅读本文的时候,为 ...
- 用Docker swarm快速部署Nebula Graph集群
用Docker swarm快速部署Nebula Graph集群 一.前言 本文介绍如何使用 Docker Swarm 来部署 Nebula Graph 集群. 二.nebula集群搭建 2.1 环境准 ...
随机推荐
- Windows下通过VMWare安装linux
VMWare虚拟机安装linux 虚拟机的概念 虚拟机,其本质其实也是一个程序. 但是这个程序,模仿了一台完整的主机常用的有 VMware,VirtualBox,Microsoft Virtual P ...
- mysql那些事(5)建表存储引擎的选择
在mysql见表的时候,会遇到选择存储引擎:MyISAM和InnoDB.究竟用哪种存储引擎好呢? 1.MyISAM:表锁:支持全文索引:读并发性能较好. 2.InnoDB:行锁:支持事务,支持外键:写 ...
- 全栈项目|小书架|微信小程序-实现搜索功能
效果图 上图是小程序端实现的搜索功能效果图. 从图中可以看出点击首页搜索按钮即可进入搜索页面. 布局样式是:搜索框 + 热搜内容 + 搜索列表. 搜索框使用 lin-ui 中的 Searchbar组件 ...
- 机器学习笔记(六) ---- 支持向量机(SVM)
支持向量机(SVM)可以说是一个完全由数学理论和公式进行应用的一种机器学习算法,在小批量数据分类上准确度高.性能好,在二分类问题上有广泛的应用. 同样是二分类算法,支持向量机和逻辑回归有很多相似性,都 ...
- 带着canvas去流浪系列之八 碰撞
[摘要] canvas动画-碰撞仿真 示例代码托管在:http://www.github.com/dashnowords/blogs 经过前面章节相对枯燥的练习,相信你已经能够上手canvas的原生A ...
- Magicodes.Sms短信库的封装和集成
简介 Magicodes.Sms是心莱团队封装的短信服务库,已提供Abp模块的封装. Nuget 新的包 名称 说明 Nuget Magicodes.Sms.Aliyun 阿里云短信库 Magicod ...
- 和为k的倍数
小b喜欢和为K的倍数的序列. 现在有一个长度为n的序列A,请问A有多少个非空连续子序列是小b喜欢的. #include<cstdio> #include<iostream> # ...
- kafka - java.nio.file.FileSystemException
在启动Kafka时报错无法启动 E:\kafka_2.12-2.3.1\kafka-logs\__consumer_offsets-48\00000000000000000000.timeindex. ...
- zabbix分布式监控服务 安装与配置
zabbix安装与配置 一.什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存 ...
- Prometheus笔记(一)metric type
欢迎加入go语言学习交流群 636728449 Prometheus笔记(二)监控go项目实时给grafana展示 Prometheus笔记(一)metric type 文章目录 Prometheus ...