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 环境准 ...
随机推荐
- php踩过的那些坑(2) strpos引发的血案
一.前方有坑 php某些自带函数,如果使用不当,也会坑得你人仰马翻.比如:strpos() 先了解一下strpos()函数是干啥的. strpos — 查找字符串首次出现的位置 用法: int str ...
- 在华为云ECS上手工通过Docker部署tomcat
本文介绍了如何在华为云上ECS上手工通过Docker部署tomcat,并提供了Docker常用操作 一.环境准备 ECS:操作系统版本: CentOS Linux release 7.6.181 ...
- 【我的物联网成长记6】由浅入深了解NB-IoT
[摘要] 什么是NB-IoT?NB-IoT有什么优势?NB-IoT能做什么?本文将会从NB-IoT技术的发展历程,技术特点,通信协议,应用场景等方面为您全方面解读NB-IoT技术,了解NB-IoT的独 ...
- Python使用psutil模块,做你的电脑管家
电脑管家 也许大家都有这样的感觉,优化完美的电脑系统,你把电脑借给一个电脑小白使用上几天,等你拿回来的时候会发现,开机各种慢,乱七八糟的软件装了一大堆.那么我们如何使用Python来获取电脑的相关数据 ...
- 使用Docker测试静态网站
参考书籍 :第一本docker书[澳]James Turnbull 1.Sample网站的初始Dockerfile 文件目录如下: Dockerfile文件代码: 安装nginx 在容器中创建一个目 ...
- 学习go第一天-编写第一个go程序
开发环境构建 GOPATH 在1.8版本前必须设置这个环境变量 1.8以及更高版本如果没有设置,则使用默认值在Mac上GOPATH可以通过修改 -/.bash_profile来设置 程序基本结构 pa ...
- [TimLinux] django SELinux+httpd+mod_wsgi部署
1. 实验项目 $ django-admin startproject myweb $ cd myweb/ $ python manage.py startapp poll 1. 配置使用MySQL ...
- 史上最全的iptables应用
第14章 防火墙的使用 14.1 防火墙的概念 将不安全的网络流量信息进行隔离 14.2 防火墙的实现 14.2.1 硬件实现 思科,华为防火墙服务器 14.2.2 软件实现 iptables(cen ...
- Selenium之下拉框操作
下拉框操作: 一般下拉框适用场景:在新增时有下拉框选项,在二级联动或多级联动有下拉(比如:在选择省市县时的多级联动下拉). 下拉框选择都有select的标签属性,存在两个属性select和option ...
- LNMP-Nginx负载均衡
Nginx负载均衡介绍 Nginx提供负载均衡的模块upstream,这个模块是默认的,不需要重新编译模块.通常情况下,负载均衡一般用于后端两台机器同时提供服务供用户访问,但是用户经常访问的其中一台服 ...