zitian
[技术向] TinyKV 关键模块思路
个人历史文档沉淀, PingCAP 数据库训练营 (TinyKV) 的代码记录, 主要围绕 Raft 的实现和优化. 这个方案在学习营里获得二等奖, 对应三千元奖金. 项目地址: https://github.com/czt1999/tinykv-czt1999 项目结构
数据技术提要
大数据技术的两个核心问题是存储和计算, 不存在通用的最优方案, 需根据实际场景选择合适的技术. 磁盘操作和网络传输是主要的性能瓶颈, 优化的切入点在于高效利用内存、尽可能本地计算. 数据的价值在于准确且全面地反映现实业务情况, 静止的业务数据是没有意义的, 需经由动态的变化揭示事物的发展规律. "解
[技术向] Spark 架构与运行过程
数据抽象 Spark 的模型基石是 RDD, 一种分布式计算的数据抽象, 特性如下: 不可变 : RDD 的内容和分区结构在创建后不可修改, 只能通过转换 (map / filter) 生成新的 RDD, 避免多节点并发修改的冲突 可分区 : 每个分区是最小计算单元, 分布在不同节点, 默认为 HD
[技术向] Kubernetes 的核心组件与对象
Kubernetes 的目的是实现分布式大规模集群的自动化运维, 底层依赖于容器技术, 优势在于, (1) 根据面向对象的设计思想对常见的运维操作进行了高度抽象, (2) 使用声明式 API 简化操作. 总体架构: (图片来源:
[技术向] 存储系统 (Redis)
Redis 是一种键值型 (key-value) 内存数据库, 广泛用于缓存. 数据结构 string / list / hash / set / zset zset 跳表 多级索引: 令 P 表示索引的密集程度, 假设为 .5, 那么新增一条记录时, 令: 建立一级索引的概率为 P (=.5) 建
[技术向] 存储系统 (MySQL)
MySQL 属于传统的关系型 (结构化) 数据库, OLTP. 关系数据库三范式 [ 1NF ] 列不可再分 (原子性) [ 2NF ] 属性依赖于主键 [ 3NF ] 属性直接依赖于主键 (例子: 学生为主键 - 学院为属性) 一个 SQL 语句的执行顺序
HDFS 读写流程
架构 Read 初始化文件系统对象, 建立与元数据节点 NameNode 的通信 向 NameNode 请求目标文件的元信息 (存储格式, 存储位置, 块路径..)
[技术向] 高级语言特性 (Go)
官方资料: https://github.com/golang/go/wiki https://go.dev/doc/faq https://go.dev/doc/effective_go CSP CSP 全称是通信顺序进程 (Communicating Sequential Processes),
[技术向] 高级语言特性 (Java)
JMM Java 内存模型 (JMM) 是在并发的视角下, 对程序执行的一种规范, 规定了一个线程的写操作何时对另一个线程可见, 规范就是一种抽象, 目的是提供对跨平台的良好支持. JMM 规定, 共享变量都存储在主内存中, 每个线程有自己的工作内存, 用以保存局部变量和主内存的副本拷贝, 线程对共
[技术向] CSAPP (深入理解计算机系统) 异常控制流
CPU 执行的指令序列称为控制流. 程序在执行过程中不可避免会受到某些外部事件的影响, 比如计时器到期, 网络包抵达...这些事件会导致控制流的意外变化. 这种意外变化称作“异常控制流”. 异常 异常是对处理器状态变化 (检测到某个事件) 的反应, 由硬件和操作系统共同实现. 异常的处理流程:
[技术向] CSAPP (深入理解计算机系统) 虚拟内存
虚拟内存 (VM) 是一个 kernel 程序, 提供了存储的顶层抽象, 将主内存视作硬盘的缓存进行管理. 好处: 实现了硬件异常处理、硬件地址转换、主内存和硬盘之间的优雅交互. 为每个进程 (P) 提供一个统一、 私有的地址空间 (虚拟地址空间), 保护每个 P 的内存操作互不干扰. 物理/虚拟地
[技术向] CSAPP (深入理解计算机系统) 存储层次结构
从 CPU 的角度看, 内存被抽象成一条字节阵列, 实际上内存系统是具有层次结构的, 不同层次的设备具有不同的容量, 速度和成本. 这种层次结构之所以有效, 是因为编写良好的程序在某一时间段内, 对存储在高层次设备的数据的访问频率总是相对较高 (局部性). 当然, 为了更有效地利用这个特性, 还需要
[技术向] CSAPP (深入理解计算机系统) 编译与链接
链接是指将多个代码/数据片段合并成单个可执行文件的过程, 可以发生在编译期/装载期/运行期, 大部分情况下由专门的链接器来完成. 链接器 (ld) 对于程序开发是必不可少的, 因为它允许分别编译 (separate compilation), 代码修改后只需要重新编译变更过的部分, 再重新链接, 无
[技术向] OSI 模型概览
OSI (开放式系统互联) 模型的 7 个层次: 从下至上的网络层次, 实际上是物理空间 (具象) 到虚拟空间 (抽象) 的逐级过渡, 使得现实世界的物理因素对于互联网应用而言几乎完全透明. 从 TCP/IP 视角看各层协议: 常见的应用与对应协议: