Smith
-
云计算新人之公有云 IAM
这篇文章以 AWS、Azure 和 GCP 为例,梳理了公有云 IAM 在对象存储访问中的基本作用和常见鉴权方式。正文先说明传统 AK/SK 在密钥泄露、权限粒度和第三方授权上的局限,再分别介绍 AWS 的 User、Role、Policy、Instance Profile 和 Assume Role,Azure 的 Access Key、SAS、Managed Identity 与 OAuth2,以及 GCP 的 service account 和兼容 S3 的访问方式,最后对三家云厂商在存储鉴权模型上的异同做了汇总。
-
博客最近老挂
这篇文章记录了作者最近两次博客宕机的排查经过,以及为防止类似问题再次发生所采取的补救措施。正文先说明 WordPress 因 MySQL 异常退出而无法连接数据库的现象,并分析内存不足、监控缺失和历史指标不可见带来的排查困难,随后介绍了接入 UpTimeRobot、优化文章 description 和开启 Linux 负载监控等改进动作,为后续继续定位真正故障原因做准备。
-
TinyKV Project4 Transactions
这篇文章总结了 TinyKV Project4 中事务模块的实现思路,核心围绕 Percolator 如何基于多版本数据、锁和两阶段提交在 KV 存储上实现事务。正文先解释 primary key、startTs、commitTs、Lock/Write/Data 三类列族及其关系,再按顺序梳理 prewrite、commit、读取、回滚和锁状态检查的完整流程,最后结合 transaction.go 中的主要方法说明 TinyKV 是如何处理写冲突、锁超时、批量回滚和故障恢复的。
-
TinyKV Project3 MultiRaftKV
这一节中,最难的就是 Project 3B,引无数英雄竞折腰!!当然撑过 3B,你就解放了。 Membership Change 在 Project3A 中我们需要实现 Leade…
-
TinyKV Project2 RaftKV
这篇文章系统总结了 TinyKV Project2 中 RaftKV 的实现思路,内容从 RawNode、Raft、RaftLog 三个核心模块的职责划分讲起,逐步梳理各种 `MessageType` 的含义、状态机驱动方式,以及 Ready/Advance 机制如何承接消息发送、持久化和状态推进。后半部分继续扩展到 TinyKV 的上层架构,说明 RaftStore、PeerMsgHandler、PeerStorage 如何管理 region、proposal 和 snapshot,并详细拆解日志 compact、snapshot 生成与安装的完整流程,最后还补充了 PreVote、ReadIndex 和 LeaseRead 等 Raft 相关优化点。
-
TinyKV Project1 Standalone KV
这篇文章总结了 TinyKV Project1 的实现内容,核心是在 Badger 之上构建一个支持 Column Family 的 standalone KV 存储引擎。正文先解释 TinyKV 里 `default`、`write`、`lock` 等 CF 的基本含义,以及如何通过 key 前缀在底层 KV 中模拟多列结构,随后说明 standalone storage、Reader 和批量写入的实现方式,再继续梳理 `RawGet`、`RawScan`、`RawPut`、`RawDelete` 等服务接口如何基于自定义 Reader 完成读写。文章最后还补充介绍了 Badger 参考 WiscKey 的存储设计,以及它在读写放大上的权衡。
-
ChatGPT 牛逼,我准备下岗了
这篇短文记录了作者在排查一段 CSV 代码申请大量内存问题时,尝试用 ChatGPT 协助分析的感受。正文主要描述了作者原本想借一个棘手问题“刁难”一下 ChatGPT,但实际得到的回答虽然没有直接解决问题,却展现出相当完整和周到的分析思路,也因此让作者对这类工具的能力产生了明显的震动。
-
StarRocks perfect IDE development setup (Support IDEA & Clion)
This article provides an English guide for setting up a workable StarRocks development environment with both IDEA and Clion, aiming to let contributors write code on a local MacBook while compiling and debugging on a remote Ubuntu server. It walks through local and remote dependency setup, the first full build of StarRocks, FE development and remote debug in IDEA, and BE development in Clion with remote toolchain, deployment mapping, generated source handling, and GDB-based debugging, so that FE and BE can both be developed with normal code navigation and analysis support.
-
个人使用的 Shell 环境搭建
这篇文章介绍了作者为提高远程开发效率而整理的一套个人 Shell 环境配置思路。正文先说明目前已经将配置沉淀为一个可一键初始化机器的 `dotfiles` 仓库,随后补充了过去手动配置环境时的做法,包括 Zsh、主题、`zsh-autosuggestions`、`zsh-syntax-highlighting`、Tmux 及其主题的安装与启用方式,并顺带记录了几个日常不常用但偶尔会派上用场的 Tmux 命令。
-
StarRocks 完美开发环境搭建
这篇文章给出了一套面向 StarRocks 3.4 的完整开发环境搭建方案,目标是在 Mac 本地写代码、远程 Ubuntu 服务器负责编译和调试的前提下,同时满足 FE、BE 的编译、跳转和 Debug 需求。正文先说明本地与服务器的依赖准备、`thirdparty` 的获取方式和一键编译流程,再分别介绍 FE 在 IDEA 中的本地与远程 Debug 配置,以及 BE 在 Clion 中的远程 Toolchain、Deployment、CMake 和环境变量设置,最后补充了使用 gdb、LLDB 调试 BE 的方法和一些实际开发中的注意事项。