自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

phantom_111的博客

随着时间的流逝痛苦会变得淡薄,然而我并不想让时间来治愈我的痛苦,就算从痛苦中逃脱,忘记一切,得到的也只是停滞,无法前进。

  • 博客(129)
  • 收藏
  • 关注

原创 记一次 Golang 的奇怪错误

看报错的内容中包括「# runtime/cgo」,盲猜是在开发的程序引用了 cgo,毕竟有今天必现提测的大山压着,不管三七二十禁用 cgo 试试。出现这个问题的根本原因,可能是编译器升级后对 C++ 的语法校验更加严格,之前是 warning 的错误,在严格后作为 error 报出。本着排查的思路,写了一个最简单的 「hello world」的程序,发现并不会报错。遇到这个错误,笔者表示十分懵逼,但是作为一个专业的软件开发工程师,遇到问题不可怕,可怕的是没有排查的方向。答案:不可以的,但是发现。

2022-09-13 19:28:09 277

原创 DFA 算法选型思路

上述两个库都是 DFA 算法的一种实现,实现的时候使用 Trie Tree 这种数据结构。虽然笔者在需求评审会议上极力说明,这个需求的复杂程度比较高,自己实现有种种风险,但是无奈人家人多,被产品和负责人怼回来了。注:./filter-en.txt 为与 mian.go 同级的一个文件,包含「fuck」 字符。,但这个更倾向于一个根据一系列规则对敏感数据的识别和处置方案,不大适用本场景。注:做人啊,不能要求太高,连情绪啥的都开源了,人家做这个的公司不得黄了。接着这个思路,笔者从一众开源算法中,挑选到了。..

2022-08-10 19:50:41 59

原创 Dynamo 论文解读

数据通过一致性哈希分散和复制通过对象版本化实现一致性副本之间的一致性有一种类似仲裁的技术和一个去中心化的副本同步协议保证gossip-based分布式故障检测和成员检测协议。

2022-07-23 12:13:52 383

原创 Jmeter 入门使用

最近接了个新项目,整个人都处于非常忙碌的状态。但是学习、复盘才会使人进步,所以还是要抽出时间来学习新的、有趣的知识。对接的测试小姐姐,使用 jmeter 帮忙压测了下供应商的服务在被限流之后的行为是什么?虽然自己写脚本也能完成并发的压测,但是最后总结的压测结果数据不如 jmeter 的广泛和全面,所以趁着时间允许,来研究一波 jmeter 的使用吧。Jmeter 下载地址 https://dlcdn.apache.org//jmeter/binaries/,笔者当时下载的是 5.4.1 的版本,总体的执行命

2022-06-27 21:26:47 165

原创 influxdb 从了解开始

文章目录1. 碎碎念2. 从使用开始2.1 如何安装2.1.1 InfluxDB Server 安装及使用2.1.2 InfluxDB Cli 安装及使用3. 关键概念4. 写入 vs 读取4.1 数据的格式 (protocol)4.1 写入数据4.3 读取数据5. 碎碎念6. 参考资料1. 碎碎念事情是这样的,笔者这周在配置 grafana 的 influxdb 的面板,然后被同事狂问底层是怎么聚合的?然后我的心里就是各种吐槽「就是 复制+粘贴 配置一下,问我底层原理鬼👻才知道,有种非常抓狂的感.

2022-05-14 22:40:42 201

原创 golang 宝藏库推荐—gojsonschema

文章目录1. 写在最前面2. Json schema 介绍2.1 Json schema 是什么2.2 使用 Json schema 的优势2.3 Json schema 关键字说明2.4 Json schema 常用的在线工具3. 例子3.1 使用上述关键字的 json shema3.2 定义一个符合 schema 的 json4. 使用 gojsonschema 的完成上述校验4.1 目录结构定义4.2 校验代码4.3 试试错误的 json5. 碎碎念6. 参考资料1. 写在最前面笔者之前写过一.

2022-04-15 20:42:48 522

原创 基础设施之 K8s 核心组件调研

文章目录1. 背景1.1 K8s 系统架构图1.2 K8s 节点及组件交互流程介绍2. API Server 分析2.1 功能说明2.1.1 集群访问2.1.2 模块之间的通信3. Controller Manager3.1 Replication Controller3.2 Node Controller3.3 ResourceQuota Controller3.4 Namespace Controller3.5 ServiceAccout Controller 与 Token Controller3..

2022-03-22 19:02:19 516

原创 golang 使用总结(1)

文章目录1. 写在最前面2. 锁拷贝问题2.1 问题2.2 原因3. 安全的 marshal/ unmarshal 含有锁的结构3.1 问题3.2 解决4. 将 Proto 序列化的结构放入到 json 的字段中4.1 问题4.2 解决5. 碎碎念6. 参考资料1. 写在最前面笔者最近在赶一个项目,在开发的过程中遇到了几处比较有趣的地方。做个笔记记录,同时方便其人查阅、快速解决类似的问题。锁拷贝问题(Mutex Copy )安全的 marshal/ unmarshal 含有锁的结构(Safe m.

2022-03-13 17:40:29 1183

原创 Linux perf 事件调度算法

文章目录1. 背景2. Introduction3. Event Groups4. The NMI Watchdog5. The Scheduling Algorithm6. Event Constraints Calculation7. Examples8. 碎碎念9. 参考资料1. 背景任何人了解现代 Intel 处理器上的硬件性能监控的第一件事就是每个逻辑核心有三个固定功能计数器和四个通用计数器。只要有足够的计数器用于需要同时测量的所有事件,为每个事件分配一个计数器是可行的。但是,如果事件多于计.

2022-03-07 21:12:34 306

原创 golang 宝藏库推荐

文章目录1. 写在最前面2. mapstructure2.1 用途2.2 例子2.3 坑说明3. validator3.1 用途3.2 例子3.3 坑说明4. 碎碎念5. 参考资料1. 写在最前面笔者在去年 coding 的时候,有用到两个比较好用的库,在此记录下,以便后面再次使用,同时也方便那些有这方面需求的参考。golang map to structure 的库 — https://github.com/mitchellh/mapstructuregolang json 校验库 — h

2022-02-14 18:21:57 344

原创 Cannot execute binary file 之原因

文章目录1. 写在最前面2. 排查方向2.1 非 root 用户2.2 编译目标与执行环境不同2.3 程序需要的动态库或静态库缺失2.3.1 解决办法4. 等等4.1 真·解决办法4.1.1 使用 CGO_ENABLED=04.1.2 更换依赖的基础镜像5. 碎碎念6. 参考资料1. 写在最前面问题:笔者用 kaniko 构建了一个 docker 镜像,基础镜像是基于 Alpine。构建好后,运行编译后的 go 二进制程序。一直提示下面的错误:# ./example.exesh: ./exampl.

2022-01-17 20:23:33 5669

原创 Go 语言编程规范建议(下)

文章目录1. 指导性原则1.1 指向 interface 的指针1.2 interface 合理性验证1.3 接收器(receiver)与接口1.4 零值 Mutex 是有效的1.5 在边界处拷贝 Slices 和 MapsSlices 和 Maps 做为入参1.6 使用 defer 释放资源1.7 Channel 的 size 要么是 1,要么是无缓冲的1.8 枚举从 1 开始1.9 使用 time 处理时间1.9.1 使用 time.Time 表达瞬时时间1.9.2 使用 time.Duration.

2022-01-12 19:10:24 171

原创 Go 语言编程规范建议(上)

文章目录1. 代码总体原则1.1 清晰第一1.2 简洁为美1.3 风格一致2. 规范2.1 命名规范2.1.1 驼峰命名2.1.2 常量2.1.3 变量2.1.4 URL2.1.5 Error2.1.6 接口名2.1.7 文件名2.1.8 包名2.1.9 函数名/方法名2.1.10 导入别名2.1.11 变量声明2.1.12 其他2.2 结构规范2.2.1 避免过长的行2.2.2 一致性2.2.3 相似的声明放在一组2.2.4 import 分组2.2.5 函数分组与顺序2.2.6 减少嵌套2.2.7 不必

2022-01-05 21:14:28 205

原创 Jenkinsfile 使用说明(2)

文章目录1. 编写业务相关的 Jenkinsfile2. 入参及环境变量的配置2.1 配置说明2.2 配置后的界面展示3. 定义一个 kubernetes 的 agent3.1 基于 docker in docker 构建3.2 基于 kaniko 构建镜像4. 拉取代码 & 执行编译4.1 拉取代码4.2 执行编译5. 构建 & 推送 docker 镜像6. 总结7. 碎碎念8. 参考资料经过前一篇文章的介绍以后,大家对于声明式的 jenkinsfile 有了一定程度的了解。现在可以开始

2021-12-28 18:17:36 1887

原创 Jenkinsfile 使用说明(1)

文章目录1. Jenkins 是什么2. 流水线2.1 流水线是什么2.2 流水线的分类2.2 为什么使用流水线3. 声明式流水线——jenkinsfile 的语法3.1 声明式流水线基础语法3.2 典型的声明式流水线例子3.3 流水线基础语法详解3.3.1 agent (require)3.3.2 stages (require)3.3.3 stage (require && alest one)3.3.4 steps (require)3.3.5 environment3.3.6 pa.

2021-12-24 18:30:23 1424

原创 设计数据密集型应用—— 数据系统的未来(12 下)

文章目录1. 写在最前面2. 将事情做正确2.1 数据库的端到端原则2.1.1 正好执行一次操作2.1.2 抑制重复2.1.3 操作标识符2.1.4 端到端的原则2.1.5 在数据系统中应用端到端的思考2.2 强制约束2.2.1 唯一性约束需要达成共识2.2.2 基于日志消息传递中的唯一性2.2.3 多分区请求处理2.3 及时性与完整性2.3.1 及时性2.3.2 完整性2.3.3 数据流系统的正确性2.3.4 宽松地解释约束2.3.5 无协调数据系统2.4 信任但验证2.4.1 维护完整性,尽管软件有 B

2021-12-10 18:34:39 949 1

原创 设计数据密集型应用——数据系统的未来(12 上)

文章目录1. 组合使用衍生数据的工具1.1 理解数据流1.2 衍生数据与分布式事务1.3 全序的限制1.4 排序事件以捕获因果关系2. 批处理与流处理2.1 维护衍生状态2.2 应用演化后重新处理数据2.2.1 参考—铁路上的模式迁移2.3 Lambda 架构2.4 统一批处理和流处理3. 分拆数据库3.1 组合使用数据存储技术3.1.1 创建索引3.1.2 一切的元数据库3.1.3 联合数据库:统一读取3.1.4 分拆数据库:统一写入3.1.5 开展分拆工作3.1.6 分拆系统 vs 集成系统3.17 少

2021-12-03 19:06:49 451

原创 golang 之 Map 思考

文章目录1. 写在最前面2. 值 vs 指针修改生效问题3. 值 vs 指针修改寻址问题4. Why 什么值类型无法寻址5. 碎碎念6. 参考资料1. 写在最前面最近 review 代码的时候,遇到了很多 map[string]pointer 的写法,之前这种写法的时候,笔者总是以 C/C++ 的角度思考,这样写其实是为了节省内存,但其实不然,除了节省内存,还有其他的意义。2. 值 vs 指针修改生效问题先看一个例子,定义一个结构体,其存在两种方法:值类的方法指针类的方法package

2021-11-17 18:47:21 437

原创 设计数据密集型应用——流处理(11)

文章目录1. 传递事件流1.1 消息传递系统1.1.1 直接从生产者传递给消费者1.1.2 消息代理1.1.3 消息代理与数据库对比1.1.4 多个消费者1.1.5 确认与重现传递1.2 分区日志1.2.1 使用日志进行消息存储1.2.2 日志与传统的消息传递相比1.2.3 消费者偏移量1.2.4 磁盘空间使用1.2.5 当消费者跟不上生产者时1.2.6 重播旧消息2. 数据库与流2.1 保持系统同步2.2 变更数据捕获2.2.1 变更数据捕获的实现2.2.2 初始快照2.2.3 日志压缩2.2.4 更新流

2021-11-05 19:04:06 114 1

原创 设计数据密集型应用——批处理(10)

文章目录1. 写在最前面2. 使用 Unix 工具的批处理2.1 简单的日志分析2.1.1 命令链与自定义程序2.1.2 排序 VS 内存中的聚合2.2 Unix 哲学2.2.1 统一的接口2.2.2 逻辑与布线相分离2.2.3 透明度和实验3. MapReduce 和分布式文件系统3.1 MapReduce 作业执行3.1.1 分布式执行 MapReduce3.1.2 MapReduce 工作流3.2 Reduce 侧连接与分组3.2.1 示例:用户活动事件分析3.2.2 排序合并连接3.2.3 把相关数

2021-10-14 19:32:17 156

原创 设计数据密集型应用—一致性与共识(9)

文章目录1. 分布式系统中的错误2. 一致性保证3. 线性一致性2.1 什么使得系统线性一致2.2 线性一致性与可串行化2.3 依赖线性一致性2.3.1 锁定和领导者选举2.3.2 约束和唯一性保证2.3.3 跨信道的时序依赖2.4 实现线性一致性的系统2.4.1 单主复制(可能线性一致)2.4.2 共识算法(线性一致)2.4.3 多主复制(非线性一致)2.4.4 无主复制(也许不是线性一致的)2.4.5 线性一致性和法定人数2.5 线性一致性的代价2.5.1 CAP 定理2.5.2 线性一致性和网络延迟3

2021-09-10 21:04:22 204

原创 设计数据密集型应用——分布式系统的麻烦(8)

文章目录1. 故障与部分失效1.1 云计算与超级计算机2. 不可靠的网络2.1 真实世界的网络故障2.2 检测故障2.3 超时与无穷的延迟2.3.1 网络拥塞和排队2.4 同步网络 vs 异步网络2.4.1 延迟和资源利用3. 不可靠的时钟3.1 单调钟和日历时钟3.1.1 日历时钟3.1.2 单调钟3.2 时钟同步与准确性3.3 依赖同步时钟3.3.1 有序事件的时间戳3.3.2 时钟读取存在置信区间3.3.3 全局快照的同步时钟3.4 进程暂停3.4.1 响应时间保证3.4.2 限制垃圾收集的影响4..

2021-08-24 20:15:28 138

原创 设计数据密集型应用——事务(7)

文章目录1. 事务为什么这么重要1.1 事务的概念1.2 需要事务的原因2. 事务的棘手概念2.1 ACID 的含义2.3 单对象和多对象操作2.3.1 单对象写入2.3.2 多对象事务的需求2.3.3 处理错误和中止3. 弱隔离级别3.1 读已提交3.2 实现读已提交3.3 快照隔离和可重复读3.3.1 实现快照隔离3.3.2 观察一致性快照的可见性规则3.3.3 索引和快照隔离3.3.4 可重复读与命名混淆3.4 防止丢失更新3.4.1 原子写3.4.2 显示锁定3.4.3 自动检测丢失的更新3.4.4

2021-08-05 20:36:33 81

原创 设计数据密集型应用—分区( 6)

文章目录1. 写在最前面2. 分区与复制3. 键值数据的分区3.1 根据键的范围分区3.1.1 根据键的散列分区3.1.2 负载倾斜和消除热点4. 分区与次级索引4.1 基于文档的二级索引进行分区4.2 基于关键词(Term)的二级索引进行分区5. 分区再平衡5.1 平衡策略5.2 运维:手动还是自动平衡6. 请求路由7.碎碎念1. 写在最前面之前读这一章节的时候没有认真思考过序言这句话,这次写章节笔记的时候,突然有被震惊到。是不是有写了很多年代码的人,都没人认真思考过最初学的的「面向对象」和「面向过

2021-07-01 10:11:50 58

原创 CGO 从入门到放弃

文章目录1. 写在最前面2. CGO 调用方式2.1 引入 C 源码2.1.1 将 C 源码嵌入 go 文件2.1.2 将 C 的源文件嵌入到 go 项目2.2 引入链接库的方式2.2.1 链接库源文件的定义2.2.2 在 go 源文件中引用动态链接库3. CGO 调用 C++3.1 demo3.1.1 C++ 部分定义3.1.2 C 部分定义3.1.3 go 部分定义4. 坑点4.1 内存4.2 栈4.3 线程模型5. 碎碎念6. 参考资料1. 写在最前面作为一只弱小可怜又无助的 go 开发,在接

2021-06-16 21:02:08 326

原创 设计数据密集型应用—编码与演化(4)

文章目录1. 编码数据的格式1.1 语言特定的格式1.2 JSON、XML 和 二进制变体1.3 Thrift 与 Protocol Buffers1.4 Avro1.5 模式的优点2. 数据流的类型2.1 数据库中的数据流2.2服务中的数据流:REST 与 RPC2.3 消息传递中的数据流3. 碎碎念新产品的推出,对需求的深入理解,或者商业环境的变化,总会伴随着功能(feature)的增增改改。在大多数情况下,修改应用程序的功能也意味着需要更改其存储的数据:可能需要使用新的字段或记录类型,或者以新方式展

2021-05-21 19:02:16 68 1

原创 设计数据密集型应用—数据系统的基石(1-3)

文章目录1. 可靠性、可伸缩性、可维护性1.1 关于数据系统的思考1.2 软件系统中重要的问题1.2.1 可靠性1.2.2 可伸缩性1.2.3 可维护性2. 数据模型与查询语言2.1 关系模型与文档模型2.1.1 NoSQL 的诞生2.1.2 对象关系不匹配2.1.3 多对一和多对多的关系2.1.4 文档数据库是否在重蹈覆辙2.1.5 关系型数据库和文档数据库在今日的对比2.2 数据查询语言2.3 图数据模型3. 存储与检索3.1 驱动数据库的数据结构3.1.1 哈希索引3.1.2 SSTable 和 LS

2021-05-14 18:57:32 114

原创 设计数据密集型应用——复制(5)

文章目录1. 写在最前面2. 复制2.1 复制的目的2.2 复制的方式3 单领导者3.1 架构图3.2 待解决的问题3.3 复制的实现3.4 解决复制延迟遇到的问题4. 多领导者4.1 架构图4.2 多主复制的应用场景4.3 处理写入冲突4.4 复制拓扑5. 无领导者5.1 架构图5.2 当节点故障时写入数据库5.3 检测并发写入6. 碎碎念7. 参考资料1. 写在最前面最近在看《Designing Data-Intensive Application》这本书,讲的是在设计一个数据密集型的应用的时候有

2021-04-08 18:33:30 95 1

原创 从《能量守恒》论《版本管理》

文章目录1. 写在最前面2. 关于版本管理的思考2.1 最原始的版本管理2.2 版本管理的发展历史3. Git 是如何做分布式版本控制的3.1 分布式版本控制需要做什么3.2 Git 基础功能实现3.3 Git 基础功能的延伸问题3.4 Git 高阶功能简介4. 碎碎念5. 参考资料1. 写在最前面认真思考过能量守恒定律以后,笔者突然觉得这个定理很值得深入思考。因为这个定理不应该仅仅局限于物理学中,在计算机系统设计、社会学中均可使用。什么?你不信,那阔以先看看我的解释,反正学到就是赚到,又不吃亏是吧

2021-03-11 19:05:36 55

原创 索引的本质

文章目录1. 写在最前面1.1 背景1.2 思考2. 索引为了解决什么问题2.1 为什么要加索引2.2 索引的本质2.2.1 论加索引3. 索引的数据结构对比3.1 更快的查找啥?3.2 B+ vs LSM 树3.2.1 B+ 树3.2.2 LSM 树3.2.3 Bw-tree4. 碎碎念5. 参考资料1. 写在最前面1.1 背景这篇文章产生的原因是,我去请教某位同学 LevelDB 的使用场景,经典对话如下:大佬:那你觉得 LevelDB 解决了啥问题?(ps:就挺突然,一个反问,问的我措手不及

2021-03-04 18:50:36 85 3

原创 用什么来存储 Docker 的镜像?

文章目录1. 写在最前面2. 分析下文件系统2.1 文件系统的组成2.2 文件系统的类型2.3 存储驱动3. 非常手段查看镜像3.1 查看本机可用镜像3.2 分析镜像 layers 组成4. 碎碎念5. 参考资料1. 写在最前面「不是你想要用什么,而是你有什么,能用的是什么?」反复思考这句话的时候,突然意识到不是 docker 选择用文件来存储镜像,而是除了文件以外,docker 别无其他选择。从宏观来分析,计算机的组成包括了CPU、内存、磁盘,排除法 CPU 负责逻辑,而内存又是易失存储,所以只能

2021-02-20 19:00:48 94

原创 Docker 底层技术推导

文章目录1. 写在最前面2. 什么推动了docker 出现2.1 出现原因2.2 优势总结3. 大胆猜测一下实现3.1 对比 Virtual Machine3.2 实现 docker 需要什么?3.3 要隔离什么?4. 真实的实现4.1 隔离进程的工具4.1.1 例子4.2 隔离资源的工具4.2.1 子系统介绍4.2.2 使用介绍4.3 附加工具5. 碎碎念6. 参考资料1. 写在最前面在听《牵丝戏》的时候突然灵光乍现想到了「与其扬汤止沸,不如釜底抽薪」这个观点。怎么将这个观点应用到这篇文章中呢?答

2021-02-08 19:18:18 60

原创 分布式一致性协议与事务

文章目录1. 写在最前面2. 解决的问题2.1 从流量说起2.2 从一主多从到分布式一致性协议2.2.1 一主多从2.2.2 分布式一致性协议2.2.3 总结2.3 分布式事务2.3.1 概念2.3.2 思考3. 具体实现协议3.1 分布式一致性协议3.1.1 多主协议3.1.2 单主协议:3.2 分布式事务4. 碎碎念5. 参考资料1. 写在最前面从隔壁大佬那边借来了 zookeeper 的协议 zap 的论文介绍,原本想对比一下 zap 和 raft 协议的异同。但是脑海里突然想到一句话「授人以鱼,

2021-01-25 21:03:45 155 1

原创 golang pprof 的原理分析

文章目录1. 写在最前面2. pprof 提供的能力2.1 查看方式3. pprof 使用3.1 server 服务3.2 非 server 服务4. pprof 源码分析4.1 思考4.2 细节说明4.2.1 SIGPROF 信号4.2.2 pprof 数据写入过程5. 碎碎念6. 参考资料1. 写在最前面最近在改面向集群 profiling 服务代码的时候,想到 golang 原生支持单机的 profiling。原本对比两种实现的异同,但是目前并不能够完全理解集群 profiling 服务的实现原

2021-01-12 21:15:27 1364

原创 tcp KeepAlive vs http KeepAlive

文章目录1. 写在最前面2. 两种 KeepAlive 的区别3. 验证 KeepAlive3.1 http KeepAlive3.1.1 结论3.2 tcp KeepAlive3.2.1 结论4. 碎碎念5. 参考资料1. 写在最前面这个问题的好奇点背景是这个样子的。笔者所在的公司到了一年一度换证书的日子,为了做 double check (嗯,其实就是作为弱鸡的我默默的围观大佬换证书)。在验证更换证书是否生效的时候,有一个很有趣的现象:用之前已经打开的 Google 页面刷新的话,证书还是 2

2020-12-22 21:44:15 79

原创 Redis 协议规范

文章目录1. 写在最前面2. 试试手拼协议2.1 试试 1.3.6 版本的数据插入2.2 试试 3.2 版本的数据插入2.3 思考 3.2 是否兼容了 1.3.6 的协议3. 如何快速插入亿级的键值对3.1 Use the protocol3.2 Generating Redis Protocol4. 碎碎念5.参考资料1. 写在最前面偶然间跟同事讨论起 redis 的 client 和 server 之间传输数据的协议是什么样子的,以 set hello world 为例:我:set hello

2020-12-01 19:34:59 246

原创 Redis 网络库分析

文章目录1. 写在最前面2. I/O 多路复用2.1 什么是 I/O 多路复用2.2 I/O 多路复用的实现3. 网络库源码结构3.1 anet 文件3.2 ae 文件3.2.1 aeEventLoop3.2.2 aeFileEvent3.2.3 aeTimeEvent3.2.4 aeFiredEvent3.3 ae_epoll、ae_select、kae_queue4. 思考5. 碎碎念6. 参考资料1. 写在最前面终于可以边调试边学习代码啦,其实调试的方法很简单,只需要三个步骤,值得拥有:

2020-11-08 21:47:53 129

原创 用 vscode debug c++ 代码

文章目录1. 写在最前面2. 如何配置文件2.1 编译 c++ 代码——task.json2.1.1 创建 task.json 文件2.2.2 编辑 task.json 文件2.1.3 编译 cpp 文件2.2 调试 C++ 代码 —— launch.json2.2.1 创建 launch.json 文件2.2.2 编辑 launch.json3. 调试4. 碎碎念5. 参考资料1. 写在最前面最近在看 1.3.6 版本的 Redis 的源码,有些地方没办法直接通过「看」的方式搞懂,觉得「用」才是快速上

2020-10-19 23:12:06 2006

原创 B-tree 锁分析

文章目录写在最前面为什么需要锁?用锁来保护什么?2.1 保护的内容2.2 二者的区别保护 B-tree 的物理结构issuesLock Coupling(锁耦合)Load Balancing and Reorganization保护 B-tree 的逻辑结构Key Range LockingKey Range Locking and Ghost Records缺点优点Locking in Nounnique IndexesIncrement Lock Modes写在最后参考资料写在最前面上上周末跟许久不

2020-09-16 08:05:31 294 2

原创 《计算机程序构造与解释》读书笔记(2)

文章目录1. 写在最前面2. 构造数据抽象2.1 原因2.2 数据抽象导引2.3 层次性数据和闭包性质2.3.1 序列作为一种约定的界面2.4 符号数据2.4.1 引号2.4.2 集合的表示2.5 抽象数据的多重表示2.5.1 带有标志数据2.5.2 数据导向的程序设计和可加性2.6 带有通用性操作的系统2.6.1 通用型算术包2.6.2 不同类型数据的组合2.7 思考3 碎碎念1. 写在最前面「李白写过那么多诗,他自己会背吗?」「像李白那么不羁的人,估计写完就忘,放不下的是我们俗人自己。」写这篇.

2020-08-17 00:46:23 306

空空如也

空空如也

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

TA关注的人

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