如何在arangodb php中增加流式事务的“maxTransactionSize”

如何在arangodb php中增加流式事务的“maxTransactionSize”,php,arangodb,arangodb-php,Php,Arangodb,Arangodb Php,文档中说作为事务属性传递(调用/begin): maxTransactionSize:以字节为单位的事务大小限制。仅由RocksDB存储引擎授予 尽管php-客户端在将事务实例移交给处理程序之前手动设置该属性,但我还是设法做到了这一点: $trx->set('maxTransactionSize', $config['maxTransactionSize']) 这是直接在调用begin之前的事务属性($trx->attributes)的var\u dump: includes/libs

文档中说作为事务属性传递(调用
/begin
):

maxTransactionSize:以字节为单位的事务大小限制。仅由RocksDB存储引擎授予

尽管
php
-客户端在将事务实例移交给处理程序之前手动设置该属性,但我还是设法做到了这一点:

 $trx->set('maxTransactionSize', $config['maxTransactionSize'])
这是直接在调用
begin
之前的事务属性(
$trx->attributes
)的
var\u dump

includes/libs/arangodb/lib/ArangoDBClient/StreamingTransactionHandler.php:50:
阵列(2){
“收藏”=>
阵列(3){
“读取”=>
数组(0){
}
“写入”=>
数组(0){
}
“独家”=>
阵列(1){
[0] =>
字符串(7)“操作”
}
}
“maxTransactionSize”=>
内部(536870912)
}
但交易失败的原因是:

错误:AQL:正在中止事务,因为(执行时)已达到134217728字节的最大事务大小限制

我错过了什么/做错了什么


我在3.5.4和3.6.1上对此进行了测试,得到了相同的结果。

结果表明,阅读整个文档是明智的。128MB是流式事务大小的硬上限

在协调器上强制流事务的最大生存期和事务大小,以确保事务不会阻止群集正常运行:

两次操作之间的最大空闲超时时间为10秒 每个数据库服务器的最大事务大小为128 MB 这些限制也适用于单个服务器上的流事务

这意味着您必须使用js事务处理需要更多内存的查询。arangodb php客户端提供了
Transaction.php
来在客户端包装这些应用程序,不需要编写/扩展foxx应用程序——至少js transactions()的文档中没有提到任何限制

编辑:我将我的案例重新实现为js事务,它不受阻碍地完成