当前位置: 首页 > 知识库问答 >
问题:

批处理写入中的FiRecovery删除是原子的吗?

娄利
2023-03-14

我被删除时的火神留档弄糊涂了。留档说:

也不能保证删除操作会统一成功或失败,因此请准备好处理部分删除的情况......没有原子删除集合的操作。

https://cloud.google.com/firestore/docs/solutions/delete-collections

我不知道上面的语句是否只是指示例中的云函数,还是通常执行大规模删除。

然而,批写入可以执行删除,并且它们是原子的。因此,如果一个文档少于500个的集合(批写入操作限制)运行了一个删除的批写入操作,那么这不是原子集合删除吗?关于批写入的文档并没有提供说明,因为它没有说明批操作是以原子方式完成的,而只是写入。我无法猜测这是否是故意的。

一批写入操作以原子方式完成,可以写入多个文档。

https://cloud.google.com/firestore/docs/manage-data/transactions

把删除整个集合放在一边(因为我知道随之而来的注意事项),是否在批写原子中执行删除?

共有1个答案

曾嘉祯
2023-03-14

我不知道上面的语句是否只是指示例中的云函数,还是通常执行大规模删除。

这两者都适用。这两种情况都涉及多次调用以删除所有文档,这些调用可能成功或失败,使集合处于不一致的状态(部分删除)。需要第二轮行动来清理其余文件。

另一方面,批量删除500个或更少的文档可以保证单个批次的所有或无行为。但如果要删除的数量超过500个,则需要多个批次,现在又回到了上述相同的问题上——任何数量的批次都可能成功或失败,您需要处理这些问题。

 类似资料:
  • 我们正在使用Cassandra 2.0.10和CassandraC驱动程序1.0.0beta4 WARN[本机传输请求: 83088] 2015-01-08 22:56:15,327BatchStatement.java(第226行)[clipmine_prod.tag_attributes,clipmine_prod.tag]的一批准备好的语句大小为5812,超过5120的指定阈值692。 这意

  • 我正在为Windows 7编写批处理文件。 我目前有一个代码,可以从站点管理文件夹中的masters文件夹中删除旧备份。代码如下: 但是,我需要将其编码为仅删除超过3年的内容,这将是以下代码: 但是,我需要顶部代码中的内容,以便我可以从我们173个站点管理文件夹中存在的文件夹中删除所有*. bak文件。我正在努力解决这个问题。我不能让它从我们的其他文件夹中删除*. bak文件。 我已尝试组合代码,

  • 我刚开始使用Spring批处理,我有一个特殊问题。我希望使用从3个不同的jpa查询中获取结果,并分别处理它们,然后使用将它们写入一个统一的XML文件。 对于eg,生成的XML看起来像是,

  • 我们现在正在将我们的一项服务从通过传统通信技术推送数据转移到Apache Kafka 当前的逻辑是向IBM MQ发送消息,并在出现错误时重试。我想重复一遍,但我不知道经纪人在这种情况下提供了什么样的担保 假设我通过producer通过Java客户端库批量发送100条消息。假设它到达集群,是否有可能只接受其中的一部分(例如,磁盘已满,或者我在写操作中接触到的某些分区未被复制)?我能从我的制作人那里检

  • 我正在尝试创建一个应该每天运行一次的批处理文件,它应该删除除最新文件之外的所有备份文件,比如说每种类型的2个。所以我有这样的文件: > 备份-每日-2018-11-13_000000.bak 备份-每日-2018-11-12_000000.bak 备份-每日-2018-11-11_000000.bak backup-HOURLY-2018-11-13\u 110000。bak公司 等 目前我的脚本

  • 我正在使用lambda、API网关和Dynamodb 我正在创建一个batchWrite函数,在一个函数中上载25个以上的项目 但我发现,当我上传35个项目时,前25个项目成功上传到dynamodb,但最后10个项目失败,但没有记录任何错误 该函数在node.js中编写 日志如下所示。