janusgraph

图数据库调研

女生的网名这么多〃 提交于 2020-09-25 18:33:28
概述 本文转自:http://tang.love/2018/08/31/graph_database_research/ 这里记录一下图数据相关的调研结论。下面是图数据库的定义: A graph database is a database that uses graph structures for semantic queries with nodes, edges and properties to represent and store data. 注意,这里只是说了通过 提供类似图的语义查询功能,并没有规定图的存储结构。图数据库的主要优点: 更好,更快速的查询和分析; 更简单和更自然的数据建模; 同时支持实时更新和查询; 数据结构的灵活性。 图数据库是所有数据管理系统中成长最快的分类,下面分别从图检索语言和图数据库两个方面来介绍图数据市场的发展。 图检索语言 这里主要对比下面: Cypher :Neo4j 的查询语言称作 Cypher,Cypher 是对图形的声明查询语言,使用图形模式匹配作为主要的机制作 图形数据选择(包括只读和变更操作)。Cypher 的声明模式匹配性质意味着可以通过描述想从它那里得到什么查询图形数据。 SPARQL :面向 RDF(Resource Description Framework)的三元组数据,W3C 标准,无 schema

滴滴HBase大版本滚动升级之旅

寵の児 提交于 2020-08-14 10:57:27
桔妹导读:滴滴HBase团队日前完成了0.98版本 -> 1.4.8版本滚动升级,用户无感知。新版本为我们带来了丰富的新特性,在性能、稳定性与易用性方便也均有很大提升。我们将整个升级过程中面临的挑战、进行的思考以及解决的问题总结成文,希望对大家有所帮助。 1. 背景 目前HBase服务在我司共有国内、海外共计11个集群,总吞吐超过1kw+/s,服务着地图、普惠、车服、引擎、金融等几乎全部部门与业务线。 然而有一个问题持续困扰着我们:版本较社区落后较多——HBase线上集群使用0.98版本,而社区目前最新的release版本为2.3。这为我们的工作带来了很多额外的掣肘与负担,主要包括以下几点: 新特性引入成本极高: 0.98版本可以算是HBase第一个稳定版本,但过于老旧,社区已经不再维护。想要backport新特性难度越来越大。 自研patch维护成本较高: 我们基于0.98版本有数十个大大小小的自研patch,涵盖了从label分组、ACL鉴权等大的feature到监控体系建设、审计日志优化等Improvement以及各种bug fix。这些patch或是新版本中已支持但和我们实现有差异,或是由于版本差异过大无法合入社区,而且随着时间线的拉长,这种问题只会进一步恶化。 上层组件对于HBase存在一定需求: 得益于活跃的HBase生态圈,目前我们的用户使用形态也比较丰富,OLAP

GRIT协议——分布式事务方案

孤者浪人 提交于 2020-08-11 19:51:14
本文介绍了GRIT协议的基本思想,该思想在IEEE国际数据工程国际会议(ICDE)2019上宣布,并提供了使用该协议的一部分为JanusGraph实现事务性存储后端的示例。该示例着重于只有一个数据库的系统,但是正如我们所说,GRIT可以支持由多个数据库组成的系统的ACID事务。 背景 在 微服务 体系结构中,应用程序可以调用多个微服务,通常由不同的团队以不同的应用语言实现这些微服务,并且可以使用多个基础数据库来实现其功能。这种流行的架构为跨多个微服务的一致的分布式事务带来了新的挑战。在微服务环境中支持ACID事务是一个真正的要求,但是使用现有技术很难实现,因为为单个数据库设计的分布式事务机制无法通过微服务轻松扩展到具有多个数据库的情况。 在涉及多个独立数据库的环境中,传统的两阶段提交(2PC)协议1本质上是系统进行分布式事务处理的唯一选择,而无需额外的应用程序工作。但是,由于潜在的许多协调参与者的路径很长,并且在阶段中需要锁定,因此在横向扩展平台中无法很好地工作。另一方面,使用由 诸如Saga之类的框架2执行的事务日志将招致应用程序复杂的补偿逻辑,并且由于不可逆的部分成功的事务而可能产生业务影响。 为了解决这些问题,我们开发了 GRIT ,为全球统一的分布式事务的一个新的协议,它巧妙地结合乐观并发控制(OCC)、2PC和确定性数据库等想法 来实现的,这是一个高性能

滴滴HBase大版本滚动升级之旅

我是研究僧i 提交于 2020-08-11 07:32:06
桔妹导读:滴滴HBase团队日前完成了0.98版本 -> 1.4.8版本滚动升级,用户无感知。新版本为我们带来了丰富的新特性,在性能、稳定性与易用性方便也均有很大提升。我们将整个升级过程中面临的挑战、进行的思考以及解决的问题总结成文,希望对大家有所帮助。 1. 背景 目前HBase服务在我司共有国内、海外共计11个集群,总吞吐超过1kw+/s,服务着地图、普惠、车服、引擎、金融等几乎全部部门与业务线。 然而有一个问题持续困扰着我们:版本较社区落后较多——HBase线上集群使用0.98版本,而社区目前最新的release版本为2.3。这为我们的工作带来了很多额外的掣肘与负担,主要包括以下几点: 新特性引入成本极高: 0.98版本可以算是HBase第一个稳定版本,但过于老旧,社区已经不再维护。想要backport新特性难度越来越大。 自研patch维护成本较高: 我们基于0.98版本有数十个大大小小的自研patch,涵盖了从label分组、ACL鉴权等大的feature到监控体系建设、审计日志优化等Improvement以及各种bug fix。这些patch或是新版本中已支持但和我们实现有差异,或是由于版本差异过大无法合入社区,而且随着时间线的拉长,这种问题只会进一步恶化。 上层组件对于HBase存在一定需求: 得益于活跃的HBase生态圈,目前我们的用户使用形态也比较丰富,OLAP

百亿级图谱的毫秒级查询:贝壳分布式图数据库选型与实践

对着背影说爱祢 提交于 2020-08-11 04:26:09
你想知道百亿级图谱如何实现毫秒级查询吗?社区众多的图数据库中如何才能挑选到一款适合实际应用场景的图数据库呢?贝壳找房的行业图谱480亿量级的三元组究竟是如何存储的呢? 本文分享的主题《分布式图数据库在贝壳找房的应用实践》将带你探索上述问题并从中得到解答,共分为以下五大块内容: 图数据库简介 图数据库技术选型 图数据库平台建设 原理&优化&不足 未来规划 一、图数据库简介 先来看一个问题:贝壳找房最大的图谱——行业图谱,目前量级已经达了480亿三元组,如此海量的图谱数据究竟应该如何存储,如何查询,才能满足高并发场景下的毫秒级响应,从而支持贝壳业务的快速发展呢?我们带着这个问题开始本次的分享。 1、为什么需要图数据库? 贝壳的行业图谱中包含了很多信息,比如房源、客户、经纪人、开发商、小区、地铁、医院、学校、超市、电影院等等。 我们假设这样一种特殊的查询场景:找出开发商是XXX,小区绿化率大于30%,周边200米有大型超市,500米有地铁,1000米有三甲医院,2000米有升学率超过60%的高中,房价在800W以内,最近被经纪人带看次数最多的房子。 这可能是一个客户想要的房子,但是各位觉得有哪个产品可以支持么? 如果说我们用传统的关系型数据库,MySQL或者Oracle可以吗?那是不是我们要关联房源表、客户表、经纪人表、开发商表等等,一次关联几十张表才可能得到想要的结果

Displaying sub-levels in gremlin query

天涯浪子 提交于 2020-06-28 04:11:40
问题 I have the graph as shown in the figure below. The numbers represent the level format of the node which is required as output from the gremlin query along with the properties of the nodes. The graph structure can change that is more nodes can be added to the graph. The level must be returned in a similar format for additional nodes. For example, children of 1.1.1 should return the level as 1.1.1.1,1.1.1.2 ... The following query but the level is in continuous format 1,2,3 ... g.withSack(0). V