每周五 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. fsockopen用feof读取http响应内容的一些问题

    在前面三个例子中,都有这么一段代码: while (!feof($fp)) { // 读取文件/数据 //$content .= fgets($fp, 128); //$line = fread($f ...

  2. 大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作

    网站登录 现在各大平台在反爬虫功能上,可谓花样繁多.总结下来按照破解成功率排名,最高的是滑动解锁.其次是验证码数字.之后是一次点击对应的汉字,最后是想12306之前那种反人类的让你说那些是奶糖吧,哈哈 ...

  3. jquery.validate的一个bug

    在用jquery.validate.js做输入验证中,用到了对某个字段重复性的判断,就是在某字段的验证中使用remote进行输入时用ajax不断向后台发送请求,但是奇怪的是,在你在data:{}中用n ...

  4. 15.Django基础十一之认证系统

    一 auth模块 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Django作为一个 ...

  5. shell 循环读取文件及字符串转为数组

    文件/etc/hdocker_config内容如下: 30.72.63.94 30.72.63.95 30.72.63.96 30.72.63.97 /tmp/lasclocker.tar maste ...

  6. jeecg培训第一课(代码生成与权限分配)

    问题描述:进口部要完成一票进口报关单的增删改查,操作员张三登录只能增删改张三的报关单,操作员李四登录只能增删改李四的报关单, 部门主管王五登录能查看张三和李四的报关单,但不能修改删除.操作员能提交报关 ...

  7. PHY6202 蓝牙4.0NRF51802

    PHY6202可以替代NRF51802/NRF51822的虽然PHY6202是蓝牙4.0,但它同时可是使用5.0的软件进行组网PHY6202 M0内核,封装:QFN48/32基本参数:ARM CORT ...

  8. js练习- 给你一个对象,求有几层

    // 比如这个a中,就有四层.如何算出这四层 const a = { b: 1, c() {}, d: { e: 2, f: { g: 3, h: { i: 4, }, }, j: { k: 5, } ...

  9. sticker-footer布局

    目录 1.嵌套层级不深,可直接继承自 body width:100%: height:100%; 2.嵌套层级很深,无法直接从上级继承 百分比高度的 第一种方法:给需要的 sticker-footer ...

  10. 详解numpy的argmax

    从最简单的例子出发 假定现在有一个数组a = [3, 1, 2, 4, 6, 1]现在要算数组a中最大数的索引是多少.这个问题对于刚学编程的同学就能解决.最直接的思路,先假定第0个数最大,然后拿这个和 ...