前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JanusGraph之Cache

JanusGraph之Cache

作者头像
陈黎栋
发布2020-02-17 23:24:43
1K0
发布2020-02-17 23:24:43
举报
  1. Caching(缓存) JanusGraph employs multiple layers of data caching to facilitate fast graph traversals.(JanusGraph采用多层数据缓存,以方便快速图形遍历),缓存层按照从JanusGraph事务中访问的顺序列出。缓存越接近事务,缓存访问越快,内存占用和维护开销也越高
  2. Transaction-Level Caching(事务级缓存) 2.1. Vertex Cache(顶点缓存):缓存访问的顶点和它们的邻接列表(或子集) 2.2. Index Cache(索引缓存):缓存索引查询的结果,以便随后的索引调用可以从内存中提供,而不是调用索引后端和(通常)等待一个或多个网络往返。 事务缓存大小可以通过cache.tx-cache-size或基于每个事务来配置graph.buildTransaction(),setVertexCacheSize(int)方法是通过事务生成器打开事务 并使用该方法。
  3. Database Level Caching(数据库级缓存) 3.1. Cache Expiration Time 性能和查询行为最重要的设置是通过配置的缓存过期时间cache.db-cache-time。缓存将保存最多几毫秒的图形元素。如果元素过期,则将在下次访问时从存储后端重新读取数据。 如果只有一个JanusGraph实例访问存储后端,或者如果此实例是修改图形的唯一实例,则可以将缓存过期设置为0,从而禁用缓存过期。 如果有多个JanusGraph实例访问存储后端,则应将时间设置为另一个 JanusGraph实例修改图形和此JanusGraph实例查看数据之间允许的最大时间。 3.2. Cache Size 配置选项cache.db-cache-size控制允许JanusGraph的数据库级缓存占用多少堆空间。缓存越大,效果就越好。但是,较大的缓存大小可能会导致GC过多和性能较差。 高速缓存大小是指由高速缓存专门占用的堆空间量。 3.3. Clean Up Wait Time 当顶点被本地修改(例如添加边)时,所有顶点的相关数据库级高速缓存条目被标记为过期并最终被逐出。这将导致JanusGraph在下次访问时刷新存储后端的顶点数据并重新填充缓存。通过配置cache.db-cache-clean-wait,高速缓存将至少等待几毫秒,然后使用从存储后端检索到的条目重新填充高速缓存。 如果JanusGraph在本地运行或对存储后端运行,以保证修改立即可见,则可以将此值设置为0
  4. Storage Backend Caching(存储后端缓存) 每个存储后端都维护着自己的数据缓存层。这些缓存通过压缩,数据紧凑,协调到期,并经常维护堆,可以使用大型缓存而不会陷入垃圾收集问题。但访问速度也较慢。 缓存的确切类型及其属性取决于特定的存储后端。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档