V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NebulaGraph
V2EX  ›  推广

Pick of the Week'19 | Nebula 第 45 周看点--Nebula 到底是不是原生存储?

  •  
  •   NebulaGraph · 2019-11-08 16:24:39 +08:00 · 881 次点击
    这是一个创建于 1845 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每周看点

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

    ([email protected]) [t]> show tags
    =================
    | ID | Name     |
    =================
    | 2  | course   |
    -----------------
    | 3  | building |
    -----------------
    | 4  | student  |
    -----------------
    Got 3 rows (Time spent: 1784/2755 us)
    
    ([email protected]) [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 命令

    ([email protected]) [(none)]> use myspace;
    Execution succeeded (Time spent: 1463/2378 us)
    
    ([email protected]) [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 命令

    ([email protected]) [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 就此完毕,如果你对本周看点有任何建议,欢迎在本文或者公众号后台及添加 Nebula 小助手微信号:NebulaGraphbot 和我们交流 🎊🎊也欢迎你关注 GitHub: https://github.com/vesoft-inc/nebula 掌握第一手 Nebula 产品动态~~

    关注公众号

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3075 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 14:23 · PVG 22:23 · LAX 06:23 · JFK 09:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.