上篇文章 MySQL 事物隔离级别与锁(上) 中,我们主要介绍了在 Read UnCommitted 和 Read Committed 事物隔离级别下执行特定 SQL 的加锁情况,在本篇文章中,我们将重点分析 MySQL InnoDB 默认的事务隔离级别 Repeatable Read 在执行特定 SQL 时的加锁情况。
MySQL 事物隔离级别与锁(上)
MySQL 通过设置不同的事物隔离级别,数据库可以在并发性能与并发问题之间进行权衡,这种权衡离不开 MySQL 提供的多样化锁支持。MySQL 锁可以分为 表级锁、行级锁、意向锁、共享锁、排他锁,在 MySQL InnoDB 引擎下的锁会有更多细致的分类,这篇文章我们主要介绍 MySQL InnoDB 下的锁机制。
MySQL 事务隔离级别与MVCC
事物的隔离主要是为了控制多个事物并发执行时相互间的影响,多个事物可能会在同一时刻访问和修改同一组数据,这会产生各种并发问题,导致数据不一致。通过设置不同的事物隔离级别,数据库可以在并发性能与并发问题之间进行权衡,以适应不同应用场景的需求。
MySQL 事务隔离级别与并发问题
在数据库系统中,事务的隔离性是保证多个事务并发执行时不会相互干扰的重要特性。在本文中,我们将介绍 MySQL InnoDB 中的四种事务隔离级别,并讨论每种隔离级别可能产生的并发问题。
A/B testing, Canary release, Blue–green deployment, Gray-box testing
你是否对 A/B testing, Canary release, Blue–green deployment, Gray-box testing 感到困惑?理解并有效利用这些策略,对提升软件质量和用户满意度有很大的帮助。本篇博客将会带大家了解这些策略背后的细节。
Orika ClassLoader
使用了很多年的 Java Bean 对象映射框架 Orika,最近运行报错了,异常出现在某些特定的使用场景下,具体场景在 Spring 容器中使用 CompletableFuture,异步任务中进行一些 Java Bean 的对象映射,异常信息:
1 | Caused by: ma.glasnost.orika.impl.generator.CompilerStrategy$SourceCodeGenerationException: Error compiling ma.glasnost.orika.generated.Orika_XXX_YYY_Mapper383167261886761$8 |
本篇博客将分析记录 Orika 使用异常产生的原因,同时回顾一些相关知识
How Many J In Java
So many !
写 Java 程序或者了解过 Java 语言的朋友,可能经常会听到 JSR、JDK、J2EE… 等等 J 开头的缩写词,这些缩写有时候确实会让人迷糊,而且因为历史原因,这些词的含义也在不停变化,可能也会更加难以理解。这篇博客将记录这些缩写词的含义
Java Database Connectivity
JDBC 是 Java Database Connectivity 的缩写,是 Java 应用程序的 API,用于访问数据库。1997年2月19日发布的 JDK 1.1 版本中就已经包含了 JDBC 的实现,从 JDBC 3.0 版本开始,JDBC 在 JCP (Java Community Process) 机制下进行迭代开发。在 JSR 54 中有关于 JDBC 简短的底层技术描述:JDBC is a Java API for executing SQL statements
Kubernetes Cluster With Docker
Kubernetes 是一款开源的容器编排系统,用于自动部署、扩容和管理容器应用,因为 Kubernetes 的首字母和尾字母之间有8个字母,所以也被简称为 K8s。K8s 在 v1.24 版本之前默认集成了 Docker Engine 作为 K8s 的容器运行时,而在 v1.24 及之后的版本中使用 containerd 作为 K8s 的容器运行时,本篇文章记录如何在 v1.24之后的 K8s 版本中使用 Docker Engine 作为容器运行时以及如何离线安装 K8s 集群
Deploying ClickHouse - 2S-2R
一般情况下 ClickHouse 1S-2R 的集群模式足够使用,当服务无法 scale up,服务器已经无法继续升级配置,这个时候我们可以选择数据分片来进行服务的 scale out,通过对服务的横向扩展来提升服务能力。本文记录 2S-2R (两个分片两个副本)的集群搭建,以及常用操作