配置参考
本节是JanusGraph配置选项的权威参考。它包括官方JanusGraph发行版中存储和索引后端的所有选项。
该表是通过遍历JanusGraph内部配置管理API中的键和命名空间自动生成的。因此,此页面上列出的配置选项与特定的JanusGraph版本同步。如果本文档其他部分中对配置选项的引用与其在此页面上的表示冲突,请以此处列出的版本为准。
可变性级别
每个配置选项都具有一定的可变性级别,该级别控制数据库首次打开后是否以及如何修改它。以下列表描述了可变性级别。
-
固定
数据库打开后,在数据库的整个生命周期中不能更改这些配置选项
-
GLOBAL_OFFLINE
这些选项只能在所有实例关闭时一次性更改整个数据库集群
-
全局
这些选项只能在整个数据库集群中全局更改
-
可屏蔽
这些选项是全局的,但可以通过本地配置文件覆盖
-
本地 这些选项只能通过本地配置文件提供
有关如何更改非本地配置选项的信息,请参阅全局配置。
伞形命名空间
标有星号的命名空间是伞形命名空间,这意味着它们可以容纳任意数量的子命名空间——每个子命名空间都由其名称唯一标识。伞形命名空间下所列的配置选项仅适用于这些子命名空间。伞形命名空间用于配置多个相同类型且因此具有相同配置选项的系统组件。
例如,log命名空间是一个伞形命名空间,因为JanusGraph可以与多个日志后端接口,例如user日志,每个日志都具有相同的核心配置选项集。要将user日志的发送批处理大小配置为100个事务更改,需要在配置中设置以下选项
log.user.send-batch-size = 100
配置命名空间和选项
attributes.custom *
自定义属性序列化和处理
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| attributes.custom.[X].attribute-class | 要注册的自定义属性的类 | 字符串 | (无默认值) | GLOBAL_OFFLINE |
| attributes.custom.[X].serializer-class | 要注册的自定义属性序列化器的类 | 字符串 | (无默认值) | GLOBAL_OFFLINE |
缓存
修改JanusGraph缓存行为的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| cache.db-cache | 是否启用JanusGraph的数据库级缓存,该缓存跨所有事务共享。启用此选项通过将热图元素保存在内存中来加速遍历,但也增加了读取陈旧数据的可能性。禁用此选项会强制每个事务在读取/写入图元素之前独立地从存储中获取它们。 | 布尔值 | false | 可屏蔽 |
| cache.db-cache-clean-wait | 数据库级缓存刷新条目后保留多长时间(以毫秒为单位)。此选项仅在能够确认写入而无需立即使其可见的分布式存储后端上有用。 | 整数 | 50 | 可屏蔽 |
| cache.db-cache-size | JanusGraph数据库级缓存的大小。0到1之间的值被解释为VM堆的百分比,而更大的值被解释为以字节为单位的绝对大小。 | 双精度浮点数 | 0.3 | 可屏蔽 |
| cache.db-cache-time | 数据库级缓存中条目的默认过期时间(以毫秒为单位)。即使缓存有空余空间,条目也会在此年龄达到后被逐出。设置为0以禁用过期(缓存条目永久存在,或者当设置为0时,直到内存压力触发逐出)。 | 长整数 | 10000 | 可屏蔽 |
| cache.tx-cache-size | 事务级最近使用的顶点缓存的最大大小。 | 整数 | 20000 | 可屏蔽 |
| cache.tx-dirty-size | 未提交的脏顶点事务级缓存的初始大小。这是针对写入密集型、性能敏感的事务性工作负载的性能提示。如果设置,它应该大致与每个事务修改的顶点中位数匹配。 | 整数 | (无默认值) | 可屏蔽 |
集群
多机部署的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| cluster.max-partitions | 在分区图中创建的虚拟分区块的数量。这应该大于JanusGraph图集群中预期的最大节点数。必须大于1且为2的幂。 | 整数 | 32 | 固定 |
计算机
GraphComputer相关配置
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| computer.result-mode | 图计算器应如何返回计算结果。“persist”表示将其写入图中,“localtx”表示将其写入本地事务,或“none”(默认) | 字符串 | 无 | 可屏蔽 |
图
一般配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| graph.allow-custom-vid-types | 是否允许非长整型顶点ID。必须启用set-vertex-id才能使用此功能。目前,仅支持字符串类型。这不会阻止用户使用长整型自定义ID。如果您的存储后端不支持无序扫描,则某些扫描操作将被禁用。您不能将此功能与Berkeley DB一起使用。专家功能 - 请谨慎使用。 | 布尔值 | false | GLOBAL_OFFLINE |
| graph.allow-stale-config | 是否允许配置的本地副本和存储后端托管副本包含具有以下任何类型选项的冲突值:FIXED、GLOBAL_OFFLINE、GLOBAL。这些类型通过存储后端全局管理,不能通过更改本地配置来覆盖。这种类型的冲突通常表示配置错误。当此选项为true时,JanusGraph将记录这些选项冲突,但继续使用存储后端托管的值进行正常操作,以解决每个冲突选项。当此选项为false时,JanusGraph将记录这些选项冲突,但随后将抛出异常,拒绝启动。 | 布尔值 | true | 可屏蔽 |
| graph.allow-upgrade | 将其设置为true将允许更新某些固定值,例如storage-version。这仅应在升级时使用。 | 布尔值 | false | 可屏蔽 |
| graph.assign-timestamp | 如果后端支持,是否在突变中使用JanusGraph生成的客户端时间戳。启用后,JanusGraph会为同一批次中的所有插入分配一个时间戳,并为所有删除分配一个稍早的时间戳。禁用后,突变行为取决于后端。有些可能使用服务器端时间戳(例如HBase),而有些可能使用驱动程序生成的客户端时间戳(CQL)。 | 布尔值 | true | 本地 |
| graph.graphname | 此配置选项是您打开图时可以提供的可选配置设置。您提供的字符串值将是您的图的名称。如果您使用ConfigurationManagement API,则您将能够使用ConfiguredGraphFactory API通过此字符串表示形式访问您的图。 | 字符串 | (无默认值) | 本地 |
| graph.replace-instance-if-exists | 如果具有相同实例标识符的JanusGraph实例已存在,则使用此配置选项会导致仍然打开此图。 | 布尔值 | false | 本地 |
| graph.set-vertex-id | 是否应启用用户提供的顶点ID并禁用JanusGraph的自动顶点ID分配。当JanusGraph与另一个分配长ID但禁用JanusGraph某些高级功能(可能导致数据不一致)的存储系统协同操作时很有用。例如,用户必须确保顶点ID是唯一的以避免重复。必须首先使用graph.getIDManager().toVertexId(long)转换您的ID。启用此功能后,在创建新顶点时必须提供顶点ID。专家功能 - 请谨慎使用。 |
布尔值 | false | GLOBAL_OFFLINE |
| graph.storage-version | 创建此数据库时使用的JanusGraph存储架构版本。在图第一次启动时自动设置。只有在升级到包含架构更改的JanusGraph新主要发行版本时才应更改 | 字符串 | (无默认值) | 固定 |
| graph.timestamps | 写入存储和索引时使用的时间戳分辨率。设置整个图集群的时间粒度。为避免潜在的不准确性,配置的时间分辨率应与后端系统的时间分辨率匹配。某些JanusGraph存储后端声明了首选时间戳分辨率,以反映底层服务中的设计约束。当后端提供首选默认值,并且在配置文件中未明确声明此设置时,将使用后端默认值并忽略与此设置关联的通用默认值。此设置的明确声明将覆盖通用默认值和后端特定默认值。 | 时间戳提供者 | 微 | 固定 |
| graph.unique-instance-id | 此JanusGraph实例的唯一标识符。在所有同时访问相同存储或索引的实例中,此标识符必须唯一。它通过连接主机名、进程ID和静态(进程范围)计数器自动生成。建议将其留空。 | 字符串 | (无默认值) | 本地 |
| graph.unique-instance-id-suffix | 当设置此项且未设置unique-instance-id时,此JanusGraph实例的唯一标识符将通过将十六进制编码的主机名连接到提供的数字来生成。 | 短整型 | (无默认值) | 本地 |
| graph.use-hostname-for-unique-instance-id | 设置此项后,此JanusGraph的唯一实例标识符将设置为主机名。如果还设置了unique-instance-id-suffix,则标识符将设置为 |
布尔值 | false | 本地 |
graph.script-eval
Gremlin脚本引擎的配置选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| graph.script-eval.enabled | 是否启用Gremlin脚本评估。如果启用,将与JanusGraph实例一起实例化Gremlin脚本引擎,可以使用eval方法评估纯字符串格式的Gremlin脚本。这通常仅在JanusGraph用作嵌入式Java库时有用。 |
布尔值 | false | 可屏蔽 |
| graph.script-eval.engine | 实现GremlinScriptEngine接口的脚本引擎的完整类名。可以使用以下缩写- GremlinLangScriptEngine(仅接受标准Gremlin查询的脚本引擎。不接受其他任何内容,包括lambda函数。我们建议使用此选项,因为它通常更安全,但不能保证它没有安全问题。)- GremlinGroovyScriptEngine(接受任意Groovy代码的脚本引擎。这可能很危险,您应自行承担风险使用。有关潜在安全问题,请参阅https://tinkerpop.apache.org/docs/current/reference/#script-execution。) |
字符串 | GremlinLangScriptEngine | 可屏蔽 |
gremlin
Gremlin配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| gremlin.graph | Gremlin服务器将使用的图工厂的实现 | 字符串 | org.janusgraph.core.JanusGraphFactory | 本地 |
ids
图元素ID的通用配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| ids.block-size | 以这种大小的块全局保留图元素ID。设置过低会导致提交频繁阻塞在缓慢的保留请求上。设置过高会导致当图实例关闭时,已保留但大部分未使用的块中的ID被浪费。 | 整数 | 10000 | GLOBAL_OFFLINE |
| ids.flush | 当为true时,顶点和边在创建时立即分配ID。当为false时,ID仅在事务提交时分配。 | 布尔值 | true | 可屏蔽 |
| ids.num-partitions | 为顶点放置分配的分区块的数量 | 整数 | 10 | 可屏蔽 |
| ids.placement | 顶点放置策略的名称或完整类名 | 字符串 | 简单 | 可屏蔽 |
| ids.renew-percentage | 当最近保留的ID块仅剩其总ID的此百分比(表示为0到1之间的值)时,JanusGraph异步开始保留另一个块。这有助于避免事务提交等待ID保留,即使块大小相对较小。 | 双精度浮点数 | 0.3 | 可屏蔽 |
| ids.renew-timeout | JanusGraph ID池管理器在放弃分配新ID块之前等待的毫秒数 | 持续时间 | 120000 毫秒 | 可屏蔽 |
| ids.store-name | ID KCVStore的名称。IDS_STORE_NAME仅用于与Titan的向后兼容性,不应在正常操作或新图表中明确使用。 | 字符串 | janusgraph_ids | GLOBAL_OFFLINE |
ids.authority
图元素ID保留/分配的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| ids.authority.conflict-avoidance-mode | 此设置有助于共享单个图存储后端的JanusGraph实例在保留ID块时避免争用,从而提高整体吞吐量。 | 冲突避免模式 | 无 | GLOBAL_OFFLINE |
| ids.authority.conflict-avoidance-tag | 此JanusGraph实例在分配ID时使用的冲突避免标签 | 整数 | 0 | 本地 |
| ids.authority.conflict-avoidance-tag-bits | 配置JanusGraph分配的元素ID中保留给冲突避免标签的位数 | 整数 | 4 | 固定 |
| ids.authority.randomized-conflict-avoidance-retries | 系统在放弃并抛出异常之前,尝试使用随机冲突避免标签保留ID块的次数 | 整数 | 5 | 可屏蔽 |
| ids.authority.wait-time | 系统等待存储后端确认ID块保留的毫秒数 | 持续时间 | 300 毫秒 | GLOBAL_OFFLINE |
index *
各个索引后端的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].backend | 用于扩展和优化JanusGraph查询功能的索引后端。此设置是可选的。JanusGraph可以使用多个异构索引后端。因此,此选项可以出现多次,只要“index”和“backend”之间的用户定义名称在所有出现中是唯一的。与存储后端类似,这应设置为JanusGraph标准索引后端的内置缩写名称(缩写:lucene、elasticsearch、es、solr)或自定义/第三方IndexProvider实现的完整包和类名。 | 字符串 | elasticsearch | GLOBAL_OFFLINE |
| index.[X].conf-file | 那些需要/支持单独配置文件的索引后端配置文件的路径 | 字符串 | (无默认值) | 可屏蔽 |
| index.[X].directory | 本地存储索引数据的目录 | 字符串 | (无默认值) | 可屏蔽 |
| index.[X].hostname | 索引后端服务器的主机名或以逗号分隔的主机名列表。这仅适用于某些索引后端,例如 elasticsearch 和 solr。 | 字符串数组 | 127.0.0.1 | 可屏蔽 |
| index.[X].index-name | 如果索引后端需要,则为索引名称 | 字符串 | janusgraph | GLOBAL_OFFLINE |
| index.[X].map-name | 是否将属性键的名称用作索引中的字段名称。必须确保索引属性键名称是有效的字段名称。重命名属性键不会重命名字段,开发人员有责任避免字段冲突。 | 布尔值 | true | 全局 |
| index.[X].max-result-set-size | 如果未指定限制,则返回的最大结果数。对于支持滚动的索引后端,它表示每个批次中的结果数 | 整数 | 50 | 可屏蔽 |
| index.[X].port | 连接到索引后端服务器的端口 | 整数 | (无默认值) | 可屏蔽 |
index.[X].bkd-circle-processor
用于BKD地理形状映射的BKD圆形处理器配置。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].bkd-circle-processor.class | 实现CircleProcessor接口的圆形处理器的完整类名。当使用BKD映射时,该类用于将圆形形状转换为另一种形状。所提供的实现类应具有一个接受配置作为参数(org.janusgraph.diskstorage.configuration.Configuration)的公共构造函数,或者一个无参数的公共构造函数。通常,转换后的形状是多边形。可以使用以下缩写 - noTransformation 不转换圆形的圆形处理器,而是保持圆形形状不变。此实现可能在用户希望在ElasticSearch端而不是应用程序端控制圆形转换逻辑的情况下有用。例如,使用ElasticSearch圆形处理器或任何自定义插件。- fixedErrorDistance 根据index.bkd-circle-processor.fixed中提供的配置将提供的圆形转换为多边形、框或点。处理逻辑类似于ElasticSearch圆形处理器,除了某些将圆形转换为框或点的边缘情况。- dynamicErrorDistance 动态计算误差距离的圆形处理器,具体取决于圆形半径和指定的乘数。误差距离计算公式为log(radius) * multiplier。此类的配置可通过index.bkd-circle-processor.dynamic提供。处理逻辑类似于ElasticSearch圆形处理器,除了某些将圆形转换为框或点的边缘情况。 |
字符串 | 动态误差距离 | 可屏蔽 |
index.[X].bkd-circle-processor.dynamic
用于BKD地理形状映射的Elasticsearch动态圆形处理器配置。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].bkd-circle-processor.dynamic.bounding-box-fallback | 允许返回无法使用指定误差距离转换为正确形状的圆的边界框。如果此配置设置为false,则当圆无法按照误差距离转换为其他形状时,将抛出异常。 |
布尔值 | true | 可屏蔽 |
| index.[X].bkd-circle-processor.dynamic.error-distance-multiplier | 动态误差距离计算公式log(radius) * multiplier中的乘数变量。半径和误差距离以米为单位指定。 |
双精度浮点数 | 2.0 | 可屏蔽 |
index.[X].bkd-circle-processor.fixed
用于BKD地理形状映射的Elasticsearch固定圆形处理器配置。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].bkd-circle-processor.fixed.bounding-box-fallback | 允许返回无法使用指定误差距离转换为正确形状的圆的边界框。如果此配置设置为false,则当圆无法按照误差距离转换为其他形状时,将抛出异常。 |
布尔值 | true | 可屏蔽 |
| index.[X].bkd-circle-processor.fixed.error-distance | 结果内切距离从中心到边与圆半径之间的差值。以米为单位指定。 | 双精度浮点数 | 10.0 | 可屏蔽 |
index.[X].elasticsearch
Elasticsearch 索引配置
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].elasticsearch.bulk-chunk-size-limit-bytes | 批量请求的总大小限制(以字节为单位)。超出此限制的突变批次将被分块到此大小。如果单个批量项目超出此限制,则在提交较小的批量项目后将抛出异常。确保此限制始终小于或等于Elasticsearch服务器上配置的http.max_content_length限制。有关详细信息,请参阅Elasticsearch 文档。 |
整数 | 100000000 | 本地 |
| index.[X].elasticsearch.bulk-refresh | Elasticsearch批量API刷新设置,用于控制此请求所做的更改何时对搜索可见 | 字符串 | false | 可屏蔽 |
| index.[X].elasticsearch.client-keep-alive | 设置保持活动超时(以毫秒为单位) | 长整数 | (无默认值) | GLOBAL_OFFLINE |
| index.[X].elasticsearch.connect-timeout | 设置最大连接超时(以毫秒为单位)。 | 整数 | 1000 | 可屏蔽 |
| index.[X].elasticsearch.enable_index_names_cache | 为生成的索引存储名称启用缓存。建议始终启用索引存储名称缓存,除非每个索引存储有超过50000个索引。 | 布尔值 | true | 可屏蔽 |
| index.[X].elasticsearch.health-request-timeout | 当JanusGraph初始化其ES后端时,JanusGraph最多等待此持续时间以使ES集群健康状况至少达到黄色。此字符串应格式化为自然数后跟小写字母“s”,例如3s或60s。 | 字符串 | 30s | 可屏蔽 |
| index.[X].elasticsearch.interface | 连接到Elasticsearch的接口。以前支持TRANSPORT_CLIENT和NODE,但现在需要迁移到REST_CLIENT。有关更多详细信息,请参阅JanusGraph升级说明。 | 字符串 | REST_CLIENT | 可屏蔽 |
| index.[X].elasticsearch.retry-error-codes | 以逗号分隔的Elasticsearch REST客户端 ResponseException 错误代码列表,用于重试。例如:“408,429” | 字符串数组 | 本地 | |
| index.[X].elasticsearch.retry-initial-wait | 设置指数退避之前的初始重试等待时间(以毫秒为单位)。 | 长整数 | 1 | 本地 |
| index.[X].elasticsearch.retry-limit | 设置已配置可重试错误代码的尝试次数。 | 整数 | 0 | 本地 |
| index.[X].elasticsearch.retry-max-wait | 设置最大重试等待时间(以毫秒为单位)。 | 长整数 | 1000 | 本地 |
| index.[X].elasticsearch.retry_on_conflict | 指定发生冲突时操作应重试多少次。 | 整数 | 0 | 可屏蔽 |
| index.[X].elasticsearch.scroll-keep-alive | elasticsearch应保持滚动上下文活动多长时间(以秒为单位)。 | 整数 | 60 | GLOBAL_OFFLINE |
| index.[X].elasticsearch.setup-max-open-scroll-contexts | JanusGraph是否应将max_open_scroll_context设置为集群的最大值。 | 布尔值 | true | 可屏蔽 |
| index.[X].elasticsearch.socket-timeout | 设置最大套接字超时(以毫秒为单位)。 | 整数 | 30000 | 可屏蔽 |
| index.[X].elasticsearch.use-all-field | JanusGraph是否应添加“all”字段映射。启用后,字段映射将包含一个引用“all”字段的“copy_to”参数。这在Elasticsearch 6.x及更高版本中受支持,并且在Elasticsearch 6.x及更高版本中使用通配符字段时是必需的。 | 布尔值 | true | GLOBAL_OFFLINE |
| index.[X].elasticsearch.use-mapping-for-es7 | 映射类型在ElasticSearch 7中已弃用,JanusGraph默认不会为ElasticSearch 7使用映射类型,但如果您想保留映射类型,可以将此参数设置为true。如果您正在将ElasticSearch从6更新到7并且不想重新索引您的索引,您可以将此参数设置为true,但我们建议重新索引您的索引并且不使用此参数。 | 布尔值 | false | 可屏蔽 |
index.[X].elasticsearch.create
与索引创建相关的设置
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].elasticsearch.create.allow-mapping-update | JanusGraph在注册索引时是否应允许映射更新。仅当use-external-mappings为true时适用。 | 布尔值 | false | 可屏蔽 |
| index.[X].elasticsearch.create.sleep | 在(阻塞)索引创建请求成功完成后到首次使用该索引之间休眠多长时间(以毫秒为单位)。这仅在ES中创建索引时适用,通常仅在JanusGraph首次在ES之上启动时发生。如果JanusGraph配置为使用的索引已存在,则此设置无效。 | 长整数 | 200 | 可屏蔽 |
| index.[X].elasticsearch.create.use-external-mappings | JanusGraph在注册索引时是否应使用外部映射。 | 布尔值 | false | 可屏蔽 |
index.[X].elasticsearch.create.ext
索引创建时应用的任意设置的覆盖。请参阅Elasticsearch。可能的设置完整列表可在Elasticsearch 索引设置中找到。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].elasticsearch.create.ext.number_of_replicas | 每个主分片拥有的副本数量 | 整数 | 1 | 可屏蔽 |
| index.[X].elasticsearch.create.ext.number_of_shards | 索引应该拥有的主分片数量。ES 6的默认值为5,ES 7的默认值为1 | 整数 | (无默认值) | 可屏蔽 |
index.[X].elasticsearch.http.auth
HTTP(S) 认证的配置选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].elasticsearch.http.auth.type | 用于HTTP(S)访问的认证类型。可用选项为NONE、BASIC和CUSTOM。 |
字符串 | 无 | 本地 |
index.[X].elasticsearch.http.auth.basic
HTTP(S) 基本认证的配置选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].elasticsearch.http.auth.basic.password | HTTP(S) 认证的密码。 | 字符串 | 本地 | |
| index.[X].elasticsearch.http.auth.basic.realm | HTTP(S) 认证的领域值。如果为空,则接受任何领域。 | 字符串 | 本地 | |
| index.[X].elasticsearch.http.auth.basic.username | HTTP(S) 认证的用户名。 | 字符串 | 本地 |
index.[X].elasticsearch.http.auth.custom
自定义HTTP(S)认证器的配置选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].elasticsearch.http.auth.custom.authenticator-args | 以逗号分隔的自定义认证器构造函数参数。 | 字符串数组 | 本地 | |
| index.[X].elasticsearch.http.auth.custom.authenticator-class | 认证器完全限定类名。 | 字符串 | 本地 |
index.[X].elasticsearch.ssl
Elasticsearch SSL配置
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].elasticsearch.ssl.allow-self-signed-certificates | 控制是否接受自签名SSL证书。 | 布尔值 | false | 本地 |
| index.[X].elasticsearch.ssl.disable-hostname-verification | 如果设置为true,则禁用SSL主机名验证。主机名验证默认启用。 | 布尔值 | false | 本地 |
| index.[X].elasticsearch.ssl.enabled | 控制是否使用SSL连接到Elasticsearch。 | 布尔值 | false | 本地 |
index.[X].elasticsearch.ssl.keystore
SSL密钥库的配置选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].elasticsearch.ssl.keystore.keypassword | 访问SSL密钥库中密钥的密码。如果此选项不存在,则使用“storepassword”的值。 | 字符串 | 本地 | |
| index.[X].elasticsearch.ssl.keystore.location | 标记SSL密钥库的位置。 | 字符串 | 本地 | |
| index.[X].elasticsearch.ssl.keystore.storepassword | 访问SSL密钥库的密码。 | 字符串 | 本地 |
index.[X].elasticsearch.ssl.truststore
SSL Truststore的配置选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].elasticsearch.ssl.truststore.location | 标记SSL Truststore的位置。 | 字符串 | 本地 | |
| index.[X].elasticsearch.ssl.truststore.password | 访问SSL Truststore的密码。 | 字符串 | 本地 |
index.[X].solr
Solr 索引配置
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| index.[X].solr.configset | 如果指定,则可以为在SolrCloud中创建的每个新集合重复使用相同的solr configSet。 | 字符串 | (无默认值) | 可屏蔽 |
| index.[X].solr.dyn-fields | 是否使用动态字段(它将数据类型附加到字段名称)。如果禁用动态字段,用户必须映射字段名称并在架构中明确定义它们。 | 布尔值 | true | GLOBAL_OFFLINE |
| index.[X].solr.http-compression | 启用/禁用对Solr进行的HTTP连接的压缩。 | 布尔值 | false | 可屏蔽 |
| index.[X].solr.http-connection-timeout | Solr HTTP连接超时。 | 整数 | 5000 | 可屏蔽 |
| index.[X].solr.http-max | 到所有Solr服务器的HTTP连接总数最大值。 | 整数 | 100 | 可屏蔽 |
| index.[X].solr.http-max-per-host | 每个Solr主机的最大HTTP连接数。 | 整数 | 20 | 可屏蔽 |
| index.[X].solr.http-urls | 用于连接到Solr服务器的URL列表(使用LBHttpSolrClient),不要在URL中添加核心或集合名称。 | 字符串数组 | https://:8983/solr | 可屏蔽 |
| index.[X].solr.kerberos-enabled | SOLR实例是否启用Kerberos。 | 布尔值 | false | 可屏蔽 |
| index.[X].solr.key-field-names | 唯一标识Solr中每个文档的字段名称。必须指定为collection=field列表。 |
字符串数组 | (无默认值) | 全局 |
| index.[X].solr.max-shards-per-node | 每个节点的最大分片数。这适用于在SolrCloud操作模式下创建新集合。 | 整数 | 1 | GLOBAL_OFFLINE |
| index.[X].solr.mode | Solr的操作模式,可以是HTTP (http) 或使用SolrCloud (cloud) |
字符串 | 云 | GLOBAL_OFFLINE |
| index.[X].solr.num-shards | 集合的分片数量。这适用于在SolrCloud操作模式下创建新集合。 | 整数 | 1 | GLOBAL_OFFLINE |
| index.[X].solr.replication-factor | 集合的复制因子。这适用于在SolrCloud操作模式下创建新集合。 | 整数 | 1 | GLOBAL_OFFLINE |
| index.[X].solr.ttl_field | Solr集合的TTL字段名称。 | 字符串 | ttl | GLOBAL_OFFLINE |
| index.[X].solr.wait-searcher | 在进行修改时 - 等待索引反映新的修改后再返回。这可能会对性能产生负面影响。 | 布尔值 | false | 本地 |
| index.[X].solr.zookeeper-url | 协调SolrCloud集群的Zookeeper实例的URL | 字符串数组 | localhost:2181 | 可屏蔽 |
log *
JanusGraph日志系统的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| log.[X].backend | 定义要使用的日志后端。保留的快捷方式default可用于使用图的存储后端管理日志。可以通过提供实现org.janusgraph.diskstorage.log.LogManager并在公共构造函数中接受单个参数org.janusgraph.diskstorage.configuration.Configuration的自定义日志实现的完整类路径来指定。 |
字符串 | 默认 | GLOBAL_OFFLINE |
| log.[X].fixed-partition | 即使后端存储已分区,所有日志条目是否都写入一个固定分区。这可能导致负载不平衡,并且只能用于低流量日志 | 布尔值 | false | GLOBAL_OFFLINE |
| log.[X].key-consistent | 是否需要对日志读取和写入存储后端的邮件保持一致性 | 布尔值 | false | 可屏蔽 |
| log.[X].max-partitions | 用于日志记录的最大分区数。设置这么多实际或虚拟分区。必须大于0且为2的幂。 | 整数 | (无默认值) | 固定 |
| log.[X].max-read-time | 尝试从后端读取日志消息的最大时间(以毫秒为单位),超时则失败。 | 持续时间 | 4000 毫秒 | 可屏蔽 |
| log.[X].max-write-time | 尝试将日志消息持久化到后端之前的最长时间(以毫秒为单位),超时则失败。 | 持续时间 | 10000 毫秒 | 可屏蔽 |
| log.[X].num-buckets | 用于负载均衡的日志条目分桶数量 | 整数 | 1 | GLOBAL_OFFLINE |
| log.[X].read-batch-size | 对于批量读取消息的日志实现,一次读取的最大日志消息数量 | 整数 | 1024 | 可屏蔽 |
| log.[X].read-interval | 对于批量读取消息的日志实现,从后端读取消息之间的时间(以毫秒为单位) | 持续时间 | 5000 毫秒 | 可屏蔽 |
| log.[X].read-lag-time | 读取在后端出现的最大时间(以毫秒为单位)。如果写入在此时间内未在存储后端中可见,则日志读取器可能会错过该消息。 | 持续时间 | 500 毫秒 | 可屏蔽 |
| log.[X].read-threads | 用于读取和处理日志消息的线程数 | 整数 | 1 | 可屏蔽 |
| log.[X].send-batch-size | 对于支持批量发送的日志实现,批量发送的最大日志消息数量 | 整数 | 256 | 可屏蔽 |
| log.[X].send-delay | 消息在本地缓冲然后批量发送的最大时间(以毫秒为单位) | 持续时间 | 1000 毫秒 | 可屏蔽 |
| log.[X].ttl | 为所有日志条目设置TTL,这意味着所有添加到此日志的条目将在配置的时间量后过期。要求日志实现支持TTL。 | 持续时间 | (无默认值) | 全局 |
指标
指标报告的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| metrics.enabled | 是否在后端启用基本计时和操作计数监控 | 布尔值 | false | 可屏蔽 |
| metrics.merge-stores | 是否聚合边缘存储、顶点索引、边缘索引和ID存储的测量值 | 布尔值 | true | 可屏蔽 |
| metrics.prefix | JanusGraph报告的指标的默认名称前缀。 | 字符串 | org.janusgraph | 可屏蔽 |
metrics.console
控制台指标报告的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| metrics.console.interval | Metrics报告打印到控制台之间的时间间隔,以毫秒为单位 | 持续时间 | (无默认值) | 可屏蔽 |
metrics.csv
CSV文件指标报告的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| metrics.csv.directory | 指标 CSV 输出目录 | 字符串 | (无默认值) | 可屏蔽 |
| metrics.csv.interval | 包含Metrics数据的CSV文件转储之间的时间间隔,以毫秒为单位 | 持续时间 | (无默认值) | 可屏蔽 |
metrics.graphite
通过Graphite报告指标的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| metrics.graphite.hostname | 接收Graphite纯文本协议指标数据的主机名 | 字符串 | (无默认值) | 可屏蔽 |
| metrics.graphite.interval | 发送Metrics数据之间等待的毫秒数 | 持续时间 | (无默认值) | 可屏蔽 |
| metrics.graphite.port | Graphite数据发送到的端口 | 整数 | 2003 | 可屏蔽 |
| metrics.graphite.prefix | 报告指标的Graphite特定前缀 | 字符串 | (无默认值) | 可屏蔽 |
metrics.jmx
通过 JMX 报告指标的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| metrics.jmx.agentid | Metrics使用的JMX agentId | 字符串 | (无默认值) | 可屏蔽 |
| metrics.jmx.domain | Metrics报告的JMX域 | 字符串 | (无默认值) | 可屏蔽 |
| metrics.jmx.enabled | 是否通过JMX MBean报告Metrics | 布尔值 | false | 可屏蔽 |
metrics.slf4j
通过slf4j报告指标的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| metrics.slf4j.interval | 通过Slf4j记录Metrics数据报告之间的时间间隔,以毫秒为单位 | 持续时间 | (无默认值) | 可屏蔽 |
| metrics.slf4j.logger | Metrics将通过Slf4j报告的Logger的完整名称 | 字符串 | (无默认值) | 可屏蔽 |
查询
查询处理的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| query.fast-property | 是否在首次单顶点属性访问时预取所有属性。这可以消除后续同一顶点属性访问的后端调用,但代价是立即检索所有属性。对于具有许多属性的顶点,这可能代价高昂。 此设置适用于直接顶点属性访问(例如 vertex.properties("foo")),但不适用于vertex.properties("foo","bar"),因为后一种情况不是单一属性访问)。此设置不适用于以下Gremlin步骤: valueMap、propertyMap、elementMap、properties、values(应使用配置选项query.batch.properties-mode来配置它们的行为)。当 true时,此设置会覆盖query.batch.has-step-mode为all_properties,除非使用none模式。 |
布尔值 | true | 可屏蔽 |
| query.force-index | 如果无法使用索引回答图查询,JanusGraph是否应抛出异常。这样做会限制JanusGraph图查询的功能,但可确保在大图上避免缓慢的图查询。建议在生产环境中使用JanusGraph。 | 布尔值 | false | 可屏蔽 |
| query.hard-max-limit | 如果禁用智能限制且查询中未给出限制,查询优化器会根据可能较大的结果集添加限制。其工作方式与智能限制相同,只是硬最大限制通常是一个大数字。默认值为Integer.MAX_VALUE,这实际上禁用了此行为。当启用智能限制时,此选项不生效。 | 整数 | 2147483647 | 可屏蔽 |
| query.ignore-unknown-index-key | 是否忽略用户提供索引查询中遇到的未定义类型 | 布尔值 | false | 可屏蔽 |
| query.index-select-strategy | 索引选择策略的名称或完整类名。可以使用以下缩写 - brute-force(尝试所有索引候选组合并选择最佳组合)- approximate(使用贪婪算法选择近似最佳索引候选)- threshold-based(使用index-select-threshold在运行时选择approximate或threshold-based策略) |
字符串 | 基于阈值 | 可屏蔽 |
| query.index-select-threshold | 用于决定是使用暴力枚举算法还是快速近似算法选择合适索引的阈值。为查询选择最佳索引是一个NP完全的集合覆盖问题。当合适索引候选的数量不大于阈值时,JanusGraph使用指数时间复杂度的暴力搜索来确保选择最佳索引组合。仅当选择threshold-based索引选择策略时有效。 |
整数 | 10 | 可屏蔽 |
| query.optimizer-backend-access | 是否允许优化器在优化阶段触发后端查询。允许这些查询将使优化器有机会找到更有效的执行计划,但也会增加优化开销。 | 布尔值 | true | 可屏蔽 |
| query.smart-limit | 查询优化器是否应尝试为查询猜测一个智能限制,以确保在可能的大结果集面前的响应性。如果启用此选项,这些结果集将逐步加载。 | 布尔值 | false | 可屏蔽 |
query.batch
配置批处理查询优化行为的选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| query.batch.drop-step-mode | drop() 步骤的批处理模式。仅当query.batch.enabled为true时使用。支持的模式 - all - 批量删除所有顶点。- none - 跳过删除批处理优化。 |
字符串 | 所有 | 可屏蔽 |
| query.batch.enabled | 遍历查询在对存储后端执行时是否应进行批处理。如果对后端存在非平凡的延迟,这可以显著提高性能。如果为false,则query.batch命名空间下的所有其他配置选项都将被忽略。 |
布尔值 | true | 可屏蔽 |
| query.batch.has-step-mode | has 步骤的属性预取模式。仅当query.batch.enabled为true时使用。支持的模式 - all_properties - 在任何属性访问时预取所有顶点属性(在单个切片查询中获取所有顶点属性)- required_properties_only - 预取整个可折叠has步骤链所需的顶点属性(每个所需属性使用单独的切片查询)- required_and_next_properties - 预取与required_properties_only模式相同的属性,但也预取在下一个属性访问步骤中可能需要的属性,例如 values、properties、valueMap、elementMap或propertyMap。如果下一个步骤不是这些属性访问步骤之一,则此模式的行为与 required_properties_only相同。如果下一个步骤是具有有限属性范围的属性访问步骤之一,则这些属性将 在同一个多查询中预取。 如果下一个步骤是属性键范围未指定的属性访问步骤之一,则此模式 行为与 all_properties相同。- required_and_next_properties_or_all - 预取与required_and_next_properties相同的属性,但如果下一个步骤不是values、properties、valueMap、elementMap或propertyMap,则行为与all_properties相同。- none - 跳过has步骤批处理属性预取优化。 |
字符串 | 必需和下一个属性 | 可屏蔽 |
| query.batch.label-step-mode | label() 步骤的标签预取模式。仅当query.batch.enabled为true时使用。支持的模式 - all - 批量预取所有顶点的标签。- none - 跳过顶点标签预取优化。 |
字符串 | 所有 | 可屏蔽 |
| query.batch.limited | 配置对存储后端查询的最大批处理大小。这可用于确保在批处理往往变得非常大时的响应性。使用的批处理大小等同于前一个barrier()步骤的屏障大小。如果一个步骤没有前一个barrier(),将插入TinkerPop的默认屏障。此选项仅在query.batch.enabled为true时生效。 |
布尔值 | true | 可屏蔽 |
| query.batch.limited-size | 查询的默认批处理大小(barrier() 步长)。此大小仅适用于LazyBarrierStrategy策略未应用barrier步长且用户也未应用barrier步长的情况。此选项仅在query.batch.limited为true时使用。请注意,值2147483647被视为无限制。 | 整数 | 2500 | 可屏蔽 |
| query.batch.properties-mode | values、properties、valueMap、propertyMap、elementMap 步骤的属性预取模式。仅当query.batch.enabled为true时使用。支持的模式 - all_properties - 在非单一属性访问时预取所有顶点属性(在单个切片查询中获取所有顶点属性)。在单一属性访问时,此模式的行为与required_properties_only模式相同。- required_properties_only - 仅预取必要的顶点属性(每个所需属性使用单独的切片查询)- none - 跳过顶点属性预取优化。 |
字符串 | 仅必需属性 | 可屏蔽 |
| query.batch.repeat-step-mode | repeat 步骤的批处理模式。仅当query.batch.enabled为true时使用。这些模式控制了当具有批处理支持的子步骤放置在 repeat、emit或until遍历的开头时,它们的行为方式。支持的模式 - closest_repeat_parent - 子起始步骤仅从最近的repeat步骤父级接收用于批处理的顶点。- all_repeat_parents - 子起始步骤从所有repeat步骤父级接收用于批处理的顶点。- starts_only_of_all_repeat_parents - 子起始步骤从最近的repeat步骤父级接收用于批处理的顶点(包括父起始和后续迭代),并且也从所有repeat步骤父级接收用于父起始的顶点。 |
字符串 | 所有重复父 | 可屏蔽 |
架构
模式相关的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| schema.constraints | 配置此图使用的架构约束。如果配置“schema.constraints”设置为“true”且“schema.default”设置为“none”,则会抛出“IllegalArgumentException”表示架构约束违规。如果“schema.constraints”设置为“true”且“schema.default”未设置为“none”,则会自动创建架构约束,如配置选项“schema.default”中所述。如果“schema.constraints”设置为“false”(默认值),则不应用任何架构约束。 | 布尔值 | false | GLOBAL_OFFLINE |
| schema.default | 配置此图使用的DefaultSchemaMaker。可以使用以下缩写之一 - default(一个与blueprints兼容的架构生成器,具有MULTI边标签和SINGLE属性键),- tp3(与default相同,但具有LIST属性键),- none(禁用自动架构创建)- ignore-prop(与none相同,但简单地忽略未知属性而不是抛出异常)- 或自定义/第三方实现接口 org.janusgraph.core.schema.DefaultSchemaMaker的完整包和类名 |
字符串 | 默认 | 可屏蔽 |
| schema.logging | 控制是否为模式创建者启用日志记录。这仅在您将schema.default设置为default或ignore-prop时生效。对于default模式创建者,在自动创建模式类型之前会记录警告消息。对于ignore-prop模式创建者,在忽略未知属性之前会记录警告消息。 |
布尔值 | false | 可屏蔽 |
schema.init
启动时模式初始化的配置选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| schema.init.drop-before-startup | 在JanusGraph模式初始化之前,删除包含图数据的整个模式。请注意,无论选择的初始化策略如何,即使schema.init.strategy设置为none,模式也将被删除。 |
布尔值 | false | 本地 |
| schema.init.strategy | 指定启动JanusGraph之前模式初始化的策略。您必须提供实现SchemaInitStrategy接口且具有无参数构造函数的类的完整类路径。以下快捷方式也可用 - none - 跳过模式初始化。- json - 通过提供的JSON文件或JSON字符串进行模式初始化。 |
字符串 | 无 | 本地 |
schema.init.json
JSON模式初始化策略的选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| schema.init.json.await-index-status-timeout | 等待索引状态操作的超时时间,以毫秒为单位。如果状态等待超时,则在模式初始化过程中将抛出异常。 | 长整数 | 180000 | 本地 |
| schema.init.json.file | JSON格式的模式定义文件的路径。 | 字符串 | (无默认值) | 本地 |
| schema.init.json.force-close-other-instances | 在模式初始化之前强制关闭其他 JanusGraph 实例,无论它们是否处于活动状态。这是一个危险的操作。此选项旨在帮助那些难以处理僵尸 JanusGraph 实例的用户初始化模式。除非您知道自己在做什么,否则不建议使用此选项。建议检查 graph.unique-instance-id 和 graph.replace-instance-if-exists 选项,以避免在集群中创建僵尸实例。 |
布尔值 | false | 本地 |
| schema.init.json.indices-activation | 指标激活类型 - reindex_and_enable_updated_only - 将触发任何更新索引的重新索引过程。之后,所有更新索引都将启用。- reindex_and_enable_non_enabled - 将触发任何未启用索引(包括以前创建的索引)的重新索引过程。重新索引后,所有索引都将启用。- skip_activation - 跳过任何更新索引的重新索引过程。- force_enable_updated_only - 强制启用所有更新索引,而不运行任何重新索引过程(此类索引的先前数据可能不可用)。- force_enable_non_enabled - 强制启用所有索引(包括以前创建的索引),而不运行任何重新索引过程(此类索引的先前数据可能不可用)。 |
字符串 | 重新索引并启用未启用 | 本地 |
| schema.init.json.skip-elements | 跳过创建 VertexLabel、EdgeLabel 和 PropertyKey。 | 布尔值 | false | 本地 |
| schema.init.json.skip-indices | 跳过索引创建。 | 布尔值 | false | 本地 |
| schema.init.json.string | JSON格式的模式定义字符串。如果同时使用file和string,则此选项优先。 |
字符串 | (无默认值) | 本地 |
存储
存储后端的配置选项。某些选项仅适用于特定后端。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.backend | JanusGraph使用的主要持久化提供者。这是必需的。应设置为JanusGraph标准存储后端的内置缩写名称(缩写:berkeleyje、cql、hbase、inmemory、scylla)或自定义/第三方StoreManager实现的完整包和类名。 | 字符串 | (无默认值) | 本地 |
| storage.batch-loading | 是否启用批量加载到存储后端 | 布尔值 | false | 本地 |
| storage.buffer-size | 突变持久化的批次大小 | 整数 | 1024 | 可屏蔽 |
| storage.conf-file | 那些需要/支持单个单独配置文件的存储后端配置文件的路径。 | 字符串 | (无默认值) | 本地 |
| storage.connection-timeout | 连接到远程数据库实例时的默认超时时间(以毫秒为单位) | 持续时间 | 10000 毫秒 | 可屏蔽 |
| storage.directory | 那些需要本地存储的存储后端的存储目录。 | 字符串 | (无默认值) | 本地 |
| storage.drop-on-clear | 清除存储时是删除图数据库(true)还是删除行(false)。请注意,某些后端在清除存储时总是删除图数据库。另请注意,在清除存储时总是删除索引。 | 布尔值 | true | 可屏蔽 |
| storage.hostname | 存储后端服务器的主机名或以逗号分隔的主机名列表。这仅适用于某些存储后端,例如cassandra和hbase。 | 字符串数组 | 127.0.0.1 | 本地 |
| storage.num-mutations-parallel-threshold | 此参数确定事务在聚合过程中应用并行处理之前必须具有的最小突变数。利用并行处理可以缩短涉及大量突变的事务的提交时间。但是,不建议将阈值设置得过低(例如,0或1),因为并行同步存在开销。在大事务的上下文中,这种开销可以更有效地抵消。 | 整数 | 100 | 可屏蔽 |
| storage.page-size | JanusGraph将可能从分布式存储后端返回大量结果的请求分解为一系列对小块/页面结果的请求,每个块最多包含这么多元素。 | 整数 | 100 | 可屏蔽 |
| storage.parallel-backend-ops | JanusGraph是否应尝试并行化存储操作 | 布尔值 | true | 可屏蔽 |
| storage.password | 用于后端认证的密码 | 字符串 | (无默认值) | 本地 |
| storage.port | 连接到存储后端服务器的端口。对于HBase,它是Zookeeper端口。 | 整数 | (无默认值) | 本地 |
| storage.read-only | 只读数据库 | 布尔值 | false | 本地 |
| storage.read-time | 等待后端读取操作成功完成的最大时间(以毫秒为单位)。如果后端读取操作暂时失败,JanusGraph将指数退避并重试该操作,直到等待时间耗尽。 | 持续时间 | 10000 毫秒 | 可屏蔽 |
| storage.root | 那些需要本地存储的存储后端的存储根目录。如果您不提供storage.directory,并且提供graph.graphname,那么您的数据将存储在等同于 |
字符串 | (无默认值) | 本地 |
| storage.setup-wait | JanusGraph在服务器模式下运行时,后端管理器等待存储后端可用的时间(以毫秒为单位) | 持续时间 | 60000 毫秒 | 可屏蔽 |
| storage.transactions | 在支持事务的存储后端上启用事务 | 布尔值 | true | 可屏蔽 |
| storage.username | 用于后端认证的用户名 | 字符串 | (无默认值) | 本地 |
| storage.write-time | 等待后端写入操作成功完成的最大时间(以毫秒为单位)。如果后端写入操作暂时失败,JanusGraph将指数退避并重试该操作,直到等待时间耗尽。 | 持续时间 | 100000 毫秒 | 可屏蔽 |
storage.berkeleyje
BerkeleyDB JE 配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.berkeleyje.cache-mode | 可以指定的模式,用于控制JE内存缓存中记录的缓存 | 字符串 | 默认 | 可屏蔽 |
| storage.berkeleyje.cache-percentage | 为BerkeleyJE缓存保留的JVM堆百分比 | 整数 | 65 | 可屏蔽 |
| storage.berkeleyje.isolation-level | 事务使用的隔离级别 | 字符串 | 可重复读 | 可屏蔽 |
| storage.berkeleyje.lock-mode | 读操作使用的BDB记录锁定模式 | 字符串 | LockMode.DEFAULT | 可屏蔽 |
| storage.berkeleyje.shared-cache | 如果为 true,则所有图实例都使用共享缓存 | 布尔值 | true | 可屏蔽 |
storage.berkeleyje.ext
EnvironmentConfig创建时应用的任意设置的覆盖。可能的设置完整列表可在Java类com.sleepycat.je.EnvironmentConfig中找到。所有配置值都应指定为String,并且格式应与以下文档中指定的一致。请注意,为了兼容性,允许使用-字符代替.作为配置键。所有破折号在将这些键传递给EnvironmentConfig时都将替换为点。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.berkeleyje.ext.je-lock-timeout | 锁超时配置。0完全禁用锁超时。要通过此配置设置锁超时,需要使用字符串格式的时间表示。例如:500 ms,5 min等。 |
|||
| 有关值约束的信息,请参阅官方sleepycat 文档。 | ||||
请注意,此选项可以指定为storage.berkeleyje.ext.je.lock.timeout,它将与此配置选项相同。 |
字符串 | (无默认值) | 可屏蔽 |
storage.cql
CQL存储后端选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.cql.atomic-batch-mutate | true表示使用Cassandra原子批量突变,false表示使用非原子批量突变 | 布尔值 | false | 可屏蔽 |
| storage.cql.back-pressure-class | 要使用的QueryBackPressure实现。实现QueryBackPressure的类的完整名称,该类具有带Configuration janusGraphConfiguration和Integer backPressureLimit参数的公共构造函数(首选构造函数),或带Configuration janusGraphConfiguration参数的公共构造函数(次选构造函数),或无参数的公共构造函数。其他可接受的选项是semaphore - 基于公平信号量的背压实现,限制大小为back-pressure-limit(首选实现);semaphoreReleaseProtected - 基于公平信号量的背压实现,限制大小为back-pressure-limit,并具有受保护的释放逻辑(用于测试);passAll - 关闭背压(建议在使用此实现时针对正在进行的工作负载调整CQL驱动程序); |
字符串 | 信号量 | 可屏蔽 |
| storage.cql.back-pressure-limit | CQL驱动程序允许处理的最大并发请求数。如果未提供值或将值设置为0,则将根据CQL驱动程序会话提供的参数使用公式[advanced.connection.max-requests-per-connection * advanced.connection.pool.local.size * available_nodes_amount]计算值。不建议使用高于此限制的任何值,因为它可能导致CQL驱动程序过载,但建议使用较低的值以在压力下保持驱动程序健康。在使用远程节点连接的情况下,更大的值也可能与提高并行性有关。 |
整数 | (无默认值) | 可屏蔽 |
| storage.cql.batch-statement-size | 每个批处理中的语句数量 | 整数 | 20 | 可屏蔽 |
| storage.cql.compaction-strategy-class | 用于JanusGraph表的压缩策略 | 字符串 | (无默认值) | 固定 |
| storage.cql.compaction-strategy-options | 压缩策略选项。此列表被解释为映射。它必须具有偶数个元素,形式为 [key,val,key,val,...]。 | 字符串数组 | (无默认值) | 固定 |
| storage.cql.compression | 存储后端在存储数据时是否应使用压缩 | 布尔值 | true | 固定 |
| storage.cql.compression-block-size | 压缩块的大小,以千字节为单位 | 整数 | 64 | 固定 |
| storage.cql.compression-type | JanusGraph在创建列族时使用的压缩类值。它接受Cassandra压缩类选项允许的任何值。将其设置为未设置以禁用JanusGraph创建的CF上的压缩。 | 字符串 | LZ4Compressor | 可屏蔽 |
| storage.cql.gc-grace-seconds | 在墓碑(删除标记)有资格进行垃圾回收之前的秒数。 | 整数 | (无默认值) | 固定 |
| storage.cql.heartbeat-interval | 连接心跳间隔,以毫秒为单位。 | 长整数 | (无默认值) | 可屏蔽 |
| storage.cql.heartbeat-timeout | 驱动程序等待心跳响应的时间(以毫秒为单位)。 | 长整数 | (无默认值) | 可屏蔽 |
| storage.cql.init-wait-time | 创建每个keyspace/表后休眠的毫秒数,仅当表创建是异步时才需要,例如Amazon Keyspace | 整数 | (无默认值) | 本地 |
| storage.cql.keyspace | JanusGraph的键空间名称。如果不存在,则将创建它。 | 字符串 | janusgraph | 本地 |
| storage.cql.local-datacenter | 本地或最近的Cassandra数据中心名称。此值将传递给CqlSessionBuilder.withLocalDatacenter。 | 字符串 | 数据中心1 | 可屏蔽 |
| storage.cql.local-max-connections-per-host | 本地数据中心每个主机可以创建的最大连接数 | 整数 | 1 | 可屏蔽 |
| storage.cql.max-requests-per-connection | 单个连接上可并发执行的最大请求数。 | 整数 | 1024 | 可屏蔽 |
| storage.cql.metadata-schema-enabled | 是否启用模式元数据。 | 布尔值 | (无默认值) | 可屏蔽 |
| storage.cql.metadata-token-map-enabled | 是否启用令牌元数据。如果禁用,则必须提供partitioner-name。 | 布尔值 | (无默认值) | 可屏蔽 |
| storage.cql.only-use-local-consistency-for-system-operations | true 表示防止任何系统查询使用 QUORUM 一致性,并始终使用 LOCAL_QUORUM 代替 | 布尔值 | false | 可屏蔽 |
| storage.cql.partitioner-name | Cassandra集群分区器的名称。如果未提供,客户端将检索它。如果提供,它必须与集群分区器名称匹配。它可以是完整的类名,例如org.apache.cassandra.dht.ByteOrderedPartitioner,也可以是简单名称,例如ByteOrderedPartitioner |
字符串 | (无默认值) | 可屏蔽 |
| storage.cql.protocol-version | 用于连接Cassandra数据库的协议版本。如果未提供值,则驱动程序将与服务器协商。 | 整数 | 0 | 本地 |
| storage.cql.read-consistency-level | 对Cassandra进行读取操作的一致性级别 | 字符串 | 法定人数 | 可屏蔽 |
| storage.cql.remote-max-connections-per-host | 远程数据中心每个主机可以创建的最大连接数 | 整数 | 1 | 可屏蔽 |
| storage.cql.replication-factor | 应保留的数据副本数(包括原始副本)。当storage.cql.replication-strategy-class设置为SimpleStrategy时使用此选项。 | 整数 | 1 | GLOBAL_OFFLINE |
| storage.cql.replication-strategy-class | 用于JanusGraph键空间的复制策略。可用策略:SimpleStrategy、NetworkTopologyStrategy。 | 字符串 | SimpleStrategy | 固定 |
| storage.cql.replication-strategy-options | 复制策略选项,例如每个数据中心的因子或副本数。此列表被解释为映射。它必须具有偶数个元素,形式为 [key,val,key,val,...]。当storage.cql.replication-strategy-class设置为NetworkTopologyStrategy时使用此选项。可以使用replication_factor指定复制因子。 |
字符串数组 | (无默认值) | 固定 |
| storage.cql.request-timeout | CQL请求的超时时间(以毫秒为单位)。有关详细信息,请参阅DataStax Java驱动程序选项basic.request.timeout。 |
长整数 | 12000 | 可屏蔽 |
| storage.cql.session-leak-threshold | 在给定VM中允许共存的活动会话的最大数量,直到每个新会话开始记录警告。如果该值小于或等于0,则禁用该功能:不会发出警告。有关详细信息,请参阅DataStax Java驱动程序选项advanced.session-leak.threshold。 |
整数 | (无默认值) | 可屏蔽 |
| storage.cql.session-name | Cassandra会话的默认名称 | 字符串 | JanusGraph会话 | 可屏蔽 |
| storage.cql.speculative-retry | 推测重试策略。以下之一:NONE、ALWAYS、 |
字符串 | (无默认值) | 固定 |
| storage.cql.ttl-enabled | 是否启用TTL。如果存储不支持TTL,则必须关闭。例如,Amazon Keyspace默认不支持TTL,除非另行启用。 | 布尔值 | true | 本地 |
| storage.cql.use-external-locking | true表示阻止JanusGraph使用其自己的锁定机制。将其设置为true可以消除在使用JanusGraph外部锁定机制时的冗余检查。请注意,当use-external-locking设置为true时,如果未能采用一种在事务开始时锁定所有参与事务的列并在事务结束时解锁它们的锁定算法,将导致“读未提交”事务隔离级别保证。如果在没有适当的外部锁定机制的情况下设置为true,则应预期出现脏/不可重复/幻读等副作用。 | 布尔值 | false | 可屏蔽 |
| storage.cql.write-consistency-level | 对Cassandra进行写入操作的一致性级别 | 字符串 | 法定人数 | 可屏蔽 |
storage.cql.executor-service
用于处理CQL查询反序列化的CQL执行器服务的配置选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.cql.executor-service.class | 要使用的ExecutorService实现。实现ExecutorService的类的完整名称,该类具有带ExecutorServiceConfiguration参数的公共构造函数(首选构造函数)或无参数的公共构造函数。其他可接受的选项是:fixed - 大小为core-pool-size的固定线程池;cached - 缓存线程池; |
字符串 | 固定 | 本地 |
| storage.cql.executor-service.core-pool-size | 执行器服务的核心池大小。如果使用自定义执行器服务,可能会被忽略(取决于执行器服务的实现)。如果未设置或设置为-1,核心池大小将等于处理器数量乘以2。 | 整数 | (无默认值) | 本地 |
| storage.cql.executor-service.keep-alive-time | 执行器服务的存活时间(以毫秒为单位)。当线程数大于core-pool-size时,这是多余的空闲线程在终止之前等待新任务的最长时间。对于fixed执行器服务忽略,如果使用自定义执行器服务,可能会忽略(取决于执行器服务的实现)。 |
长整数 | 60000 | 本地 |
| storage.cql.executor-service.max-pool-size | 执行器服务的最大池大小。对于fixed和cached执行器服务忽略。如果使用自定义执行器服务,可能会忽略(取决于执行器服务的实现)。 |
整数 | 2147483647 | 本地 |
| storage.cql.executor-service.max-shutdown-wait-time | 执行器服务线程在关闭期间完成的最大关闭等待时间(以毫秒为单位)。在此时间之后,线程将被中断(发出中断信号),而无需任何额外的等待时间。 | 长整数 | 60000 | 本地 |
storage.cql.grouping
控制CQL查询分组的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.cql.grouping.keys-allowed | 如果为true,则允许通过IN运算符根据提供的键分组策略将多个分区键分组到单个CQL查询中(通常根据相同的令牌范围或相同的副本集进行分组,但也可能涉及自定义实现的shard ID)。请注意,任何使用超过1个键分组的CQL查询都将需要为任何获取的列返回一个行键。 此选项在希望发送较少CQL查询以进行读取请求,但代价是获取更多数据(每个获取的值都有分区键)时非常有用。 请注意,不同的存储后端可能以不同的方式执行多分区 IN查询(包括但不限于如何发送不同一致性级别的校验和查询、处理节点CPU使用率、磁盘访问模式等)。因此,需要进行适当的基准测试,以确定键分组是否在具体情况下有用。此选项只能对支持 PER PARTITION LIMIT的存储后端启用。因此,此功能不能与Amazon Keyspaces一起使用,因为它不支持PER PARTITION LIMIT。如果此选项为 false,则即使查询来自同一令牌范围的多个键,每个分区键也将以单独的异步CQL查询执行。请注意,默认的分组策略不考虑分片。因此,对于ScyllaDB存储后端,这可能效率低下。ScyllaDB特定的键分组策略应在issue #232解决后实现。 |
布尔值 | false | 可屏蔽 |
| storage.cql.grouping.keys-class | 键分组执行策略的完整类路径。该类应实现org.janusgraph.diskstorage.cql.strategy.GroupedExecutionStrategy接口,并具有两个参数的公共构造函数org.janusgraph.diskstorage.configuration.Configuration和org.janusgraph.diskstorage.cql.CQLStoreManager。可用的快捷方式 - tokenRangeAware - 将属于同一令牌范围的分区键分组。请注意,此策略不考虑分片。因此,对于ScyllaDB存储后端,这可能效率低下。- replicasAware - 将属于同一副本集(相同节点)的分区键分组。请注意,此策略不考虑分片。因此,对于ScyllaDB存储后端,这可能效率低下。通常, tokenRangeAware分组策略提供更多的小组,每个小组包含在磁盘上彼此靠近存储的键,在某些情况下可能会减少磁盘寻道。然而,replicasAware分组策略按副本集分组键,这通常意味着使用更少更大的组(即更少的CQL请求)。此选项仅在 storage.cql.grouping.keys-allowed为true时生效。 |
字符串 | 副本感知 | 可屏蔽 |
| storage.cql.grouping.keys-limit | 可以组合到单个CQL查询中的最大键数。如果查询的键数更多,它们将被分组到单独的CQL查询中。 请注意,对于ScyllaDB,此选项不应超过每个查询中不同聚簇键限制的最大数量,该数量可以通过ScyllaDB配置选项 max-partition-key-restrictions-per-query(https://enterprise.docs.scylladb.com/branch-2022.2/faq.html#how-can-i-change-the-maximum-number-of-in-restrictions)更改。对于AstraDB,此限制设置为20,通常是固定的。但是,您可以通过partition_keys_in_select_failure_threshold和in_select_cartesian_product_failure_threshold阈值配置向客户支持咨询是否可以更改默认阈值到您所需的配置(https://docs.datastax.com/en/astra-serverless/docs/plan/planning.html#_cassandra_yaml)。确保您的存储后端允许的IN选择器数量多于通过此配置设置的数量。 此选项仅在 storage.cql.grouping.keys-allowed为true时生效。 |
整数 | 20 | 可屏蔽 |
| storage.cql.grouping.keys-min | 要考虑分组的最小键数。对于键数少于此数量的任何多键查询,将跳过分组(即,在这种情况下,将为每个键执行单独的CQL查询)。 通常此配置应始终设置为 2。仅在需要对具有更多键的查询不进行分组,而是单独执行以提高并行性但以网络开销为代价的情况下增加此值。此选项仅在 storage.cql.grouping.keys-allowed为true时生效。 |
整数 | 2 | 可屏蔽 |
| storage.cql.grouping.slice-allowed | 如果为true,则允许将多个可以作为非范围查询执行的Slice查询(即,直接相等操作)通过IN运算符分组到单个CQL查询中。请注意,目前只允许将Cardinality.SINGLE属性的获取操作作为非范围查询执行(边缘获取或Cardinality SET或LIST的属性不会分组在一起)。如果此选项为 false,则即使允许分组,每个Slice查询也将以单独的异步CQL查询执行。 |
布尔值 | true | 可屏蔽 |
| storage.cql.grouping.slice-limit | 单个CQL查询中分组在一起的slice查询的最大数量。 请注意,对于ScyllaDB,此选项不应超过每个查询中不同聚簇键限制的最大数量,该数量可以通过ScyllaDB配置选项 max-partition-key-restrictions-per-query(https://enterprise.docs.scylladb.com/branch-2022.2/faq.html#how-can-i-change-the-maximum-number-of-in-restrictions)更改。对于AstraDB,此限制设置为20,通常是固定的。但是,您可以通过partition_keys_in_select_failure_threshold和in_select_cartesian_product_failure_threshold阈值配置向客户支持咨询是否可以更改默认阈值到您所需的配置(https://docs.datastax.com/en/astra-serverless/docs/plan/planning.html#_cassandra_yaml)。确保您的存储后端允许的IN选择器数量多于通过此配置设置的数量。 此选项仅当 storage.cql.grouping.slice-allowed为true时使用。 |
整数 | 20 | 可屏蔽 |
storage.cql.internal
内部DataStax驱动的高级配置。请注意,所有可用配置将按顺序组合。未指定的配置将被跳过。默认情况下,只启用基本配置(优先级最低。这意味着您可以使用任何其他配置类型覆盖基本编程配置中使用的任何配置)。配置按以下顺序组合(按优先级降序排序):file-configuration、resource-configuration、string-configuration、url-configuration、base-programmatic-configuration(由base-programmatic-configuration-enabled属性控制)。优先级较高的配置始终覆盖优先级较低的配置。例如,如果相同配置参数在file-configuration和string-configuration中都使用,则使用file-configuration中的配置参数,并忽略string-configuration中的配置参数。请在此处查看可用的配置选项和配置结构:https://docs.datastax.com/en/developer/java-driver/4.13/manual/core/configuration/reference/
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.cql.internal.base-programmatic-configuration-enabled | 是否使用JanusGraph属性提供的主编程配置。我们不建议禁用此属性,除非您想禁用所有storage.cql属性的使用并使用默认配置或其他配置。如果编程配置选项缺少一些重要的配置选项,您可以通过其他配置类型提供这些缺失的配置,这些配置将与编程配置一起应用(请参阅本节中的其他配置类型)。对于大多数用例,此选项应始终为true。使用未指定的配置选项时,JanusGraph的行为可能不可预测。 |
布尔值 | true | 可屏蔽 |
| storage.cql.internal.file-configuration | 带有DataStax配置的文件的路径。 | 字符串 | (无默认值) | 本地 |
| storage.cql.internal.resource-configuration | 带有DataStax配置的类路径资源。 | 字符串 | (无默认值) | 可屏蔽 |
| storage.cql.internal.string-configuration | 表示DataStax配置的字符串。 | 字符串 | (无默认值) | 可屏蔽 |
| storage.cql.internal.url-configuration | 获取DataStax配置的URL。 | 字符串 | (无默认值) | 可屏蔽 |
storage.cql.metrics
CQL指标的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.cql.metrics.cql-messages-delay-refresh-interval | 请求的百分位数据刷新间隔(以毫秒为单位)。如果启用了“cql-messages”节点指标,则使用此选项。请参阅DataStax驱动程序配置选项advanced.metrics.node.cql-messages.refresh-interval |
长整数 | (无默认值) | 本地 |
| storage.cql.metrics.cql-messages-highest-latency | 我们期望记录的请求的最大延迟,以毫秒为单位。如果启用了“cql-messages”节点指标,则使用此选项。请参阅 DataStax 驱动程序配置选项 advanced.metrics.node.cql-messages.highest-latency |
长整数 | (无默认值) | 本地 |
| storage.cql.metrics.cql-messages-significant-digits | 内部结构将为请求维护值分辨率和分离的有效十进制位数。此值必须介于 0 到 5 之间。如果启用了“cql-messages”节点指标,则使用此选项。请参阅 DataStax 驱动程序配置选项 advanced.metrics.node.cql-messages.significant-digits |
整数 | (无默认值) | 本地 |
| storage.cql.metrics.cql-requests-highest-latency | 我们期望记录的请求的最大延迟,以毫秒为单位。如果启用了“cql-requests”会话指标,则使用此选项。请参阅 DataStax 驱动程序配置选项 advanced.metrics.session.cql-requests.highest-latency |
长整数 | (无默认值) | 本地 |
| storage.cql.metrics.cql-requests-refresh-interval | 请求的百分位数数据刷新间隔,以毫秒为单位。如果启用了“cql-requests”会话指标,则使用此选项。请参阅 DataStax 驱动程序配置选项 advanced.metrics.session.cql-requests.refresh-interval |
长整数 | (无默认值) | 本地 |
| storage.cql.metrics.cql-requests-significant-digits | 内部结构将为请求维护值分辨率和分离的有效十进制位数。此值必须介于 0 到 5 之间。如果启用了“cql-requests”会话指标,则使用此选项。请参阅 DataStax 驱动程序配置选项 advanced.metrics.session.cql-requests.significant-digits |
整数 | (无默认值) | 本地 |
| storage.cql.metrics.node-enabled | 已启用的节点指标的逗号分隔列表。仅在启用基本指标时使用。有关可用指标,请查阅 DataStax Cassandra 驱动程序 4 文档(例如:pool.open-connections, pool.available-streams, bytes-sent)。 | 字符串数组 | (无默认值) | 本地 |
| storage.cql.metrics.node-expire-after | 节点级别指标被驱逐后的时间,以毫秒为单位。 | 长整数 | (无默认值) | 本地 |
| storage.cql.metrics.session-enabled | 已启用的会话指标的逗号分隔列表。仅在启用基本指标时使用。有关可用指标,请查阅 DataStax Cassandra 驱动程序 4 文档(例如:bytes-sent, bytes-received, connected-nodes)。 | 字符串数组 | (无默认值) | 本地 |
| storage.cql.metrics.throttling-delay-highest-latency | 我们期望记录的限流的最大延迟,以毫秒为单位。如果启用了“throttling.delay”会话指标,则使用此选项。请参阅 DataStax 驱动程序配置选项 advanced.metrics.session.throttling.delay.highest-latency |
长整数 | (无默认值) | 本地 |
| storage.cql.metrics.throttling-delay-refresh-interval | 限流的百分位数数据刷新间隔,以毫秒为单位。如果启用了“throttling.delay”会话指标,则使用此选项。请参阅 DataStax 驱动程序配置选项 advanced.metrics.session.throttling.delay.refresh-interval |
长整数 | (无默认值) | 本地 |
| storage.cql.metrics.throttling-delay-significant-digits | 内部结构将为限流维护值分辨率和分离的有效十进制位数。此值必须介于 0 到 5 之间。如果启用了“throttling.delay”会话指标,则使用此选项。请参阅 DataStax 驱动程序配置选项 advanced.metrics.session.throttling.delay.significant-digits |
整数 | (无默认值) | 本地 |
storage.cql.netty
与 CQL 驱动程序内部使用的 Netty 事件循环组相关的配置选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.cql.netty.admin-size | 用于与请求 I/O 无关的管理任务(处理集群事件、刷新元数据、安排重新连接等)的事件循环组的线程数。如果未设置此项,驱动程序将使用 2。 | 整数 | (无默认值) | 本地 |
| storage.cql.netty.io-size | 用于 I/O 操作(向 Cassandra 节点读写)的事件循环组的线程数。如果未设置此项,驱动程序将使用 Runtime.getRuntime().availableProcessors() * 2。 |
整数 | (无默认值) | 本地 |
| storage.cql.netty.timer-tick-duration | 计时器滴答持续时间,以毫秒为单位。这是计时器应该多久唤醒一次以检查超时任务或推测执行。有关更多信息,请参阅 DataStax Java 驱动程序选项 advanced.netty.timer.tick-duration。 |
长整数 | (无默认值) | 本地 |
| storage.cql.netty.timer-ticks-per-wheel | 计时器轮中的滴答数。有关更多信息,请参阅 DataStax Java 驱动程序选项 advanced.netty.timer.ticks-per-wheel。 |
整数 | (无默认值) | 本地 |
storage.cql.request-tracker
CQL 请求跟踪器和内置请求日志记录器的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.cql.request-tracker.class | 它要么是内置请求跟踪器的预定义 DataStax 驱动程序值,要么是实现 com.datastax.oss.driver.internal.core.tracker.RequestTracker 接口的完全限定类名。如果没有提供任何值,则使用默认的 DataStax 请求跟踪器,即 NoopRequestTracker,它不做任何事情。如果提供了 RequestLogger 值,则使用 DataStax RequestLogger。 |
字符串 | (无默认值) | 本地 |
| storage.cql.request-tracker.logs-error-enabled | 是否记录失败的请求。当 root.storage.cql.request-tracker.class 设置为 RequestLogger 时可以使用。 |
布尔值 | (无默认值) | 本地 |
| storage.cql.request-tracker.logs-max-query-length | 日志消息中查询字符串的最大长度。当 root.storage.cql.request-tracker.class 设置为 RequestLogger 时可以使用。 |
整数 | (无默认值) | 本地 |
| storage.cql.request-tracker.logs-max-value-length | 日志消息中绑定值的最大长度。当 root.storage.cql.request-tracker.class 设置为 RequestLogger 时可以使用。 |
整数 | (无默认值) | 本地 |
| storage.cql.request-tracker.logs-max-values | 要记录的绑定值的最大数量。当 root.storage.cql.request-tracker.class 设置为 RequestLogger 时可以使用。 |
整数 | (无默认值) | 本地 |
| storage.cql.request-tracker.logs-show-stack-traces | 是否记录失败查询的堆栈跟踪。当 root.storage.cql.request-tracker.class 设置为 RequestLogger 时可以使用。 |
布尔值 | (无默认值) | 本地 |
| storage.cql.request-tracker.logs-show-values | 除了查询字符串之外,是否记录绑定值。当 root.storage.cql.request-tracker.class 设置为 RequestLogger 时可以使用。 |
布尔值 | (无默认值) | 本地 |
| storage.cql.request-tracker.logs-slow-enabled | 是否记录“慢速”请求。当 root.storage.cql.request-tracker.class 设置为 RequestLogger 时可以使用。 |
布尔值 | (无默认值) | 本地 |
| storage.cql.request-tracker.logs-slow-threshold | 将成功请求归类为“慢速”的阈值。以毫秒为单位。当 root.storage.cql.request-tracker.class 设置为 RequestLogger 时可以使用。 |
长整数 | (无默认值) | 本地 |
| storage.cql.request-tracker.logs-success-enabled | 是否记录成功的请求。当 root.storage.cql.request-tracker.class 设置为 RequestLogger 时可以使用。 |
布尔值 | (无默认值) | 本地 |
storage.cql.ssl
SSL 配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.cql.ssl.client-authentication-enabled | 启用使用客户端密钥向 Cassandra 进行身份验证 | 布尔值 | false | 本地 |
| storage.cql.ssl.enabled | 控制使用 SSL 连接到 Cassandra | 布尔值 | false | 本地 |
| storage.cql.ssl.hostname_validation | 启用/禁用 SSL 主机名验证。 | 布尔值 | false | 本地 |
storage.cql.ssl.keystore
SSL密钥库的配置选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.cql.ssl.keystore.keypassword | 访问 SSL 密钥库中密钥的密码。 | 字符串 | 本地 | |
| storage.cql.ssl.keystore.location | 标记SSL密钥库的位置。 | 字符串 | 本地 | |
| storage.cql.ssl.keystore.storepassword | 访问 SSL 密钥库的密码。 | 字符串 | 本地 |
storage.cql.ssl.truststore
SSL Truststore的配置选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.cql.ssl.truststore.location | 标记SSL Truststore的位置。 | 字符串 | 本地 | |
| storage.cql.ssl.truststore.password | 访问SSL Truststore的密码。 | 字符串 | 本地 |
storage.hbase
HBase 存储选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.hbase.compression-algorithm | 一个 HBase Compression.Algorithm 枚举字符串,将应用于新创建的列族。压缩算法必须已安装并在 HBase 集群上可用。JanusGraph 无法自行在 HBase 集群上安装和配置新的压缩算法。 | 字符串 | GZ | 可屏蔽 |
| storage.hbase.region-count | 创建 JanusGraph 的 HBase 表时设置的初始区域数 | 整数 | (无默认值) | 可屏蔽 |
| storage.hbase.regions-per-server | 创建 JanusGraph 的 HBase 表时设置的每个区域服务器的区域数 | 整数 | (无默认值) | 可屏蔽 |
| storage.hbase.short-cf-names | 是否将 JanusGraph 列族的名称缩短为单个字符的助记符以节省存储空间 | 布尔值 | true | 固定 |
| storage.hbase.skip-schema-check | 假定 JanusGraph 的 HBase 表和列族已存在。当此项为 true 时,JanusGraph 将不检查其表/CFs 的存在,也不会在任何情况下尝试创建它们。这在没有 HBase 管理权限的情况下运行 JanusGraph 时非常有用。 | 布尔值 | false | 可屏蔽 |
| storage.hbase.snapshot-name | HBaseSnapshotInputFormat 将使用的现有 HBase 快照的名称 | 字符串 | janusgraph-snapshot | 本地 |
| storage.hbase.snapshot-restore-dir | HBaseSnapshotInputFormat 用于恢复快照的临时目录。此目录应与 HBase 根目录位于同一文件系统上。 | 字符串 | /tmp | 本地 |
| storage.hbase.table | JanusGraph 将使用的表的名称。当 storage.hbase.skip-schema-check 为 false 时,如果此表尚不存在,JanusGraph 将自动创建它。如果未提供此配置选项但提供了 graph.graphname,则表将设置为该值。 | 字符串 | janusgraph | 本地 |
storage.lock
最终一致存储的锁定选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.lock.backend | 要使用的锁类型 | 字符串 | consistentkey | GLOBAL_OFFLINE |
| storage.lock.clean-expired | 是否从存储后端删除过期锁 | 布尔值 | false | 可屏蔽 |
| storage.lock.expiry-time | 锁被视为过期的时间(毫秒)。未释放的锁应用程序在此时间之后被视为过期并释放。此值应大于事务可能花费的最大时间,以确保没有正确持有的应用程序过早过期,并且应尽可能小以避免死锁。 | 持续时间 | 300000 毫秒 | GLOBAL_OFFLINE |
| storage.lock.local-mediator-group | 此选项决定了 LocalLockMediator 实例,该实例用于在同一进程中连接到同一存储后端的并发 JanusGraph 图实例之间早期检测锁竞争。具有相同此变量值的 JanusGraph 实例将尝试在内存中发现它们之间的锁竞争,然后才继续执行通用分布式锁定代码。JanusGraph 在启动时为此选项生成一个适当的默认值。覆盖默认值通常只在测试中有用。 | 字符串 | (无默认值) | 本地 |
| storage.lock.retries | 系统在放弃并抛出异常之前尝试获取锁的次数 | 整数 | 3 | 可屏蔽 |
| storage.lock.wait-time | 系统等待存储后端确认锁应用程序的毫秒数。此外,在所有锁应用程序结束时等待的时间,用于验证应用程序是否成功。此值应为平均一致写入时间的一个小倍数。尽管此值可以被掩盖,但强烈建议在生产环境中跨 JanusGraph 实例使用相同的值。 | 持续时间 | 100 毫秒 | 可屏蔽 |
storage.meta *
要在存储后端检索中包含的元数据
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.meta.[X].timestamps | 对于自动用时间戳注释条目的存储后端,是否在检索到的条目中包含时间戳。如果启用,可以通过 element.value(ImplicitKey.TIMESTAMP.name()) 或等效地 element.value("~timestamp") 检索时间戳。 |
布尔值 | false | 全局 |
| storage.meta.[X].ttl | 对于支持存储和检索单元级 TTL 的存储后端,是否在检索到的条目中包含 TTL。如果启用,可以通过 element.value(ImplicitKey.TTL.name()) 或等效地 element.value("~ttl") 检索 TTL。 |
布尔值 | false | 全局 |
| storage.meta.[X].visibility | 对于支持单元级可见性的存储后端,是否在检索到的条目中包含可见性。如果启用,可以通过 element.value(ImplicitKey.VISIBILITY.name()) 或等效地 element.value("~visibility") 检索可见性。 |
布尔值 | true | 全局 |
storage.parallel-backend-executor-service
当 storage.parallel-backend-ops 启用时,用于并行请求的执行器服务的配置选项。
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| storage.parallel-backend-executor-service.class | 要使用的ExecutorService实现。实现ExecutorService的类的完整名称,该类具有带ExecutorServiceConfiguration参数的公共构造函数(首选构造函数)或无参数的公共构造函数。其他可接受的选项是:fixed - 大小为core-pool-size的固定线程池;cached - 缓存线程池; |
字符串 | 固定 | 本地 |
| storage.parallel-backend-executor-service.core-pool-size | 执行器服务的核心池大小。如果使用自定义执行器服务,可能会被忽略(取决于执行器服务的实现)。如果未设置或设置为-1,核心池大小将等于处理器数量乘以2。 | 整数 | (无默认值) | 本地 |
| storage.parallel-backend-executor-service.keep-alive-time | 执行器服务的存活时间(以毫秒为单位)。当线程数大于core-pool-size时,这是多余的空闲线程在终止之前等待新任务的最长时间。对于fixed执行器服务忽略,如果使用自定义执行器服务,可能会忽略(取决于执行器服务的实现)。 |
长整数 | 60000 | 本地 |
| storage.parallel-backend-executor-service.max-pool-size | 执行器服务的最大池大小。对于fixed和cached执行器服务忽略。如果使用自定义执行器服务,可能会忽略(取决于执行器服务的实现)。 |
整数 | 2147483647 | 本地 |
| storage.parallel-backend-executor-service.max-shutdown-wait-time | 执行器服务线程在关闭期间完成的最大关闭等待时间(以毫秒为单位)。在此时间之后,线程将被中断(发出中断信号),而无需任何额外的等待时间。 | 长整数 | 60000 | 本地 |
tx
事务处理的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| tx.log-tx | 是否应将事务变异记录到 JanusGraph 的预写事务日志中,该日志可用于恢复部分失败的事务 | 布尔值 | false | 全局 |
| tx.max-commit-time | 事务提交到所有后端可能花费的最长时间(毫秒)。分布式预写日志处理使用此值来确定事务何时可以被视为失败(即,在此时间过后)。必须长于允许的最大写入时间。 | 持续时间 | 10000 毫秒 | 全局 |
tx.recovery
事务恢复过程的配置选项
| 名称 | 描述 | 数据类型 | 默认值 | 可变性 |
|---|---|---|---|---|
| tx.recovery.verbose | 事务恢复系统是否应将恢复的事务和其他活动打印到标准输出 | 布尔值 | false | 可屏蔽 |