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服务中的交易限制的主要内容,如果未能解决你的问题,请参考以下文章
融合RocksDB, Pregel, Foxx & Satellite Collections 怎样使数据库性能提升35%?
融合RocksDB, Pregel, Fault-Tolerent Foxx & Satellite Collections 怎样使数据库性能提升35%?