01 2021 档案
摘要:str list tuple map set 标识符-对象引用 标识符 = 名字 获取对象引用,非标识符之间关联 容器不可变:保持引用同一个容器,不确保容器内元素不可变 elif dic 字面量{"key”:val,} key不可变 set 字面量set(),看做容器类型转换? 元素:add rem
阅读全文
摘要:ip协议:数据包正确传输至机器 应用:会话要求 多路复用:区别应用会话 可靠传输:丢失重传,去重 udp: socket:通信端点,python抽象成对象 //posix中与文件描述符对应
阅读全文
摘要:acid 隔离级别 事务系统段(物理):事务、回滚段段头、mysql二进制位置(启动二进制文件时,数据库与存储引擎一致性)、双写段,四者信息 内存 事务系统对象 trx_sys_struct:{ 双写对象 段头 活跃事务链表(有序) 内部事务链表 回滚段对象数组 回滚段内存对象链表 最近使用回滚段
阅读全文
摘要:打开ipc对象(涉及读写权限) 管道:单双工,阻塞非阻塞设置,原子写最大值 关注点:数据在内核与用户之间的转移 管道要求消费者存在,先有写入者是没有意义的??? 消息生命周期为进程 消息队列:生命周期存在于内核 属性:消息数量、大小 空队列放置消息可产生信号或启动线程:异步事件通知 优先级 描述符引
阅读全文
摘要:常见的很多设计,其出发点都在于替换简单粗暴的系统调用或者os默认行为。 比如db存储引擎会选择实现不同的页管理,一方面需要支持事务一类的高级语义,另一方面,模型总是建立在特定的统计规律上的,更明确的场景可以选择更特殊的优化策略,从而优于宽泛的(默认的)策略。 对于go的内存管理,其设计主要体现了:
阅读全文
摘要:b+树优点索引高度小(高扇出) 定位过程:定位页,载入缓冲池,有序slot(稀疏)定位记录,扫描 聚集索引:叶节点包含记录/下一层节点页地址 辅助索引:叶节点为引用:主键值 索引树内存对象:整棵树的读写锁 查找:先对内存对象加s-latch,进行页操作,若非叶节点不会发生变化,释放(乐观)。否则释放
阅读全文
摘要:副本:生命周期保证 pod:一组容器,不跨工作节点,容器共享linux命名空间(相同主机名、网络接口(ip地址、端口号)、volume共享文件目录) 动机:一个容器一个进程 pod是水平扩展基本单位 pod创建:name、容器镜像、容器名称、监听端口 无service pod通信(调试):配置本地端
阅读全文
摘要:可重复读+nextkey lock 避免幻读 谓词锁:锁条件 范围锁:锁定记录时锁定范围 行锁:sx 记录||间歇||+ 多粒度锁定:意向锁ISIX(表级别) 锁根据页进行管理,页中记录有锁:位图 事务:记录每个页中持有的锁(link)(等待的锁) 全局哈希表(页-bitmap):记录事务中的行的锁
阅读全文
摘要:b+树索引:磁盘,扇出率高,并发控制,分裂方向 聚集索引:非叶子节点存放<key,addr>指向下一层的指针(页地址:页在表空间偏移量);叶子节点存放完整记录 辅助索引:保存记录的地址——主键值(再进行一次索引定位) 引擎对每个索引产生内存对象,管理索引读写锁(区别于叶子节点的页读写锁) 分配记录空
阅读全文
摘要:聚集索引页:叶子节点存放记录 辅助索引页:书签 物理页:block,磁盘 逻辑页:page,内存 页:索引页,undo日志页 页中信息: 可用空闲空间 索引id 修改当前页的事务id(仅在辅助索引中使用) 引擎为获得更好的顺序存储性,将叶子节点数据与非叶子节点存放于不同的段对象 页间移动数据(分裂合
阅读全文
摘要:物理记录:磁盘 逻辑记录:内存 索引组织表:叶子节点存放记录,隐藏列:主键(未定义时)、事务ID(与隔离级别决定可见性)、回滚指针(指向undo日志) 记录包含在页中序号(heap no),记录间逻辑串联 伪记录:逻辑边界 定位:B+树定位到页,根据cell二分搜索
阅读全文
摘要:物理磁盘:扇区 文件系统:块 存储引擎:页(管理)区(申请)表空间(逻辑) 页:包含表空间偏移量,连接页与页。完整性检查(首尾lsn相等) 段:保存对象(表),用户表至少两个段:叶子节点段(聚集索引),非叶子节点段 小对象:(小表,undo段)首先从碎片页分配,超出后以区分配 段管理页(从表空间获取
阅读全文
摘要:内存管理系统(内存池,非缓冲池中的页管理) 内存堆:批量获取内存(减少系统调用开销(malloc动态分配),亦可从缓冲池中分配),并进行细粒度管理 增长空间:增加内存块(栈结构决定释放顺序) 内存块校验:起始域结尾域随机数 内存池:小块内存管理(分配的内存单位:内存区),伙伴系统(倍增内存,链表维护
阅读全文
浙公网安备 33010602011771号