gpt4 book ai didi

transactions - Aerospike ACID的说明

转载 作者:行者123 更新时间:2023-12-04 03:43:36 27 4
gpt4 key购买 nike

Aerospike数据库说,it is

[...] architected with three key objectives:
To create a flexible, scalable platform that would meet the needs of today’s web-scale applications
To provide the robustness and reliability (ie, ACID) expected from traditional databases.
To provide operational efficiency (minimal manual involvement)



other place中:

Aerospike is optimized to work with the latest in storage and database technology to squeeze as much transaction throughput as possible while still guaranteeing strong consistency (ACID).



首先,我没有在Aerospike中找到任何交易定义。通常,我将其作为对数据库的一系列操作来获取。但是,稍后阅读,我看不到事务是ACID:

当阅读详细的 Aerospike ACID description时,我发现它仅假装ACID保证。

例子:
  • 我想在事务中进行一系列操作(a,b,c)。每个操作都是一个独立的数据库查询。如果c失败,那么我希望a和b由数据库系统回滚。我没有在Aerospike中找到此功能。
  • 让我们考虑修改文档A和B的两个并发事务。在开始时A = 0和B = 0:
  • T1将1加到AB
  • T2将A和B乘以2。

  • 我希望总是以 A==B结尾-结果将是:
  • A=1 & B=1,当T2首先锁定/获得文档A和B的所有权时
  • A=2 & B=2,当T2首先锁定/获得文档A和B的所有权时

  • 这个结果的保证是什么?
    1.您可以确认我的示例结果吗?

    2. User Defined Functions在某种程度上对您有帮助吗?

    聚苯乙烯

    明确地说-我不想说Aerospike不好。我在那里看到了很多出色的工作。当ACID保证在那里失败时,我只是缺少一个很好的说明。

    最佳答案

    如您所引用文档第2页底部所述:
    http://www.aerospike.com/docs/architecture/assets/AerospikeACIDSupport.pdf

    并且您在网站上的文档中指出:
    http://www.aerospike.com/acid

    对于单个记录上的读/写操作,Aerospike严格保证这些操作的原子性:

    如果您继续阅读这两个来源,它们将解决应用于单个记录的原子性,一致性,隔离性和耐久性的所有ACID属性。

    在NoSQL数据库中,术语ACID通常用于表示单个分布式(群集)服务器环境中记录的多个副本,并且相同记录的所有副本均以ACID方式编写。记录的多个副本保留在分布式数据库中,以提供高可用性和故障转移。由于我们数据库的强大特性,我们的大多数生产客户对2个副本感到满意。

    Aerospike在数据库的单个群集实例中对此进行了提交。如果您选择在不同的位置/数据中心中有多个集群实例(用于地理位置策略或灾难恢复),那么我们将对单个数据库实例 promise 遵守ACID。

    我们的XDR(跨数据中心复制)将自动将记录复制到其他位置的Aerospike的远程实例,因此,将记录发送到其他位置的过程将作为Aerospike客户端显示到远程实例,并且再次表明ACID符合对于,将一条记录发送到远程实例。发生这种情况的时间大约为几秒钟,以说明网络延迟和Aerospike无法控制的其他因素。我们不支持跨多个实例/地理位置的ACID。

    Aerospike目前没有事务管理API,因此,即使其中一个步骤失败,即使使用用户定义的功能(UDF)也无法使您回退如示例中所述的一系列步骤。 Aerospike从未提出过这样的主张,但是在技术行业中经常发生这种情况,单词在多种情况下使用,很容易使情况混淆。

    关于transactions - Aerospike ACID的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25920610/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com