问题标签 [acid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - NoSQL 数据库:读取一致性如何?
据我所知,NoSQL 数据库对于高强度数据读取应用程序可能是一个不错的选择,但如果您需要做大量数据更新并且事务性对您来说非常重要(如果没有酸合规性)。正确的?可能太简单了。
但无论如何,假设我部分正确,至少我现在担心 NoSQL 数据库如何维护您正在读取或写入的数据的“读取一致”视图。还是他们?如果他们不这样做,那不是一个很大的问题吗?
我的意思是,如果您正在阅读(或更新)的数据在您阅读时发生变化,那么您可能会得到一个不一致/脏的结果集。来自 Oracle rdbms 背景,所有这些都是为您处理的,我发现缺乏读取一致性并不是一个大问题,这让我感到困惑。很可能我错过了所有这一切的一些关键点。有人可以让我直截了当吗?
distributed-transactions - VoltDB 是否完全支持多分区(或全局)事务的 ACID?
我目前在数据库方面的经验主要是 MS SQL、MySQL 和 oracle。当我偶然发现 VoltDB 时,我一直在寻找一些更具可扩展性的替代方案(许多 NoSQL 解决方案)。
它看起来很有趣,因为它维护了 SQL、事务和 ACID 的使用。他们网站上的常见问题解答似乎表明即使是多分区(可能跨多个服务器)事务也完全符合 ACID。但是它没有明确说明,我找不到任何其他来源证实这一事实,所以我想知道是否有人可以确认/否认它。
haskell - 线程无限期阻塞 - Haskell - Acid State
我担心 Acid State 会生成许多事件文件和检查点,用户“stepcut”告诉我有一个名为 createArchive 的酸解决方案的实现,它删除旧事件......问题是当我使用它时我得到这个错误:
我认为它应有 w7 权限,但是当我在“管理员”下运行它时,我无法看到控制台,但事件文件仍然存在,所以我认为它不起作用。
如果我通过 ghci 运行代码,我不会收到错误,但它会锁定控制台,所以我需要 CtrlC 才能继续工作。
有人收到这个错误吗?
haskell - 使用酸态 - safeCopy 函数
存在数据类型时的问题:
问题是当我说
我收到以下错误:
所以我意识到 SafeCopy 可能不适用于功能......
我有麻烦了吗?既然我不能改变 MyData 的模型......有没有办法做到这一点?
database - Haskell 可以伪装成数据库吗?如果可以,怎么做?
我意识到这可能是一个愚蠢的问题,但是有没有办法让 Haskell(或使用一些带有 Haskell 的库)让它像 SQL 数据库一样工作?如果是这样,怎么做?
像 SQLite 这样的东西,但没有持久性?
这个想法是我可以创建 Haskell“表”和 Haskell“索引”(存储在内存中),并且外部应用程序可以查询它们。
如果它不能处理连接也没关系。
原因是外部应用程序需要查询数据库,但我想将我的数据保持在acid-state,并且不想一直做将东西转储到数据库的中间步骤。
oracle - 这个 PL/SQL 代码是否符合 ACID?
可以在 TEMPORARY 表上发出异步提交吗?它是否会使我的交易不那么持久?
编辑:
是的,我知道它不是严格意义上的 ACID,因为它会在一瞬间绕过 D 部分。问题是 - 它是否“和”ACID 一样好,因为它与只使用真正 COMMIT 的版本没有任何不同的可能场景?还是我弄错了,可能会有所不同?
php - PHP PDO 的事务究竟如何与并发一起工作?
我正在制作一个 web 应用程序,他们将是多个用户相互交互并阅读/做出决定/修改共享数据。
我读过事务是原子的,这是我需要的。但是,我不确定它如何与 PHP 一起使用PDO::beginTransaction()
我的意思是原子的,如果一个事务正在编辑一些数据,所有其他事务也修改/读取该数据将需要等到第一个事务完成。就像我不希望两个脚本读取一个值,增加旧的,并且有效地只存储一个增量。第二个脚本必须等待第一个脚本完成。
在我见过的几乎所有示例中,查询都是连续使用的(例如PHP + MySQL 事务示例)。我正在做的很多事情都需要
- 查询和获取
- 检查该数据并对其采取行动,作为同一事务的一部分
- 如果查询之间存在 PHP 代码,事务是否仍会自动进行?
- 我知道你应该在交易之外准备你的陈述,但是可以在里面准备吗?基本上,我担心 PHP 活动会破坏事务的原子性。
这是一个示例(此示例不需要检查先前的值)。我有一个非常基本的收件箱系统,它将邮件存储为序列化数组(如果有人有更好的建议,请告诉我)。所以我查询它,附加新消息并存储它。它会按预期工作吗?
database - 说数据读取操作不需要在事务内部运行是否正确?
假设一个方法只从数据库中读取数据而不写入数据。这种方法是否总是不需要在事务中运行?
sql - 需要一种在 SQL 数据库中存储/查询 json 的有效方法
我正在实施一项服务,其中每个用户都必须拥有自己的 json/文档数据库。除了让用户通过示例查询 json 文档之外,数据库还必须支持涉及多个文档的 ACID 事务,因此我放弃了使用 Couch/Mongo 或其他 NoSQL 数据库(不能使用 RavenDB,因为它必须在 Unix 系统上运行)。
考虑到这一点,我一直试图想办法在 SQL 数据库之上实现它。到目前为止,这是我想出的:
每个用户都有一个包含这两个表的数据库,并且用户必须声明他需要查询哪些字段,以便系统可以正确填充“索引”表。因此,如果用户“A”将其帐户配置为启用按“姓名”和“年龄”进行查询,则每次该用户插入具有“姓名”或“年龄”属性的文档时,系统也会向“索引”插入一条记录表,其中 'property' 列将包含 name/age , 'value' 将包含属性值, 'document_id' 将指向相应的文档。
例如,假设用户插入以下文档:
这将导致对“文档”表的插入和对“索引”表的另外两个插入:
然后假设用户“A”向服务发送了以下查询:
此查询将被转换为以下 SQL:
我的问题:
- 知道用户可能能够在他的查询中使用大量条件(比如说 20-30 个 AND 条件),这会导致子查询嵌套非常高,以上 SELECT 查询在大多数数据库系统上的效率如何( postgres,mysql ...)?
- 上述解决方案对于最终将包含数百万/数十亿 json 文档的数据库是否可行?
- 有没有更好的方法来满足我的要求?
- 是否有可扩展的文档数据库可以进行涉及多个文档的 ACID 事务并在 Unix 系统上运行?
java - JTA 事务管理器如何在运行时部署?
试图绕开 JTA 并随意选择 Bitronix 作为 impl,因为文档更容易获得(与 Atmikos 不同,Atmikos 让您注册并注册才能获得 src/docs/jars/etc. )。
如果我想使用 Bitronix 作为我的 JTA 实现(使用 Tomcat 和 GlassFish),那么它的基本架构是什么(可能只是 JTA 本身的基本架构)?事务管理器是我连接到的实际服务器/运行时(如 JMS 代理)吗?或者这只是一个我可以在需要交易时配置和点击的 API?
我对JTA的理解是有:
- 你的代码
- 资源管理器 - 一些符合 ACID 的持久性适配器(如数据存储或消息代理)
- 事务管理器 - 管理您的代码和资源管理器之间的事务 API 调用
Bitronix 是否只是事务管理器,如果是,它是一个单独的应用程序,一个必须与您的应用程序一起部署的单独的 JAR/WAR,还是它“嵌入”在您的应用程序中运行?提前致谢!