修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

v5.0
搜索
    v5.0

      缓存

      概述

      数据库缓存是一种性能增强技术,将频繁访问的数据存储在高速内存中,减少对低速磁盘存储的依赖,从而大大提升查询响应速度。

      正式使用数据库前,将数据预先加载至缓存中,这一过程也叫预热。如果没有预热,仅在首次通过查询访问数据时,数据才会加载到缓存中,在数据得到缓存前可能出现性能延迟。

      缓存数据临时存储在内存中,在服务器重启或手动清除后才被清除。服务器重启后,只要启用了相关缓存类型,即可通过预热操作重新加载缓存,或通过查询访问数据时重新加载。

      缓存类型

      缓存可存储多种类型数据。嬴图支持以下类型缓存:

      • 图缓存:包含图拓扑,能加速图遍历。
      • 点缓存:包括执行完LTE操作的点属性,能加速点过滤。
      • 边缓存:包括执行完LTE操作的边属性,能加速边过滤。

      缓存大小和逐出策略

      图缓存、点缓存和边缓存的大小分别通过graph_cache_sizenode_cache_sizeedge_cache_size来设置。一旦缓存达到上限,会根据已选策略逐出数据。图缓存可以使用以下任意一种逐出策略:lruunlimitednoeviction;而点缓存和边缓存默认使用lru策略。缓存大小可以在服务器配置中进行配置。

      缓存状态

      使用语句cache.<cacheType>.status()可以查看所有shard服务器上某类缓存的状态。

      // 查看图缓存状态
      cache.graph.status()
      
      // 查看点缓存状态
      cache.node.status()
      
      // 查看边缓存状态
      cache.edge.status()
      

      语句返回_cache_shard_1_cache_shard_2等表格。每个_cache_shard_<N>表包含ID为<N>的分片下指定缓存类型的信息,包含以下字段:

      字段
      描述
      status 某类缓存的当前状态,包括OnOff
      cache_size 某类缓存的最大分配大小(单位为MB),即服务器配置中的graph_cache_sizenode_cache_sizeedge_cache_size

      开启指定类型缓存

      使用语句cache.<cacheType>.turnOn()可以为所有shard服务器开启指定类型缓存。该操作以作业形式进行,稍后可使用show().job(<id?>)确认是否开启成功。

      开启操作与服务器配置中的enable_graph_cacheenable_node_cacheenable_edge_cache设置保持一致。请注意,服务器重启后,这些设置会恢复成初始设置。

      // 为所有图集的所有主副本开启图缓存
      cache.graph.turnOn()
      
      // 为所有图集的所有主副本和从副本开启图缓存
      cache.graph.turnOn({followers: true})
      
      // 为所有图集的所有主副本开启点缓存
      cache.node.turnOn()
      
      // 为所有图集的所有主副本和从副本开启点缓存
      cache.node.turnOn({followers: true})
      
      // 为所有图集的所有主副本开启边缓存
      cache.edge.turnOn()
      
      // 为所有图集的所有主副本和从副本开启边缓存
      cache.edge.turnOn({followers: true})
      

      关闭指定类型缓存

      使用语句cache.<cacheType>.turnOff()可以为所有shard服务器关闭指定类型缓存。

      关闭操作与服务器配置中的enable_graph_cacheenable_node_cacheenable_edge_cache设置保持一致。请注意,服务器重启后,这些设置会恢复成初始设置。

      // 关闭所有图集的所有主副本的图缓存
      cache.graph.turnOff()
      
      // 关闭所有图集的所有主副本和从副本的图缓存
      cache.graph.turnOff({followers: true})
      
      // 关闭所有图集的所有主副本的点缓存
      cache.node.turnOff()
      
      // 关闭所有图集的所有主副本和从副本的点缓存
      cache.node.turnOff({followers: true})
      
      // 关闭所有图集的所有主副本的边缓存
      cache.edge.turnOff()
      
      // 关闭所有图集的所有主副本和从副本的边缓存
      cache.edge.turnOff({followers: true})
      

      预热

      使用语句cache.<cacheType>.warmup()可以将数据从当前图集加载到缓存中。预热操作以作业形式执行,稍后可使用show().job(<id?>)确认预热是否完成。该操作会消耗内存,且只能在相应类型缓存开启时执行。

      // 将图拓朴加载到主副本的缓存中
      cache.graph.warmup()
      
      // 将图拓朴加载到主副本和从副本的缓存中
      cache.graph.warmup({followers: true})
      
      // 将完成LTE操作的点属性加载到主副本的缓存中
      cache.node.warmup()
      
      // 将完成LTE操作的点属性加载到主副本和从副本的缓存中
      cache.node.warmup({followers: true})
      
      // 将完成LTE操作的边属性加载到主副本的缓存中
      cache.edge.warmup()
      
      // 将完成LTE操作的边属性加载到主副本和从副本的缓存中
      cache.edge.warmup({followers: true})
      

      清除缓存

      使用语句cache.<cacheType>.clear()可以清除当前图集的缓存。该操作可以释放内存。

      // 清除主副本缓存中的图拓朴  Clears graph topology from cache for the leader replica
      cache.graph.clear()
      
      // 清除主副本和从副本缓存中的图拓朴
      cache.graph.clear({followers: true})
      
      // 清除主副本缓存中所有完成LTE操作的点属性
      cache.node.clear()
      
      // 清除主副本和从副本缓存中所有完成LTE操作的点属性
      cache.node.clear({followers: true})
      
      // 清除主副本缓存中所有完成LTE操作的边属性
      cache.edge.clear()
      
      // 清除主副本和从副本缓存中所有完成LTE操作的边属性
      cache.edge.clear({followers: true})
      

      服务器配置

      缓存设置位于每个shard服务器配置文件的ComputeEngine部分。以下相关项用于控制如何管理不同类型缓存,包括开启或关闭缓存、设置缓存大小和定义逐出策略:

      默认
      描述
      engine_type default 设置引擎类型为defaultspeed
      enable_graph_cache false 服务器重启后,是否开启图缓存
      graph_cache_size 1024 每个图缓存桶的最大大小(单位为MB);仅在default引擎类型下生效
      graph_cache_bucket_number 1024 存储图缓存的桶数量;仅在default引擎类型下生效
      graph_cache_max_memory_policy lru 最大图缓存内存的逐出策略;仅在default引擎类型下生效。选项:
      • lru(最近最少使用):优先使用缓存中的常用数据,消耗更多内存
      • unlimited:以最低内存使用量在内存中存储所有边数据(属性除外);可能引发内存不足报错
      • noevictionunlimited策略的安全版本,当数据量达到graph_cache_size时,会停止向内存存储数据,从而平衡内存使用
      enable_node_cache false 服务器重启后,是否开启点缓存;仅在default引擎类型下生效
      node_cache_size 1024 点缓存的最大大小(单位为MB);仅在default引擎类型下生效;最大点缓存内存的逐出策略为lru
      enable_edge_cache false 服务器重启后,是否开启边缓存;仅在default引擎类型下生效
      edge_cache_size 1024 边缓存的最大大小(单位为MB);仅在default引擎类型下生效;最大边缓存内存的逐出策略为lru
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写