• 2PL(两阶段锁定)算法是关系数据库系统用来保证数据完整性的最古老的并发控制机制之一。在本文中,我将解释2PL算法如何工作以及如何以任何编程语言实现它。 锁类型在我们开始讨论2PL算法实现之前,解释
  • 亚里斯多德以来,哲学家一直在与存在概念作斗争。为什么我们要研究观察我们在世界上看到的东西?这些事物是如何在那里的?有目的吗?它们会永远存在吗?我们是由与其他所有事物一样的东西构成的,还是我们拥有其他物体所缺乏的仇恨或灵魂?1714年,戈特弗里德·莱布尼兹(Gottfried Leib icon
  • 通过了解 Apache Kafka 如何对数据进行排序,您可以确保您的数据或应用程序保持良好的工作状态。尽管Apache Kafka已经赢得了作为功能强大的分布式流媒体平台的声誉,但在确保按您希望的顺序存储和检索数据方面,它还具有一些复杂性。为了捕获流数据,Kafka 将记录 icon
  • 基于微服务的应用程序是一个分布式系统。整个系统由多个较小的服务组成,并且这些服务一起提供了整体应用程序功能。尽管这种体 icon
  • 在现实世界中,我们可能会对我们的业务规则和流程含糊不清。我们可以设置例外,也可以绕过一些步骤以适应我们从未想到的特殊情况。想象一下一个业务规则,即所有客户都必须具有名字,中间名和姓氏。如果某人访问实体商店时没有中间名甚至没有姓氏的,则可以写下他们的名字。在软件中,无法实时应对 icon
  • 作为 Red Hat 的一名咨询架构师,我有幸参与了大量客户项目。每个客户都会带来自己的挑战,但我发现了一些共同点。大多数客户想知道的一件事是如何协调对多个记录系统的写入。回答这个问题通常涉及对双重写入、分布式事务、现代替代方案以及每种方法可能的故障场景和缺点的详细解释。通常,此时客户会意识 icon
  • 检测交易对于审计目的或在未实施良好交易惯例的复杂代码库中可能有用。在这个简短的教程中,我们将介绍几种方法来检测代码中的Spring事务。为了使事务在Spring中工作,必须启用事务管理。如果我们使用具有spring-data- *或spring-tx依赖项的Spring Boot项目 icon
  • 可能最常用的 Spring 注释之一是@Transactional。尽管它很受欢迎,但它有时会被误用,从而导致一些不是软件工程师想要的东西。在这篇文章中,我收集了我个人在项目中遇到的问题。我希望这份清单能帮助您更好地了解交易并帮助解决一些问题。 1. icon
  • 在本教程中,我们将了解Java中事务的含义。因此,我们将了解如何执行资源本地事务和全局事务。这也将使我们能够探索在Java和Spring中管理事务的不同方法。 什么是事务?通常,Java中的事务是指 icon
  • 如果有分布式事务协议,那么每个软件工程师都知道它:“两阶段提交”,也称为2PC。尽管使用了几十年,但是由于缺乏云环境的支持,它却一直在稳步下降。过去在相当长的一段时间里,它是构建企业分布式系统的实际标准。也就是说,随着云成为默认的部署模型,设计人员需要学习如何在没有云的情况下构建可靠 icon
  • 这篇文章是关于写歪斜write-skew的知识以及扩展快照隔离的知识。快照隔离被称为事务隔离级别,它在性能和正确性之间提供了很好的组合,但是此处“正确性”的确切含义通常含糊不清。在这篇文章中,我想分解并准确记录何时发生“写偏斜”事件。 事务快速入门 icon
  • 大多数redis命令可以归类到get/set下。默认情况下,所有这些命令都是原子的。但是,当我们需要顺序执行一组命令时,则不能保证它是原子的。Redis通过multi,exec和discard命令提供了对事务的支持.我们首先告诉redis我们将通过调用multi命令来运行一组操作。然 icon
  • 我学习 Rust 的极其缓慢的旅程仍在继续,被其他项目拖延了。我在 2021 年的注意力主要集中在 Go 和 PostgreSQL 上。让我对 Rust 非常感兴趣的一件事是它为我提供的工具可以让我编写完全按照我期望的方式工作的代码,对其他开发人员强制执行这种行为,并帮助我避免我(或 icon
  • 绝大多数计算机系统都具有某种状态,并且可能依赖于存储系统。我对数据库的了解是随着时间的推移而积累的,但是在此过程中,我们的设计错误导致了数据丢失和中断。在数据繁重的系统中,数据库是系统设计目标和折衷方案的核心。在本系列中,我将分享一些我特别发现的见解,这些见解对那些不擅长该领域的开发 icon
  • Kafka Connect是一个框架,可帮助Kafka连接外部系统,例如数据库,文件系统等,反之亦然。我们处理两种类型的连接器:源连接器:这种类型的连接器有助于将数据从外部系统简化为Kafka Topic。接收器连接器:这种类型的连接器有助于将数据从 icon
  • 自去年 6 月以来,我们注意到 GitLab.com 上的数据库会神秘地停止几分钟,这将导致用户在此期间看到 500 个错误。经过数周的艰苦调查,我们终于发现了造成这种情况的原因:在长事务正在进行时通过 icon
  • 许多开发人员在开始开发企业级应用程序之前,往往会忽略编程语言的错误处理机制。最好以一种可以从异常中恢复(万一发生)的方式开发代码。不同的编程语言以不同的方式处理错误,异常和恢复。Go采用了Defer、Panic和Recover的方式,彼此密切配合以确保程序的顺利执行。  icon