go内存分配与垃圾回收go 内存管理基本概念go 与 java类似, 都实现了自动内存管理。 Golang运行时的内存分配算法主要是 TCMalloc算法。核心思想就是把内存分为多级管理,从而降低锁的粒度。它将可用的堆内存采用二级分配的方式进行管理:每个线程都会自行维护一个独立的内存池,进行内存分配时优先从该内存池中分配,当内存池不足时才会向全局内存池申请,以避免不同线程对全局内存池的频繁竞争。 基本概念 Page 2024-10-14 go
unsafe.Pointer与uintptruintptr 一个足够大的无符号整型,用来表示内存地址的值,比如 0xffffffff 可以进行地址的数值计算 uintptr 可以和 int、int8、int32、uint8 等整型类型相互转换 使用示例: 12345678910func main() { var i int = 1 fmt.Println(uintptr(i)) fmt.Println(uint 2024-10-11 go
go map 原理与并发安全mapmap 原理go map 整体和 java hashmap 差不多, 只是源码阅读的位置不太方便 map 的相关文件位于 GOROOT 的 runtime 包中的 map.go map 结构hmap12345678910111213141516171819202122232425// A header for a Go map.type hmap struct { // map中的 2024-10-09 go
MySQ之onlineDDLDDL 的算法copyCOPY是MYSQL 5.5以及之前的默认算法,使用COPY算法会锁表,不支持online ddl,COPY算法在server层创建一个临时表用于copy数据,最后用新表替换旧表。 copy 算法的执行执行流程: 准备: 对表加 DML 读锁,读取元数据(DDL不并行,DML可以并行) 升级 DML 写锁(DDL和DML都不并行) 按照原表定义创建一个新的临时表 执行 2024-08-08 mysql #mysql
k8s_service网络原理k8s 中网络访问方式 如上图, K8s 目前有四种网络访问方式: 同一个 Node 内 Pod 访问 跨 Node 间 Pod 访问 Pod 访问集群外服务 集群外访问集群内 Pod 网络空间的隔离network namespace 是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自的网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己就在独立的网络中。对于每个 networ 2024-07-08 云原生 #网络 #k8s
从ES底层原理来看查询优化ES 底层设计概览ES 底层(或者说内核)是基于 Lucene,本文从 ES 查询流程以及 Lucene 底层的一些存储结构设计设计, 来分析 ES 的一些查询优化方向 ES 查询模型 上图是 ES 的完整查询流程, ES 的任意节点可作为写入请求的协调节点(Coordinating Node),接收用户请求。协调节点将请求转发至对应一个或多个数据分片的主或者从分片进行查询,各个分片查询结果最后 2024-06-20 ES > 中间件 #es #算法
feeds流系统设计概述Feeds 流概述什么是 Feeds 流? 从用户层面来说, 各种手机 APP 里面, 特别是社交类的, 我们可以看到关注的内容、好友的动态聚合成一个列表(最典型的就是微信朋友圈)都是 feeds 流的一种形式。 Feeds 流的核心功能就是: 信息聚合它可以根据你的行为去聚合你想要的信息,然后再将它们以轻松易得的方式提供给你。这个方式就是信息流的方式,你只需要不断的滑动,就可以再各种信息中穿梭, 2024-06-13 系统设计
计算机存储设计理论概述不同的数据库存储系统都会设计不同的索引结构来优化查询/写入效率, 在讨论这些结构之前, 我们先从头回顾一下计算机存储的一些设计 计算机存储分级设计计算机的存储器设计采用了一种分层次的结构。寄存器、高速缓存、主存和硬盘,从顶至底,这些存储器的速度逐级递减而容量逐级递增,并且伴随越来越低的价钱,如图 在现代计算机里面, 上面的存储实际上分为CPU(寄存器,高速缓存L1、L2、L3)、内存、硬盘( 2024-05-24 操作系统 > 算法 #lsm #存储
网络IO多路复用前置阅读对阻塞、非阻塞, 同步、异步的描述参考之前的文章: 网络IO编程(阻塞/非阻塞/同步/异步) Linux wakeup callback 机制Linux(2.6+)内核的事件wakeup callback机制,这是IO多路复用机制的核心: Linux 通过 socket 睡眠队列(sleep list)来管理所有等待socket的某个事件的 process,同时通过 wakeup 机制来异 2024-04-16 IO