数据库ACID事务教程

     

什么是分布式事务?

713 1 3K
作为一名软件工程师,我一直想知道事务是如何工作的,以及它们在分布式系统中是如何管理的,所以我用谷歌搜索了一下,发现了很多模式和规范,比如 JTA、2PC、SAGA、事件驱动架构、发件箱等……在本文中,.

数据库存储引擎如何保证事务 ACID?

882

数据库存储引擎会在事务提交后立即将更改写入磁盘吗?让我们来探讨一下:WAL(Write Ahead Log:预写日志): 存储引擎用来提供原子性A和持久性D(ACID )的一种日志。出于性能原因,每当.

Spring MDC事务日志

939 2K

在本文中,我们将了解如何配置 Spring 应用程序以使用MDC(映射诊断上下文)进行事务日志记录。@Transactional这项技术将帮助我们在服务方法发出的所有日志条目中注入持久性上下文信息以及.

将数据库更改复制到消息队列很棘手 (evanjones.ca)

1156 2K

假设我们有一个将其状态存储在数据库中的程序,我们希望其他程序在发生变化时做一些事情。例如,我们可能想在银行余额下降到某个阈值以下时发送电子邮件通知。这是应用程序使用Kafka等消息队列的一个非常常见的.

CDC:一种将交易数据复制到数据湖的有效方法

1425 2K

对用于将事务数据库的近实时副本创建到分析数据库中的新高效机制的需求正在增长。主要原因是 传统事务数据库副本不适用于分析工作负载 (OLAP)。 它们无法针对长时间运行的分析 (OLAP) 查询进行扩展.

SQL语句在数据库中是如何执行的? - Xu

1378
SQL语句在数据库中是如何执行的? 第 1 步 - SQL 语句通过传输层协议(例如 TCP)发送到数据库。  第 2 步 - 将 SQL 语句发送到命令解析器,在那里进行句法和语义分析,然后生成查询.

以事务方式发送 Kafka 消息

2181 1 5K
在自 2016 年以来,我们在 Mirakl 开始使用 Kafka 作为消息服务,以支持我们在微服务环境中的异步驱动架构。起初,Kafka 仅用于非关键服务,如电子邮件、审计或日志记录。这是一种安全的.

Spring事务最佳实践 - Vlad

1189 12K
在本文中,我将向您展示各种 Spring Transaction事务最佳实践,它们可以帮助您实现底层业务需求所需的数据完整性保证。数据完整性至关重要,因为如果没有适当的事务处理,您的应用程序可能容易受.

使用 Spring Transactional 注释的最佳方式 - Vlad Mihalcea

1244 5K

在本文中,我将向您展示使用 Spring Transactional 注释的最佳方式。 Spring事务注解从 1.0 版本开始,Spring 就提供了对基于 AOP 的事务管理的支持,允许开发人员以.

关系数据库SQL面试排名前100道问答题

1589 20K
RDBMS 是迄今为止最常用的数据库之一,因此SQL 技能在大多数工作角色中必不可少。在这篇 SQL 面试问题文章中,我将向您介绍有关 SQL(结构化查询语言)的最常见问题。本文是您学习与 SQL、O.

关于Delta Lake的ACID事务机制简介

1278 6K

近年来,随着大数据利用用例的多样化,需要为分布式存储添加更多功能。这几年诞生了几款OSS存储层SW,可以原样使用HDFS等分布式存储和Apache Spark等分布式处理框架,为分布式存储添加新功能。.

使用Go的Defer和Rust的Drop实现数据库事务机制的比较 - DEV

1858 1 8K

我学习 Rust 的极其缓慢的旅程仍在继续,被其他项目拖延了。我在 2021 年的注意力主要集中在 Go 和 PostgreSQL 上。让我对 Rust 非常感兴趣的一件事是它为我提供的工具可以让我编.

Calvin:分区数据库系统的快速分布式事务

1400

这篇论文是由耶鲁大学的一组计算机科学家发表的,很好地讨论了分布式事务的问题,解释了为什么它很复杂,以及为什么许多分布式数据库决定完全放弃事务以简化操作。然后它引入了一个非常有趣的想法,即通过确定性锁定.

Gitlab为什么花了一个月的时间来消除 PostgreSQL 子事务 ?

1600 3K

自去年 6 月以来,我们注意到 GitLab.com 上的数据库会神秘地停止几分钟,这将导致用户在此期间看到 500 个错误。经过数周的艰苦调查,我们终于发现了造成这种情况的原因:在长事务正在进行时通.

在生产环境中使用预写日志WAL的SQLite - victoria

1071 2K

SQLite(“ see-quell-lite”)是一种轻量级的Sequel或结构化查询语言(SQL)数据库引擎。而不使用客户端-服务器数据库管理系统模型,SQLite完全包含在单个文件中。它是库,数.

微服务架构中的分布式事务全面详解 -DZone微服务

2878 1 14K
本文探讨在微服务架构中实现事务处理时出现的挑战以及用于处理它们的可能解决方案。当从单体或整体架构迁移到微服务架构(MSA)时,处理分布式系统带来的复杂性是一项挑战。事务处理是此问题的重点。使用本地事务.

什么是数据库事务的写偏斜write-skew?- justinjaffray

5744 2K

这篇文章是关于写歪斜write-skew的知识以及扩展快照隔离的知识。快照隔离被称为事务隔离级别,它在性能和正确性之间提供了很好的组合,但是此处“正确性”的确切含义通常含糊不清。在这篇文章中,我想分解.

Apache Kafka不是数据库:数据库+Kafka=完整ACID - fivetran

2519 1 3K
了解流式数据基础结构的使用和滥用很重要。Apache Kafka是一个消息代理,在过去几年中迅速普及。消息代理中间件已经存在了很长时间。它们是一种数据存储,专门用于在生产者和使用者系统之间“缓冲”消息.

使用Spring Boot实现Redis事务 | Vinsguru

2448 1 4K
大多数redis命令可以归类到get/set下。默认情况下,所有这些命令都是原子的。但是,当我们需要顺序执行一组命令时,则不能保证它是原子的。Redis通过multi,exec和discard命令提供.

如何检测Spring中事务当前是否活着? - Baeldung

5520 1 3K

检测交易对于审计目的或在未实施良好交易惯例的复杂代码库中可能有用。在这个简短的教程中,我们将介绍几种方法来检测代码中的Spring事务。为了使事务在Spring中工作,必须启用事务管理。如果我们使用具.

Java和Spring中的事务简介 - Baeldung

3896 1 17K
在本教程中,我们将了解Java中事务的含义。因此,我们将了解如何执行资源本地事务和全局事务。这也将使我们能够探索在Java和Spring中管理事务的不同方法。 什么是事务?通常,Java中的事务是指一.

超过7年的分布式企业级生产环境使用经验:16条保证事件溯源成功的准则 - continuousimprover

1791 1 4K
几周前,我结束了一场技术辩论,讨论如何进一步利用现有的事件溯源应用程序,以充分利用其旨在为您带来的好处。我已经写了许多帖子是关于陷阱、最佳实践以及如何在.NET中具体实现这一点。但是我仍然认为为您提供.

使用Spring实现访问主从数据库的读写和只读事务/事物的分离路由 -Vlad Mihalcea

2562 10K
由于单主数据库复制体系结构不仅提供了容错能力和更高的可用性,而且使我们能够通过添加更多从节点来扩展读取操作,由此形成对主数据库进行写入操作,而对复制主数据库的从数据库进行只读操作。Spring @Tr.

Jepsen发现PostgreSQL重大Bug:在单个PostgreSQL实例上以可串行化隔离执行的事务实际上是不可串行的

1543 2K

PostgreSQL是一个众所周知的关系数据库系统。我们使用Jepsen的新事务隔离检查器Elle评估了PostgreSQL ,发现在单个PostgreSQL实例上以可串行化serializabili.

DDD聚合:乐观并发 -James Hickey

1946 1

当系统的多个用户尝试在“相同”时间对同一块数据进行操作时,会发生什么情况?谁赢?谁输了?本文将说明如何解决此类问题!协作领域是可以同时由多个用户/客户端更改资源的领域,这要求对我们的业务逻辑进行更智能.

DDD聚合:一致性边界 -James Hickey

3423 2 3K
在原始的域驱动设计书中,埃里克·埃文斯(Eric Evans)对聚合解决了哪些问题进行了评论:需要保持适用于紧密相关的对象组的不变性,而不仅仅是离散的对象。什么是不变式?不变是业务规则,必须始终保持一.

PostgreSQL一线生产经验分享:我讨厌PostgreSQL的10件事 | Rick Branson

2236 2 10K

在过去的几年中,软件开发社区对流行的开源关系数据库的热爱已经达到了一个高潮。Hacker News主题有一个标题为“ PostgreSQL是世界上最好的数据库”的文章,它的字里行间充斥着讨人喜欢的正能.

美女程序员分享数据库常见17个使用误区 - Jaana

1673 1 13K
绝大多数计算机系统都具有某种状态,并且可能依赖于存储系统。我对数据库的了解是随着时间的推移而积累的,但是在此过程中,我们的设计错误导致了数据丢失和中断。在数据繁重的系统中,数据库是系统设计目标和折衷方.

SQLite是一种经典的无服务器Serverless

4302 2

大多数SQL数据库引擎都是以单独的服务器进程提供外部访问,外部客户端想要访问数据库,就需要与服务器进程通信(通常是TCP / IP),这样可以将请求发送到服务器并接收回数据库服务器处理的结果。SQLi.

2PL(两阶段锁定)算法如何工作 -Vlad Mihalcea

9335 1 2K
2PL(两阶段锁定)算法是关系数据库系统用来保证数据完整性的最古老的并发控制机制之一。在本文中,我将解释2PL算法如何工作以及如何以任何编程语言实现它。锁类型在我们开始讨论2PL算法实现之前,解释读和.