[置顶] 书本大纲:从芯片、分布式到云计算AI时代

摘要: 并发编程艺术 内存模型——连接代码与硬件的契约 以可见性、有序性、原子性为基础,通过happens - before规则和volatile/synchronized同步机制,探讨处理器优化与并发安全的关系,介绍多线程程序底层运行逻辑。 并发原语——在混沌中建立秩序 对比Java与Golang并发哲学 阅读全文

posted @ 2025-07-25 11:23 poemyang 阅读(414) 评论(0) 推荐(0)

[置顶] 书本介绍:技术札纪——有限硬件与无限计算的权衡艺术

摘要: 在当前技术飞速发展的时代,开发者面临着一个看似无法调和的难题:一边是有限的硬件与资源,另一边是无限增长的计算与业务需求。如何在秩序、效率和弹性之间做出明智的权衡,不仅是技术的考验,更是一门决策的艺术。本书,便是对这门艺术的思考与记录。 阅读全文

posted @ 2025-07-24 10:50 poemyang 阅读(629) 评论(0) 推荐(0)

2025年12月8日

像Git一样管理数据:深入解析数据库并发控制MVCC的实现

摘要: MVCC 多版本并发控制(Multi-version Concurrency Control, MVCC)是一种通过维护数据多个版本来实现并发控制的技术。其基本思想是为每次事务生成一个新版本的数据,在读数据时选择不同版本的数据即可以实现对事务结果的完整性读取。在使用MVCC 时,每个事务都是基于一个 阅读全文

posted @ 2025-12-08 22:00 poemyang 阅读(155) 评论(0) 推荐(0)

2025年12月3日

守护“真相之源”:深入理解数据库的预写日志(WAL)与检查点技术

摘要: 如果说缓存和消息中间件处理的是流量的“流动”问题,那么数据库系统要解决的,则是数据的“存在”问题——即数据的最终正确性与持久性。它是整个系统的“真相之源”(Source of Truth)。 日志技术 在考虑数据库系统的持久性时,关键的考虑因素是如何在数据库中实现数据的持久化。例如,在关系型数据库中 阅读全文

posted @ 2025-12-03 16:34 poemyang 阅读(107) 评论(1) 推荐(1)

2025年12月2日

从硬盘I/O到网络传输:Kafka与RocketMQ读写模型及零拷贝技术深度对比

摘要: 消息写读 在Kafka的数据存储架构中,一个主题由一个或多个分区组成。在物理存储上,每个主题-分区都对应着硬盘上的一个独立目录,而消息数据则以日志段文件(Log Segment)的形式存储在这些目录中。随着数据的不断写入,当一个日志段文件达到预设的大小(例如1GB)或时间阈值时,它会被关闭并变为只读 阅读全文

posted @ 2025-12-02 21:46 poemyang 阅读(214) 评论(1) 推荐(2)

2025年11月11日

从同步耦合到异步解耦:消息中间件如何重塑系统间的通信范式?

摘要: 当成百上千的服务需要相互协作时,它们之间的通信模式变得至关重要。如果服务间采用紧密耦合的同步调用,一个服务的延迟或故障,就可能引发连锁反应,导致系统性的“雪崩”。 消息中间件正是为了打破这种刚性依赖而生。它在服务之间建立了一个异步的通信渠道,通常是一个消息队列。生产者服务只需将任务(即“消息”)投递 阅读全文

posted @ 2025-11-11 23:01 poemyang 阅读(203) 评论(0) 推荐(0)

2025年11月10日

从局部性原理到一致性模型:深入剖析缓存设计的核心权衡

摘要: 缓存:高速存取数据的前哨站 缓存的根本思想,源于一个在计算机科学中被反复验证的黄金法则——局部性原理(Principle of Locality)。该原理包含两个层面: 1)时间局部性(Temporal Locality):如果一个数据项被访问,那么在不久的将来,它极有可能被再次访问。例如,一篇热门 阅读全文

posted @ 2025-11-10 15:14 poemyang 阅读(226) 评论(0) 推荐(1)

2025年11月7日

万丈高楼平地起:从“输入-处理-输出”第一性原理,看懂系统架构的演进

摘要: 系统设计的复杂性,往往源于其需要应对的外部压力。对于互联网应用而言,用户规模的增长和流量的瞬时波动,是其必须面对的常态。一个未经深思熟虑的系统,在流量洪峰面前可能会变得迟缓甚至不可用,直接影响用户体验与业务目标。 因此,构建一个能够从容应对压力的系统架构,便成为一项核心的工程命题。 本文将探讨一种行 阅读全文

posted @ 2025-11-07 16:31 poemyang 阅读(187) 评论(0) 推荐(0)

2025年11月6日

内存泄漏 vs. 内存溢出:剖析Java虚拟机两大内存绝症的病因与疗法

摘要: 内存泄漏和内存溢出是Java程序中最常见的两类内存管理问题。它们都与内存息息相关,但本质、成因和解决方法截然不同。 内存泄漏 内存泄漏指的是程序在向系统申请内存后,由于设计缺陷或编码错误,导致某些已经不再被使用的对象仍然被引用链持续持有,从而无法被垃圾回收器识别和回收。这些无用对象会像僵尸一样永久地 阅读全文

posted @ 2025-11-06 21:52 poemyang 阅读(244) 评论(0) 推荐(0)

2025年11月5日

告别漫长GC停顿:深入解析G1如何实现可预测的毫秒级响应

摘要: G1(Garbage-First)垃圾回收器是一款面向服务端应用、为大内存和多处理器系统设计的革命性垃圾回收器。G1的核心设计目标是在满足高吞吐量的同时,建立一个“可预测的停顿时间模型”(Pause-Time Model),让使用者可以明确指定在一个长度为M毫秒的时间片段内,消耗在垃圾回收上的时间大 阅读全文

posted @ 2025-11-05 18:27 poemyang 阅读(180) 评论(0) 推荐(0)

2025年11月4日

吞吐量、延迟、内存:深入理解垃圾回收的“三元悖论”

摘要: 垃圾回收算法的评价标准:吞吐量、延迟、内存,孰轻孰重? 评估和选择垃圾回收器时,不存在一体通用的最优解。不同的应用场景对性能的要求截然不同,因此需要通过一套标准化的指标来衡量垃圾回收算法的特性。通常,关注三个主要的、且相互制约的评价指标:吞吐量(Throughput)、最大暂停时间(Max Paus 阅读全文

posted @ 2025-11-04 17:11 poemyang 阅读(256) 评论(0) 推荐(0)

2025年11月3日

不止新生代与老年代:深入Java虚拟机堆内存布局与TLAB、卡表等优化机制

摘要: Java虚拟机运行数据区域 在JDK 8及以上版本中,Java虚拟机运行时数据区域主要包括以下部分: 1)堆(Heap):这是Java虚拟机中最大的内存区域,所有线程共享,主要用于存放对象实例和数组。这也是垃圾回收的主要区域,因此也被称作GC堆(Garbage Collection Heap)。 2 阅读全文

posted @ 2025-11-03 16:41 poemyang 阅读(110) 评论(0) 推荐(0)

导航