默认值和限制
GDS 库为重复配置提供了便利和安全性。具体来说,我们为那些您经常需要在不同过程调用之间重用的配置项提供默认配置。我们还提供限制,以限制资源使用,从而防止用户使底层系统过载。
一个很好的例子是并发性,这是一个适用于许多 GDS 过程的配置参数。您可能希望设置一个全局默认值,以便在调用过程时,自动获得该配置的默认值,而不是内置值。
此外,假设同一系统上有多个用户,您可能希望限制每个用户的并发性,以便当他们同时工作时,不会使系统过载并过度减慢速度。
最后,我们提供全局或基于每个用户的默认值和限制。个人设置优先于全局设置。
默认配置值
作为 GDS 用户,您通常希望在不同的过程调用中使用相同的通用参数。我们允许您设置默认值,以避免重复操作。
设置默认值
您可以通过调用 gds.config.defaults.set
过程来设置默认值。您需要提供一个键值对和一个可选的用户名。
在这里,我们为用户 Alicia 将 concurrency
参数设置为默认值 12;这意味着 Alicia 除了特殊情况外,无需再指定 concurrency
参数
CALL gds.config.defaults.set('concurrency', 12, 'Alicia')
我们还将 deltaThreshold
设置为 5%
CALL gds.config.defaults.set('deltaThreshold', 0.05, 'Alicia')
并且 Alicia 希望始终在 sudo
模式下运行;她是一名高级用户
CALL gds.config.defaults.set('sudo', true, 'Alicia')
每次 Alicia 运行使用 concurrency
、maxIterations
或 sudo
配置参数的算法时,这些配置值都会被应用。例如,请参阅K-近邻。
如果您省略 |
列出默认值
您可以通过调用 gds.config.defaults.list
过程来检查默认设置。您可以提供可选的 username
和/或 key
参数来过滤结果。
这里是一个示例,我们列出了 Alicia 的 concurrency
默认设置
CALL gds.config.defaults.list({ username: 'Alicia', key: 'concurrency' })
假设 Alicia 没有 concurrency
的设置,如果存在全局设置,我们将列出全局设置。因此,输出的始终是“有效”设置。
键 | 值 |
---|---|
"concurrency" |
12 |
我们也可以省略过滤器,查看 Alicia 的所有默认设置
CALL gds.config.defaults.list({ username: 'Alicia' })
键 | 值 |
---|---|
"concurrency" |
12 |
"deltaThreshold" |
0.05 |
"sudo" |
true |
同样,如果您省略 |
配置值限制
在多用户系统中,您需要确保这些用户不会相互干扰,更不会使系统过载。为了实现这一点,我们提供了配置值限制。
设置限制
您可以通过调用 gds.config.limits.set
过程来设置限制。您需要提供一个键值对和一个可选的用户名。
在这里,我们为用户 Kristian 将 concurrency
参数的限制设置为 6;这意味着 Kristian 永远不能指定高于 6 的 concurrency
参数值
CALL gds.config.limits.set('concurrency', 6, 'Kristian')
我们还禁止 Kristian 在 sudo
模式下运行
CALL gds.config.limits.set('sudo', false, 'Kristian')
每次 Kristian 运行使用 concurrency
或 sudo
配置参数的算法时,都会检查这些限制。例如,请参阅Page Rank。他只能使用 6 或更低的 concurrency
设置,并且永远不能在 sudo
模式下运行。
如果您省略 |
列出限制
您可以通过调用 gds.config.limits.list
过程来检查限制设置。您可以提供可选的 username
和/或 key
参数来过滤结果。
这里是一个示例,我们列出了 Kristian 的 concurrency
限制设置
CALL gds.config.limits.list({ username: 'Kristian', key: 'concurrency' })
键 | 值 |
---|---|
"concurrency" |
6 |
"sudo" |
false |
我们使用与上述默认值相同的约定
-
默认情况下,我们列出全局限制设置
-
您可以使用可选的
username
参数来列出给定用户的有效设置 -
个人限制优先于全局限制
-
您可以使用可选的
key
参数进行过滤
但是,我们在权限方面确实存在细微差异
-
只有管理员才能设置限制
-
只有管理员或用户本人才能列出个人限制