使用 raft + 单机 KV 引擎构建分布式 KV 存储,是一种常见的方式。比如 TiKV, CockroachDB 等。本文重点讨论如何进行 raft snapshot。
使用 raft + 单机 KV 引擎构建分布式 KV 存储,是一种常见的方式。比如 TiKV, CockroachDB 等。本文重点讨论如何进行 raft snapshot。
braft 是一个较多人使用的 C++ raft 框架。开发者基于其抽象接口实现自己的业务逻辑,方便实现 raft 高可用的服务。本文从 metrics 入手,梳理开发者应该持续关注哪些监控变量。以其为线索,阅读源码探究其实现原理。力争做到心里有谱,不惧异常。
作为 go 开发者,我们可能忽略了一名英雄:在内存垃圾标记之后,拾荒器 (scavenging) 最终负责把无用内存归还给操作系统。本文结合例子和源码,分析 go scavenging 的策略,为内存关键型程序提供一些小建议。
Stream Layer 扮演 WAS 数据存储的角色。本文阅读论文,思考并学习 stream/extent 的实现机制。
本系列文章是笔者阅读微软存储系统论文 《Windows Azure Storage: a highly available cloud storage service with strong consistency》的笔记和思考。
本文中,我们将探究 Linux 中 cpu 使用率 iowait 定义和计算方式。iowait 很高的系统,一定存在 IO 瓶颈吗?通过实验验证和讨论了综合观测系统的 IO 压力的方式。
限流器是服务治理的重要一环。但常见的讨论集中于对 频率 的限制。本文结合笔者最近的需求,分析 Go 官方限流器 time/rate 的实现原理,结合实践对 带宽/流量限制 可能遇到的问题进行讨论。
100 Go Mistakes and How to Avoid Them 阅读笔记。4-Control Structures, 6-Functions and Methods, 7-Error Management
100 Go Mistakes and How to Avoid Them 一书主要描述了使用 Go 语言编程时的常见问题。本文是博主对第三章 - 数据类型 Data type 的阅读笔记。
100 Go Mistakes and How to Avoid Them 一书主要描述了使用 Go 语言编程时的常见问题。本文是博主对第二章 - Code and project organization 的阅读笔记。
平常我们在做应用层开发时,很少会注意到 HTTP 请求的大小写敏感问题。笔者在围观一个 HTTP 服务端 Header 的解析程序时,发现了一个微妙的 bug。这篇笔记是针对该问题的一个有趣的探究。
本文为一次笔者针对 SSD 调优存储软件的笔记。意外地发现很多 dev 同僚对一些现代数据中心的基础存储设备规格没有概念,遂调研整理此文,供读者 warm-up 阶段作为起步参考。
Unix-like 操作系统中,程序的 stderr、exit status,以及 Go 语言如何捕捉命令执行错误实例。
本文为本人调试Xavier时遇到的,演示了如何开启Nvidia Jetson Xavier开发者套件的CAN总线,是一篇非常优秀的指导文章。本文原作者为Ramin Nabati,由SPtuan获取其授权并翻译。原文链接为: https://medium.com/@ramin.nabati/enabling-can-on-nvidia-jetson-xavier-developer-kit-aaaa3c4d99c9
比较偶然的机会,以学生的眼光,收集了这个行业的一些信息。包括表层的一些框架和大厂们采用的硬件方案。 一路曲折走过来,以后大概率从事这个行业,应该多多积累信息,别憋死在象牙塔里才是。
嗨多磨。在之前的文章中,我们以Q-Learning为例,先入为主,对强化学习的基本要素和核心思想进行了学习。今天这篇文章,主要是将马尔科夫决策过程单独拿出来探究。它在很多领域都有应用,十分值得单独拿出进行探究和学习。