自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杨领well的专栏

君子食无求饱,居无求安,敏于事而慎于言,就有道而正焉。

  • 博客(328)
  • 资源 (21)
  • 问答 (1)
  • 收藏
  • 关注

原创 图解 paxos 论文《The Part-Time Parliament》

本文以图文并茂的方式重新演绎 Paxos 开山之作 《The Part-Time Parliament》[1],并尝试解释原论文中语焉不详的地方。

2023-02-22 15:42:44 281

原创 分布式共识算法随笔 —— 从 Quorum 到 Paxos

复制(Replication) 是一种通过将同一份数据在复制在多个服务器上来提高系统可用性和扩展写吞吐的策略, 。常见的复制策略有主从架构(Leader/Follower), 多主架构(Multi-Leader) 和 无主架构(LeaderLess)[1]。在无主架构模式下,需要保证多个节点写入数据的一致(即共识(consensus))。

2023-01-19 16:18:22 679

原创 图说论文《LSM-based Storage Techniques: A Survey》

本文从 《LSM-based Storage Techniques: A Survey》 摘取部分图片,来介绍 LSM tree 的相关内容。详细内容请查看。

2022-09-17 19:06:19 526 1

原创 Redis 源码解读之逐出策略

Redis 源码解读之逐出策略背景和问题本文想解决的问题:redis 触发逐出的时机是怎样的?redis 逐出策略有哪些?如何在海量的 key 中快速找到逐出评价值(idle)最高的key,并将之逐出?LFU 算法的频率是如何统计的?结论redis 触发逐出的时机是怎样的?如图,主要有两个地方会触发逐出。更新 maxmemory 参数,导致实际使用内存大于该限制。处理客户端请求,使用到的内存大于内存限制。redis 逐出策略有哪些?逐出策略主要分为两个维

2021-04-05 08:26:11 335

原创 Redis 源码解读之 expire 的时机

本文想解决的问题:1. redis 如何感知并触发 key 过期的?2. 如何防止大规模的 key 同时过期,导致 redis 主循环阻塞在清理过期 key?3. 如何防止大 key 过期,导致 redis 主循环阻塞在清理大 key?4. 主动过期操作 activeExpireCycle 为什么要分为 beforesleep 期间执行的 FAST 循环 和 在定时任务中的 SLOW 循环?5....

2021-03-27 10:29:38 753 2

原创 Redis 源码解读之事件循环机制

本文想要解决的问题:1. Redis 事件循环(EventLoop)是怎样的?2. Redis 有几类事件,分别是怎么执行的?3. 如果事件循环没有文件事件(只有定时事件或没有任何事件),那么整个事件循环系统是怎么运行的?

2021-03-21 15:07:07 1367 2

原创 Redis 源码解读之 Rehash 的调用时机

Redis 源码解读之 Rehash 的调用时机背景和问题本文想要解决的问题什么时机触发 Rehash 操作什么时机实际执行 Rehash 函数结论背景问题的结论源码分析渐进式 Rehashrehash 算法描述触发 Rehash 的时机执行 Rehash 的时机附着在其他操作之后定时任务在 redis server 初始化时,会注册一个计时器事件, 定时执行 serverCron 任务。(关于 redis 的事件循环机制,有机会单独开几篇博客来介

2021-03-14 00:18:04 3842 14

原创 分而治之的分治思想

分而治之的分治思想分治思想分(Devide):递归地将问题分解为多个形式与原问题一致,规模更小的子问题。治(Conquer): 求解子问题。(如果存在重叠的子问题, 则可以考虑用记忆搜索或动态规划进行优化)合并(Combine): 将子问题的解合并为原问题的解。归并排序(Merge Sort)void MergeSort(int* nums, int left, int right): 对 nums 数组 [left, right) 区间的元素进行排序。分(Devide):令 mi

2021-03-03 06:53:42 521

原创 GoLang 的协程调度和 GMP 模型

GoLang 的协程调度和 GMP 模型GoLang 是怎么启动的关于 GoLang 的汇编语言,请查阅 参考文献[1] 和 参考文献[2]编写一个简单的 GoLang 程序 main.go, 用 go build -o main main.go 编译生成可执行文件 mainpackage mainimport "fmt"func main(){ fmt.Println...

2019-12-14 16:01:40 1998 1

原创 TCP/IP 协议(10):TCP 协议一百问

TCP/IP 协议(10):TCP 协议一百问杨领well 的 TCP/IP 协议专栏 TCP 协议部分一直没有更新,是因为我不确定到底应该怎么来介绍 TCP 协议才能干货满满。最后我决定以 Q&A 的形式来介绍 TCP 协议,应该就不会遗漏什么了吧。P.S. 不要问我为什么 《TCP 协议一百问》 没有一百问。 (> v <)TCP 协议全称是 传输层控制协议(......

2019-08-16 23:33:47 807

原创 libco 源码剖析(1): 协程上下文切换之 32 位

libco 源码剖析(1): 协程上下文切换之 32 位相关背景资料32 位协程上下文结构如下:// coctx.hstruct coctx_t{ void *regs[ 8 ]; size_t ss_size; char *ss_sp;};32 位协程上下文中的寄存器信息注释如下:// coctx.cpp// low | regs[0]: ret |// ...

2019-07-05 15:18:30 3716 2

原创 内存布局与栈

Professional Assembly Language Chapter 1: What Is Assembly Language?该系列文章是《Professional Assembly Language》 的读书笔记汇编语言是一种用助记符号表示操作指令机器码的语言。汇编语言程序一般由下述三个部分来定义程序操作:操作码助记符(opcode mnemonics):如,push %e...

2019-04-21 22:37:56 402

原创 TCP/IP协议(9): UDP(User Datagram Protocol) 协议 —— 最简单的传输层协议

TCP/IP协议(9): UDP(User Datagram Protocol) 协议 —— 最简单的传输层协议关于用户数据报协议(User Datagram Protocol, UDP)协议UDP 协议是一种保留消息边界的简单的传输层协议。一般来说,每次应用层请求的 UDP 输出操作只产生一个 UDP 数据报。该协议被正式定义在 RFC 768。该协议为应用程序提供一种向其他程序发送消息...

2018-11-17 21:58:40 1407

原创 TCP/IP协议(8): ICMP(Internet Control Message Protocol) 协议 ——诊断和控制 IP 协议层

TCP/IP协议(8): ICMP(Internet Control Message Protocol) 协议 ——诊断和控制 IP 协议层关于网际控制报文协议(Internet Control Message Protocol, ICMP)ICMP 数据包ICMP 报文的常见类型参考文献Internet Control Message Protocol - WikipediaW.R...

2018-10-09 21:23:29 3133

原创 TCP/IP协议(7): NAT(Network Address Translation) —— 解决 IPv4 地址短缺的问题

TCP/IP协议(7): NAT(Network Address Translation) —— 解决 IPv4 地址短缺的问题关于 NAT(Network Address Translation)随着互联网技术的发展,**因特网(Internet) **接入的网络设备越来越多,未分配的 IP 地址越来越少。网络地址转换(Network Address Translation, NAT) 通过...

2018-10-04 22:45:48 2521

原创 TCP/IP协议(6): DHCP(Dynamic Host Configuration Protocol) 协议 —— 网络地址的分配方式

TCP/IP协议(6): DHCP(Dynamic Host Configuration Protocol) 协议关于 DHCP 协议关于 BOOTP(BOOTstrapping Protocol) 协议关于 DHCP 协议DHCP 协议的基本内容DHCP 协议的详细流程DHCP 协议消息参考文献...

2018-09-13 14:19:44 1946

原创 TCP/IP协议(5): IP(Internet Protocol) 协议 —— 连接各个网络的协议

TCP/IP协议(4): IP(Internet Protocol) 协议关于 IP(Internet Protocol) 协议IP 协议的主要内容IP 协议包(Packet)IPv6 协议参考文献

2018-09-04 08:41:27 5063

原创 TCP/IP协议(4): 地址解析协议(ARP) —— 网络地址转换为物理地址的方式

TCP/IP协议(4): 地址解析协议(ARP)关于地址解析协议(Address Resolution Protocol, ARP)关于 ARP 地址解析协议(Address Resolution Protocol, ARP) 协议是用于根据给定网络层地址,通常是 IPv4地址,查找其对应的数据链路层地址,如 MAC地址,的协议。 ARP 协议 定义于 1982 年的 RFC...

2018-08-26 21:17:52 12751 6

原创 TCP/IP协议(3): Wi-Fi(IEEE 802.11) 协议 —— 构成无线局域网的基本协议

TCP/IP协议(3): IEEE 802.11 协议关于 IEEE 802.11 协议关于 IEEE 802.11 IEEE 802.11是一套媒体访问控制(MAC)和物理层(PHY)规范,用于在900兆赫和2.4、3.6、5 和 60 GHz 频段实现无线局域网(WLAN)计算机通信。 (IEEE 802.11 is a set of media access cont...

2018-08-19 19:13:44 6946

原创 TCP/IP协议(2): 以太网(IEEE 802.3) 协议 —— 构成有线局域网的基本协议

TCP/IP协议(2): 以太网协议关于以太网(Ethernet) 以太网(Ethernet) 是一套广泛应用于局域网(LAN), 城域网(MAN) 和广域网(WAN) 的一套计算机网络技术。 它在 1980 年第一次商业化引入, 并在 1983 年被标准化 IEEE 802.3,之后被改进以支持更高比特率和更长的链路距离。 (Ethernet /ˈiːθərnɛt/...

2018-07-28 22:51:19 16198 1

原创 TCP/IP协议(1): IP 地址和寻址方式 —— IP 协议的基础

TCP/IP协议(1): IP 地址和寻址方式 最近在重学计算机网络,给自己立一个 flag,有感而发的时候写关于 TCP/IP 协议栈的系列博客。 IP 地址IP 地址(Internet Protocol address, IP address) 在 TCP/IP 协议栈中,起着至关重要的位置。IP 地址 不仅能唯一标识与之关联的主机,还能够指出该主机在网络中的位置,以方便我们...

2018-07-21 21:20:29 11556 3

原创 makefile 入门第一课

一起来写 makefile 百度百科makefile词条: 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中。 makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译, 甚至于进行更复杂的功能操作,因为 makefile 就像一个 Shell 脚本一样,其中也可以执行操作系统的命令。简单了解...

2018-07-14 21:42:23 338

原创 STL中的智能指针(Smart Pointer)及其源码剖析: std::unique_ptr

STL中的智能指针(Smart Pointer)及其源码剖析: std::unique_ptr和 std::auto_ptr一样,std::unique_ptr也是一种智能指针,它也是通过指针的方式来管理对象资源,并且在 unique_ptr 的生命期结束后释放该资源。unique_ptr 持有对对象的独有权 —— 两个 unique_ptr 不能指向一个对象,不能进行复制操作只能进行移动操作。

2017-02-23 21:58:58 16152 2

原创 STL中的智能指针(Smart Pointer)及其源码剖析: std::auto_ptr

STL中的智能指针(Smart Pointer)及其源码剖析: std::auto_ptr本文主要介绍了 auto_ptr的使用及其源码。auto_ptr是STL中的智能指针家族的成员之一, 它管理由new expression获得的对象,在auto_ptr对象销毁时,他所管理的对象也会自动被delete` 掉。

2017-02-20 12:22:09 14232

翻译 cppreference.com关于值类型的详细解读:lvalue,rvalue,xvalue,prvalue,glvalue

基本值类型与表达式的两个属性相对应:1) 有"身份"[has identity]:能够确定某个表达式是否和另一个表达式指涉[refers to]同一个实体,例如,通过比较它们标识[identify]出来的函数或者对象的地址(直接或间接得到的)。2) 能被移动[can be moved from]:能够被移动构造函数、移动赋值操作符或者其它实现[implement]移动语义[move semantics]的重载函数绑定[bind to]。

2016-04-17 13:58:56 121231 2

原创 万字长文解析最常见的数据库恢复算法: ARIES

ARIES(Algorithms for Recovery and Isolation Exploiting Semantics) 是一种能够恢复系统状态并处理系统崩溃带来的问题的重要技术。该算法为处理数据库中的恢复、并发控制和事务管理问题等提供了全面的解决方案。它将上述的架构系统的整合在一起,提供一种通用化的处理思路。当前市面上绝大多数数据库的 Recovery 逻辑都是基于 ARIES 优化改造实现的。

2023-06-30 22:09:59 377

原创 【技术分享】万字长文图文并茂读懂高性能无锁 “B-Tree 改”:Bw-Tree

本文将介绍 BW-Tree,这是一种高效的并发索引结构,被广泛应用于现代数据库系统中。BW-Tree 是由微软研究院开发的,旨在解决传统 B+ 树在高并发环境下的性能瓶颈。它结合了 B+ 树和前缀树的优点,具有出色的插入、删除和范围查询性能。

2023-05-27 23:04:08 523

原创 [深度好文]10张图带你轻松理解关系型数据库系统的工作原理

索引是一种帮助减少数据查询时间的数据结构。索引在实现这一目标时,需要付出存储、内存和保持更新(较慢的写入速度)的额外成本,这使得我们可以跳过检查每一行表的繁琐任务。就像书后面的索引页一样,它可以帮助你找到正确的一页。事务是数据库操作的基本单位,它要么完全成功要么完全失败,不可能存在部分成功部分失败的情况。

2023-05-21 10:36:09 588

原创 Redis 源码解析之通用双向链表(adlist)

Redis源码中广泛使用,作为一种通用的双向链表,用于简单的数据集合操作。adlist提供了基本的增删改查能力,并支持用户自定义深拷贝、释放和匹配操作来维护数据集合中的泛化数据value。

2023-04-08 12:20:57 273 1

原创 图说论文《An Empirical Evaluation of In-Memory Multi-Version Concurrency Control》

本文从《 An Empirical Evaluation of In-Memory Multi-Version Concurrency Control》摘取部分图片,来介绍 MVCC。该文从并发控制协议,版本存储模型,垃圾回收机制,索引机制四个方面阐述了 MVCC 的现状。更多详细内容,请查看。

2022-10-05 14:54:49 482

原创 QQ-Like(1):用 Qt 编写 QQ 登录窗口

QQ-Like(1):用 Qt 编写 QQ 登录窗口类的功能LoginWnd: 登录主窗体: 主要包含两个页面: 登录页面和登录中页面LoginWndMainPage: 窗体的登录界面LoginWndLoginingPage: 窗体的登录中界面LoginLineEdit: 用户名密码的输入框类CheckBox: 自定义的勾选框: 主要用于自动登录和记住密码ClickableL......

2022-07-26 00:13:24 483

翻译 K8s 网络新手教程(Kubernetes Networking Guide for Beginners)

K8s 网络新手教程(Kubernetes Networking Guide for Beginners)原文链接: Kubernetes Networking Guide for Beginners译者注: 建议对照阅读 The Layers of the OSI Model Illustrated. (有机会翻译下这篇, 挖坑不填 )译者注:Node: Pod 运行的环境。根据实际情况, 可以是虚拟机或物理机。Pod: Kubernetes 创建和管理计算资源的最小可部署单元, 类

2021-07-24 08:24:35 595

原创 Redis 源码解读之 AOF Rewrite

2021-04-13 06:39:34 247

原创 LeetCode: 335. Self Crossing

LeetCode: 335. Self Crossing题目描述You are given an array x of n positive numbers. You start at point (0,0) and moves x[0] metres to the north, then x[1] metres to the west, x[2] metres to the south, x...

2019-12-02 09:23:33 190

原创 LeetCode: 334. Increasing Triplet Subsequence

LeetCode: 334. Increasing Triplet Subsequence题目描述Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the array.Formally the function should:Return true if...

2019-11-27 09:18:26 116

原创 LeetCode: 332. Reconstruct Itinerary

LeetCode: 332. Reconstruct Itinerary题目描述Given a list of airline tickets represented by pairs of departure and arrival airports [from, to], reconstruct the itinerary in order. All of the tickets belo...

2019-11-26 09:20:35 224

原创 LeetCode: 331. Verify Preorder Serialization of a Binary Tree

LeetCode: 331. Verify Preorder Serialization of a Binary Tree题目描述One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, we record the node’s value. If i...

2019-11-25 08:22:20 157

原创 LeetCode: 330. Patching Array

LeetCode: 330. Patching Array题目描述Given a sorted positive integer array nums and an integer n, add/patch elements to the array such that any number in range [1, n] inclusive can be formed by the sum ...

2019-11-24 17:28:09 172

原创 LeetCode: 329. Longest Increasing Path in a Matrix

LeetCode: 329. Longest Increasing Path in a Matrix题目描述Given an integer matrix, find the length of the longest increasing path.From each cell, you can either move to four directions: left, right, up...

2019-11-22 09:32:47 165

原创 LeetCode: 328. Odd Even Linked List

LeetCode: 328. Odd Even Linked List题目描述Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in...

2019-11-21 08:16:16 145

Debugging with gdb.pdf

Debugging with gdb.pdf,【源码】RapidJSON 源码剖析(0.1):调试工具 GDB 的使用

2018-08-19

跟我一起写 Makefile

跟我一起写 Makefile,陈皓 本文由作者免费发布到网上,为了让更多人看到,我转载到我的CSDN 资源。 本应该免费的,但是 CSDN 规定所需下载资源分数至少为 1, 因此,暂且设为 1 吧。

2018-07-14

Gnu标准的make文档

The make utility automatically determines which pieces of a large program need to be recompiled, and issues commands to recompile them. This manual describes GNU make, which was implemented by Richard Stallman and Roland McGrath. Development since Version 3.76 has been handled by Paul D. Smith. 2018/7/5 GNU make http://www.gnu.org/software/make/manual/make.html#Search-Algorithm 14/248 GNU make conforms to section 6.2 of IEEE Standard 1003.2-1992 (POSIX.2).

2018-07-14

Algorithm Design(算法设计)中英 带目录

Algorithm Design(算法设计)中英 带书签目录 Kleinberg 科林伯格 高清

2018-01-12

The Vim Tutorial and Reference By Steve Oualline

The Vim Tutorial and Reference By Steve Oualline I'm not sure this book is a labor of love or a love of labor. It certainly is the longest book I've written. When I first started using Vim I noticed that there were a “few” commands that Vim had that it's the old Vi editor didn't have. So I decided to write a book which would serve as documentation to this wonderful editor. As part of my preparation I checked existing books for the Vi editor. They were about 150-200 pages long, so I figured that my book would turn out about 250-300 pages. Turns out that Vim has a lot more features than expected and as you can see the book is over 800 pages. The goal of this book is to provide a tutorial to show the reader how to use the power of Vim to solve common problems. Also the book attempts to show you visually the operation of very major command and option, and to fully document the rest. Unfortunately, I've had to impose some limits on the book. This book does not cover editing in any language but English mostly due to the fact that English is the only language I know. Also it does not cover the interfaces to external tools which I do not posses.

2017-12-20

垃圾回收算法与实现,Turling

垃圾回收算法与实现,Turling 高清 非扫描版 垃圾回收算法与实现,Turling

2017-12-08

Objective-C程序设计 第四版 高清

Objective-C程序设计 第四版Objective-C程序设计 第四版Objective-C程序设计 第四版Objective-C程序设计 第四版Objective-C程序设计 第四版Objective-C程序设计 第四版Objective-C程序设计 第四版Objective-C程序设计 第四版Objective-C程序设计 第四版

2017-12-07

The Transport Layer Security (TLS) Protocol V1.1

The Transport Layer Security (TLS) Protocol V1.1

2017-08-25

HTTP权威指南.pdf

HTTP权威指南.pdf

2017-07-28

图解HTTP 彩色版.pdf

图解HTTP 彩色版.pdf 只需要2积分

2017-07-26

思科的NAC说明(中文版).pdf

思科的NAC说明(中文版).pdf

2017-07-26

Komic, 将rar的漫画转化为pdf的神器

Komic, 将rar的漫画转化为pdf的神器。方便在电纸书看漫画。

2016-12-19

C++多线程编程中文版

C++多线程编程中文版

2016-12-19

第七届蓝桥杯大赛个人赛省赛(软件类)真题

第七届蓝桥杯大赛个人赛省赛(软件类)真题

2016-12-07

The_C++_Programming_Language,Special_Edition.

The_C++_Programming_Language,Special_Edition. C++编程语言英语

2016-07-09

Disk-Based_Container_Objects By Tom Nelson

Disk-Based_Container_Objects By Tom Nelson

2016-07-07

C++-MFC快速超简单入门

C++-MFC快速超简单入门

2016-05-25

2015年第六届蓝桥杯大赛个人赛决赛(软件类)真题

2015年第六届蓝桥杯决赛个人赛,C++ JAVA A B C组真题

2016-05-25

2014年第五届蓝桥杯大赛软件类C_C++ B组全国总决赛真题

2014年第五届蓝桥杯大赛软件类C_C++ B组全国总决赛真题.

2016-05-24

安装包制作

将VC写的程序制作成安装包。 不知道如何制作的这是教程http://teach.hanzify.org/article/696-1263372559.html

2015-07-26

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除