- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道 Firestore 使用服务器(云功能)中的事务锁,如以下视频所述:https://www.youtube.com/watch?v=dOVSr0OsAoU
该视频详细解释了事务在客户端中如何工作(并且没有使用锁),但对于服务器事务来说效果不佳。
以下哪一项是正确的(关于服务器事务)?:
1) 文档被服务器事务中的get
锁定,因此其他服务器事务在第一个事务完成之前无法获取
它。
2) 文档被服务器事务中的get
锁定,但仅限于写入,以便其他服务器事务可以获取它,但在第一个事务完成之前不能修改它。
3) 文档不会被服务器事务中的 get
锁定,只能写入。
编辑:我需要权威来源(Firebase 团队中某人的文档或视频或博客中的一些引用资料)。
最佳答案
服务器端事务通常像客户端库一样工作,但不是该视频中提到的并发模型技术,而是以传统的锁定数据方式工作。因此,即使您在单个文档或查询上使用事务,这些文档也将被锁定,直到事务完成为止。
回答您的问题,因为来自云功能的事务是在内部发生的(可能需要几毫秒),所以文档在这段时间内被锁定。这意味着这些文件不能被任何其他交易获取或更改。
1) A document is locked by gets in a server Transaction, so that other server Transactions cannot get it before the first Transaction is finished.
正确。
2) A document is locked by gets in a server Transaction, but only for writes, so that other server Transactions can get it but not modify it before the first transaction is finished.
其他事务获取锁定文档是没有意义的。既然无法更改,为什么要尝试获取这样的文档呢?此外,在事务完成时,锁定的文档可能具有不同的值。在事务开始和完成之间,文档中的某些属性会发生更改。
3) A document is NOT locked by gets in a server Transaction, only writes.
云函数运行交易后文档被锁定,交易完成后锁定被释放。
编辑:
It does make sense for another transaction to get a locked document. It cannot be changed, but if it can be read
我指的是严格意义上的写作。无论文档是否锁定,所有文档都可以读取。
if you just want to read the value
如果您只想读取值,则无需担心。在读取时,文档上没有锁。
Maybe you need to read some value to make a decision regarding changing another document, or even just showing some info to the user.
它将完美地工作。
Also, depending on the transaction, you don't care if the document changes within the next second. For example, if the user wants to know the money amount in his bank account, you can show a value from one second before, no problem.
是的,没错。读取操作没有任何限制,就您的示例而言,是的,没问题。这也在我的一个项目中发挥作用。
Could you please point me to their sources?
有许多资源可以解释传统的锁定数据方式的工作原理。正如托德·克佩尔曼(Todd Kerpelman)在喜欢的视频中证实的那样,服务器端交易就是这样工作的。此锁定的目的是服务和保护共享资源(文档)。
I really need to be absolutely sure of that, so I need the sources, or else someone from the Firebase team confirming them.
我们还希望 Firebase 团队的人员能够花时间查看此内容,但我不确定我是否理解您的担忧?您是否认为在交易进行时您将无权阅读文件?或者?
关于firebase - 服务器(云功能)在事务中读取 Firestore 文档时是否会被锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56452110/
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我计划使用 python 开发一个 Web/云应用程序,它执行以下操作, 1.上传Perl/Python抓取脚本并执行。 2. 上传脚本以按计划运行。 3. 使用不同的输入参数运行同一脚本的多个实例。
我正在开发一个应用程序,我想实现一个功能,可以在相同的用户设备之间共享,比方说,收藏夹、书签等。所以,我想实现类似 iCloud 的东西。 我想到了 2 个可能的想法:Backup Manager 和
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在尝试从一系列短语中使一个单词云成为一个词云,而不是从单个单词中重复很多短语。我的数据看起来像这样,数据框的一列是短语列表。 df$names <- c("John", "John", "Jose
对于配置AWS服务(EC2/R53/VPC/S3/..),Terraform等技术在执行回滚、错误处理等方面的方法不可靠。 AWS CloudFormation 模板解决了这些问题。 CloudFor
我无法使用我的 Azure 帐户执行任何操作,例如创建服务器或数据库或任何操作。看起来这一切都围绕着我无法创建的资源组>我收到此错误: 这特别困难,因为我什至无法使用云外壳,因为我得到了这个:请求 C
是否有在客户端使用 socket.io 的云/托管推送系统?据我所知,没有一个系统使用 socket.io AFAIK: http://beaconpush.com/ http://pusher.co
有没有办法在我的计算机上本地运行 RStudio,但使用运行 R 作为引擎的远程计算机而不是本地 R 安装? 需要明确的是,我知道可以将 RStudio 服务器与 Web GUI 一起使用,但我问的是
我正在寻找在这种情况下可以使用的合适服务: 在视频模式下打开相机并将其流式传输到 azure 云。 并从另一方聆听(也包括客户)。 我读到了有关 Azure 媒体服务的信息。 但根据this我知道客户
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: Google App Engine, getting started 如何将 Java 应用程序部署到 Google
我有一个用 Java 7 编写的相当大的控制台应用程序,它管理大量的订单处理。 该应用程序使用大量订单 Web 服务、与数据库交互并将数据插入 ERP 系统。该应用程序的要求没有指定用户交互,因此在项
我已经阅读过有关 Windows Azure 的内容,但为了深入了解这项技术,我(显然)需要使用它。我有一个小型 ASP.NET 网站,流量很少,我认为在 Azure 上托管该网站会节省我的钱。除此之
我的 Activity 中有 3 个编辑文本(姓名、手机号码、职业)和一个按钮(保存)。每次用户单击按钮时,我都想将这三个数据保存到 Parse-cloud。然后新 Activity 在 imagev
我正在尝试通过node.js 将传感器数据发送到artik cloud。 (使用网络套接字和串行端口)。但它发送空。有人知道原因吗?我刚刚复制了教程中的代码,因此没有语法错误。 var webSock
我对 docker hub 和 docker cloud 有一点困惑。我有需要安装在客户端服务器中并运行容器的 docker 镜像。我相信这可以使用 docker hub 来完成,它允许在我的私有(p
晋城,华夏文化发祥地之一。两万年前留下高都遗址、塔水河、下川等人类遗址,女娲补天、愚公移山等神话传说,如今在云上有了崭新的魅力。 9月3日,阿里云数字中国行•晋城峰会期间,晋城市人民政府公布了
我刚开始使用 Airflow 插件,有点困惑。 我在 GCP (composer-1.13.4-airflow-1.10.12) 上使用 Cloud Composer 作为托管服务运行它 我按照文档编
据我所知,PHP 分析工具 XDebug 将其结果保存到文件中。然而,当应用程序运行在云分布式环境中时,处理此类文件是很困难的。处理这种情况的最佳做法是什么? XDebug 中是否有任何方法(最好是可
我们正在将 PHP 网站迁移到 Azure 云 Web 服务(Web 角色)。 目前,该网站通过驱动器盘符访问将用户提交的图像文件保存到文件系统。然后通过 URL 提供这些图像,例如content.e
我是一名优秀的程序员,十分优秀!