ArangoDB:Foxx服务中的交易限制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ArangoDB:Foxx服务中的交易限制相关的知识,希望对你有一定的参考价值。

我正在尝试找到描述在javascript Foxx微服务中运行的事务中可以安全访问的限制的文档。我曾经读过某个地方(现在找不到)除了通过事务参数数组传递的内容之外你无法访问任何内容,并且必须重新导入事务中使用的所有节点模块。我很好奇我可以安全地传递给事务 - 例如ArangoDB数据库对象本身(而不是重新导入它),为什么存在这些限制,以及性能影响是什么(对象编组?)。在我对单节点服务器的测试中,似乎访问外部定义的变量确实有效,因此我认为这些限制与数据库服务器/集群的更复杂配置有关。

谢谢!

答案

我曾经读过某个地方(现在找不到),除了通过事务参数数组传递的内容之外,你无法访问任何东西

这适用于UDF(用户定义的函数),而不适用于Foxx微服务。

我相信关于Foxx的所有注意事项都在手册中:

https://docs.arangodb.com/3.3/Manual/Foxx/

特别是:

  • “你不应该依赖不同请求之间的服务器端状态(数据库本身除外),因为无法确保在同一个上下文中处理连续的请求。”
  • “因为JavaScript代码在数据库中运行......所有Foxx和ArangoDB API都是纯粹同步的,应该被视为阻塞。”

以上是关于ArangoDB:Foxx服务中的交易限制的主要内容,如果未能解决你的问题,请参考以下文章

安装 arangodb foxx 应用程序失败

ArangoDB 中的正文参数

融合RocksDB, Pregel, Foxx & Satellite Collections 怎样使数据库性能提升35%?

融合RocksDB, Pregel, Fault-Tolerent Foxx & Satellite Collections 怎样使数据库性能提升35%?

Foxx 服务阵列处理

ArangoDb - 如何在限制过滤结果之前计算过滤结果的数量