自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(468)
  • 收藏
  • 关注

原创 Golang底层原理剖析专栏汇总

汇总目录Golang内置Log包的基本使用Golang日志库Zap基本使用Golang日志切割归档Golang关键字type的两种用法GolangFlag基本使用浅谈Golang并发控制WaitGroup浅谈Golang上下文Context浅谈Golang通道channel浅谈Golang线程安全的sync.Map浅谈Golang广播sync.Cond浅谈Golang对象池sync.pool浅谈Golang原子atomicGolang底层原理剖析之string类型与字符编码Gol

2021-11-17 01:05:23 2511 4

原创 系统设计场景题—MySQL使用InnoDB,通过二级索引查第K大的数,时间复杂度是多少?

这个问题是某大厂面试官提出的,比较考验面试者对MySQL理解程度。本文将此问题记录下来,尽量深入浅出的把所有细节讲清楚。

2022-12-23 21:17:51 1729 1

原创 sealos issue #2157 debug 思路流程记录

sealos issue #2157 debug 思路流程记录

2022-12-06 18:13:28 1049

原创 TinyKv Project4 Transactions

project4就是根据Percolator 2PC实现事务的快照隔离(SI)

2022-09-29 16:05:59 1594

原创 TinyKv Project3 PartC Multi-raft KV

3C要求我们实现调度,3c按照文档直接写即可,比较简单。

2022-09-26 23:32:36 1049

原创 TinyKv Project3 PartB Multi-raft KV

project3B 要实现 project3A 的上层操作,即 LeaderTransfer 和 Add / Remove 的具体应用,涉及到 ConfChange。同时,3B 还要实现 region 的 split。

2022-09-26 16:33:35 1459

原创 TinyKv Project3 PartA Multi-raft KV

Project3是整个项目最难的部分,3a是对3b的铺垫,比较简单,就是对之前的代码增加领导禅让

2022-09-24 22:40:41 1565

原创 TinyKv Project2 PartC RaftKV

project2c 在 project2b 的基础上完成集群的快照功能。分为五个部分:快照生成,快照分发,快照接收,快照应用,日志压缩。

2022-09-24 15:15:53 1734

原创 TinyKv Project2 PartB RaftKV

在Raft基础之上构建一个容错KV服务器。

2022-09-22 00:59:36 1929

原创 TinyKv Project2 PartA RaftKV

project2部分又分成了a、b、c三个小部分。可以说从project1到project2,难度剧增。本文介绍project2的Part A的内容。开始做project2a之前,需要`多读几遍论文`,否则其中的细节会让你非常头疼。而熟悉了论文之后,很多地方按照论文所叙述的去实现即可。比如日志复制与选举安全性。

2022-09-20 22:45:27 2510 1

原创 TinyKv Project1 Standalone KV

project1还是比较简单的,project2的难道就陡增了。对于project1来说,本文更多的还是讲一些不了解的概念。在每一个project1开始之前,仔细阅读文档。

2022-09-18 01:50:23 2266

原创 TinyKv介绍

TinyKv使用 Raft 共识算法构建 key-value 存储系统。它的灵感来自MIT 6.824和TiKV 项目。

2022-09-17 23:59:45 2765

原创 C++文件服务器项目—项目总结与反向代理—7

组件介绍基本写完了,后续进行深入。

2022-09-12 01:45:00 1808

原创 C++文件服务器项目—数据库表设计 与 后端接口设计—6

到本文为止,该项目的前置知识已经写的差不多了。本文规划了数据库表的设计 和 后端与前端接口的设计,接下来就可以编写fastcgi程序进行运行了。

2022-09-12 01:00:00 1321

原创 https相关内容

本文写https相关内容,持续补充

2022-09-11 23:56:54 793

原创 C++文件服务器项目—Nginx+FastDFS插件—5

本文介绍了Nginx+FastDFS插件的安装流程以及文件上传下载的流程。

2022-09-08 23:21:46 2299 4

原创 C++文件服务器项目—FastCGI—4

本文重点介绍FastCGI的概念、如何编写FastCGI程序,以及nginx如何配合fastCGI使用。

2022-09-08 13:19:32 3064 5

原创 C++文件服务器项目—Nginx—3

本文重点介绍nginx的安装与配置,实现反向代理和负载均衡。

2022-09-07 10:17:12 2594 4

原创 C++文件服务器项目—Redis—2

本文简单介绍了一下redis以及`C接口的客户端库hiredis`的使用

2022-09-06 15:41:45 2376

原创 C++文件服务器项目—FastDFS—1

本文的核心重点是介绍FastDFS的概念、构成、配置文件、启动与上传下载的实现。后续将逐步介绍nginx,mysql,redis,fastcgi等内容。

2022-09-05 19:56:05 3983 3

原创 C++11异步操作future和aysnc 、function和bind

本文介绍异步操作future和aysnc 与 function和bind

2022-09-01 16:22:26 1638 3

原创 C++11多线程thread、互斥量、条件变量、原子变量

本文重点理解:线程thread、互斥量mutex、条件变量condition。

2022-08-31 22:50:14 1713 2

原创 C++lambda表达式

本文介绍c++ lambda的使用方法

2022-08-31 09:02:58 1774 2

原创 C++左值/右值、左值引用&/右值引用&&、移动语义move、完美转发forward

C++11 在性能上做了很大的改进,最大程度减少了内存移动和复制,通过右值引用、 forward、emplace 和一些无序容器我们可以大幅度改进程序性能。

2022-08-30 21:39:04 1408 1

原创 C++智能指针[ shared_ptr / unique_ptr / weak_ptr ]介绍与使用

本文介绍[ shared_ptr / unique_ptr / weak_ptr ]的使用,以及shared_ptr 引用计数和weak_ptr 弱引用计数。

2022-08-29 00:00:00 1316 1

原创 高效的数据压缩编码方式 Protobuf

本文介绍protobuf的编码原理以及不同序列化协议之间的对比。

2022-08-24 17:55:02 3869 1

原创 偷懒的网络框架libevent、libev框架介绍

本文对libevent的api进行深入的讲解,并剖析libevent的evbuffer源码。

2022-08-19 02:15:24 2524 1

原创 优雅的处理 accept= -1 出现errno = EMFILE 文件描述符达到上限 的问题

优雅的处理 accept= -1 出现errno = EMFILE 文件描述符达到上限 的问题

2022-08-18 01:36:46 2668 1

原创 手写内存泄漏检测组件

本文介绍内存泄漏检测的核心需求以及注意点,一共4个版本的代码层层迭代。

2022-08-16 14:50:19 2522 1

原创 手写死锁检测组件

本文将从0到1写一个死锁检测组件

2022-08-13 02:21:50 1444 2

原创 循环数组无锁队列的原理与实现

本文介绍基于循环数组的无锁队列的原理与实现。

2022-08-12 03:16:57 3138 1

原创 ZMQ无锁队列的原理与实现

本文介绍ZMQ无锁队列的原理与实现

2022-08-11 20:18:13 3398 2

原创 定时器方案之红黑树与最小堆、时间轮详解

定时器在后端服务器开发过程中,是非常重要的一个组件,因为不可避免的会有许多延时任务需要被处理。那么到底该如何来组织大量的定时任务呢?

2022-08-09 15:11:36 2544 1

原创 手把手教你纯c实现异常捕获try-catch组件

本文用纯c的代码,实现异常捕获try-catch组件。阅读本文需要时刻牢记setjmp和longjmp的对应关系。

2022-08-04 22:41:13 3008 5

原创 CPU的亲缘性affinity

本文简单介绍一下CPU亲缘性以及实现方法。

2022-08-04 16:05:18 1604 1

原创 互斥锁、读写锁、自旋锁,以及原子操作指令xaddl、cmpxchg的使用场景剖析

本文介绍锁,原子操作与临界资源与的使用场景。

2022-08-03 18:33:03 2703 1

原创 Linux线程私有数据Thread-specific Data(TSD) 详解

Linux线程私有数据Thread-specific Data(TSD) 详解。本文将详细介绍pthread_key的用法以及pthread_key的原理。pthread_key在《ntyco协程》中,以及后续文章《try catch的实现》都有用到。跟我一起学习的读者务必搞懂原理。......

2022-08-02 22:00:58 3831 2

原创 C语言volatile关键字、内嵌汇编volatile与编译器的爱恨情仇

本文将详细介绍 C语言volatile与编译器的爱恨情仇,附带介绍一下内嵌汇编volatile的作用;不介绍volatile的原理。注意,本文口语描述的volatile默认是C语言volatile关键字。

2022-08-01 23:44:36 2838 2

原创 图文结合,手把手教你ubuntu18-live-server-amd64服务器版的安装、配置静态ip以及换源

本文介绍ubuntu18的安装,配置静态ip与dns,换源。

2022-07-29 21:15:32 1029 1

原创 mysql连接池的实现

本文介绍mysql连接池的实现。我记得go提供的原生sql包里面就是用的连接池,重在理解连接池的概念即可。

2022-07-29 20:25:21 1245 1

空空如也

空空如也

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

TA关注的人

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