每周五 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

推荐阅读

Pick of the Week'19 | Nebula 第 45 周看点--Nebula 到底是不是原生存储?的更多相关文章

  1. Pick of the Week'19 | 图数据库 Nebula 第 47 周看点-- insert 的二三事

    每周五 Nebula 为你播报每周看点,每周看点由本周大事件.用户问答.Nebula 产品动态和推荐阅读构成. 今天是 2019 年第 47 个工作周的周五,来和 Nebula 看看本周有什么图数据库 ...

  2. COSCon'19 | 如何设计新一代的图数据库 Nebula

    11 月 2 号 - 11 月 3 号,以"大爱无疆,开源无界"为主题的 2019 中国开源年会(COSCon'19)正式启动,大会以开源治理.国际接轨.社区发展和开源项目为切入点 ...

  3. 分享Kali Linux 2016.2第45周VMware虚拟机

    分享Kali Linux 2016.2第45周VMware虚拟机本虚拟机使用Kali Linux 2016.2第45周镜像安装而成.有兴趣的同学,可以下载使用.(1)该虚拟机支持VMware 9.10 ...

  4. 分享Kali Linux 2016.2第45周镜像

    分享Kali Linux 2016.2第45周镜像Kali Linux官方于11月6日发布Kali Linux 2016.2的第45周的镜像.此次镜像维持了以往11个镜像文件的规模,包括32位.64位 ...

  5. Nebula 架构剖析系列(一)图数据库的存储设计

    摘要 在讨论某个数据库时,存储 ( Storage ) 和计算 ( Query Engine ) 通常是讨论的热点,也是爱好者们了解某个数据库不可或缺的部分.每个数据库都有其独有的存储.计算方式,今天 ...

  6. Java课程课后作业之19学期之第一周博客作业

    作为一个大二的学生,自己已经不小了,没有大一那个时候的无忧无虑的可以放纵的时光,只剩下一年,我就该做出我人生的下一个重大决定了,这一次真的是我一个人的决定,从小到大,父母为我做过很多的决定,即使在小的 ...

  7. SpringBootSecurity学习(19)前后端分离版之OAuth2.0 token的存储和管理

    内存中存储token 我们来继续授权服务代码的下一个优化.现在授权服务中,token的存储是存储在内存中的,我们使用的是 InMemoryTokenStore : 图中的tokenStore方法支持很 ...

  8. oracle与DB2的一些架构

    首先,我们需要理解 Oracle 使用的架构,并理解它与 DB2 的不同之处.图 1 展示了 Oracle 的系统结构.将该图与 图 2 进行比较,后者显示了 DB2 的系统结构.在阅读本文的时候,为 ...

  9. 用Docker swarm快速部署Nebula Graph集群

    用Docker swarm快速部署Nebula Graph集群 一.前言 本文介绍如何使用 Docker Swarm 来部署 Nebula Graph 集群. 二.nebula集群搭建 2.1 环境准 ...

随机推荐

  1. 爬取豆瓣top250音乐 时长 出版商 存入Mongo数据库

    import requestsfrom lxml import etreeimport reimport pymongoimport time client = pymongo.MongoClient ...

  2. js中的宏任务与微任务

    如果你已经知道了js中存在宏任务和微任务,那么你一定已经了解过promise了.因为在js中promise是微任务的一个入口. 先来看一道题: setTimeout(function(){ conso ...

  3. WebMagic 实现爬虫入门教程

    本示例实现某电影网站最新片源名称列表及详情页下载地址的抓取. webmagic是一个开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发. WebMagic 特点: 完全 ...

  4. Python3 常用模块3

    目录 numpy模块 创建numpy数组 numpy数组的属性和用法 matplotlib模块 条形图 直方图 折线图 散点图 + 直线图 pandas模块 numpy模块 numpy模块可以用来做数 ...

  5. docker-网络管理-桥接网络

    一.配置桥接网络   需求:为了使本地网络中的机器和Docker容器更方便的通信,我们经常会有将Docker容器配置到和主机同一网段的需求.这个需求其实很容易实现,我们只要将Docker容器和宿主机的 ...

  6. SecureCRT安装包和破解脚本

    第一步下载 SecureCRT安装包和破解脚本 下载 http://pan.baidu.com/s/1c1D5Ala 破解脚本 securecrt_mac_crack.pl安装包scrt-7.3.7- ...

  7. Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError

    最新在学习Python的基础入门系列课程,今天学习到使用python 的内置库smtplib发送邮件内容. 使用Python发送邮件步骤简单: 创建SMTP连接 使用邮箱和密码登录SMTP服务器 创建 ...

  8. Winform DataGridView控件数据导出EXcel

    /// <summary> /// 导出Excel /// </summary> /// <param name="dgv"></para ...

  9. python 正则表达式re使用模块(match()、search()和compile())

    摘录 python核心编程 python的re模块允许多线程共享一个已编译的正则表达式对象,也支持命名子组.下表是常见的正则表达式属性: 函数/方法 描述 仅仅是re模块函数 compile(patt ...

  10. 简单看看es6解构赋值

    哎,我真的是太难了,今天就被这个解构赋值(也可以叫做析构,貌似析构是在c++中的,所以我这里叫做解构赋值吧)弄的我很烦,本来以为很容易的,结果还是弄了好久...就总结一下解构吧! 1.解构的基本使用 ...