03 2022 档案

摘要:3.1 信号在网线和集线器中传输 所有的包在传输到目的地的过程中都是独立的, 相互之间没有任何关联 网卡中的 PHY( MAU) 模块负责将包转换成电信号, 信号通过 RJ-45 接口进入双绞线 ,然后到达集线器,(但是在传输的过程中信号会衰减,正是因为使用的是双绞线,才能抑制噪声)当信号到达集线器 阅读全文
posted @ 2022-03-28 11:41 Z9Y1J5 阅读(136) 评论(0) 推荐(0)
摘要:2.1 创建套接字 像浏览器、 邮件等一般的应用程序都是使用 TCP 收发数据的, 而像 DNS 查询等收发较短的控制数据的时候则使用 UDP。 IP 协议控制网络包收发操作的部分 ICMP 用于告知网络包传送过程中产生的错误以及各种控制消息 ARP 用于根据 IP 地址查询相应的以太网 MAC 地 阅读全文
posted @ 2022-03-27 20:23 Z9Y1J5 阅读(147) 评论(0) 推荐(0)
摘要:1、了解SQL 数据库是一个以某种有组织的方式存储的数据集合 ,保存有组织的数据的容器(通常是一个文 件或一组文件)。 表是一种结构化的文件,可用来存储某种特定类型的数据 模式(schema) 关于数据库和表的布局及特性的信息 主键(primary key) 一一列(或一组列),其值能够唯一区分表中 阅读全文
posted @ 2022-03-26 20:39 Z9Y1J5 阅读(67) 评论(0) 推荐(0)
摘要:1.1 生成HTTP请求消息 URL实际上除了“http:”开头, 网址还可以以其他一些文字开头, 例如“ftp:”(下载和上传文件)“file:”(读取客户端计算机本地文件)“mailto:” (发送电子文件)等 浏览器要做的第一步工作就是对 URL 进行解析, 从而生成发送给 Web服务器的请求 阅读全文
posted @ 2022-03-25 20:55 Z9Y1J5 阅读(38) 评论(0) 推荐(0)
摘要:一、comparator.c分析 抽象类,有两个类继承他BytewiseComparatorImpl、InternalKeyComparator 函数功能: FindShortestSeparator(std::string* start,const Slice& limit):如果*start<* 阅读全文
posted @ 2022-03-03 21:42 Z9Y1J5 阅读(66) 评论(0) 推荐(0)
摘要:一、db_impl.cc分析 调用WriteLevel0Table把Memtable落盘,在VersionEdit存储新增文件信息 遍历Memtable,调用TableBuilder::Add把key_value写入文件 调用Finish 调用sync把缓冲区强制写入磁盘 生成SST文件 为新的SS 阅读全文
posted @ 2022-03-02 09:44 Z9Y1J5 阅读(97) 评论(0) 推荐(0)
摘要:一、SST文件结构分析 其中data block/filter block/meta_index block称之为 x block index block:每个key_value表示一个index entry,指向一个data block,key为data block中最大的key,value为8字 阅读全文
posted @ 2022-03-01 11:43 Z9Y1J5 阅读(214) 评论(0) 推荐(0)
摘要:一、log_writer.h分析 功能:可以将随机写的IO变成Append,极大提高了写磁盘速度;可以防止数据丢失 日志文件的名称由6位数字编号和log后缀组成 xx.log 日志文件格式: header放在buf中:crc(4字节)、length(2字节)、RecordType(1字节) 函数功能 阅读全文
posted @ 2022-03-01 11:09 Z9Y1J5 阅读(80) 评论(0) 推荐(0)
摘要:〇、前置知识 写数据时分两步:1、将数据追加到日志中;2、将数据插入到内存数据库 sequenceNumber:leveldb数据存放形式是LSM,以追加的形式存储,相同key时以seqnumber来确定先后关系 write操作要记录到log文件中的格式为: 几种类型的key: user_key:用 阅读全文
posted @ 2022-03-01 10:42 Z9Y1J5 阅读(46) 评论(0) 推荐(0)
摘要:一、skiplist.h(跳表)分析 用户只需要处理写冲突,leveldb跳表保证没有读写冲突。函数功能如下: Insert(): FindGreaterOrEqual():保存搜索的路径pre[],找到要插入的节点 KeyIsAfterNode():返回值bool,key是否大于n的数据 Rand 阅读全文
posted @ 2022-03-01 10:02 Z9Y1J5 阅读(43) 评论(0) 推荐(0)
摘要:一、slice.h string都封装成了slice 支持的方法有:构造、拷贝构造、赋值、clear()、empty()、size() remove_prefix(n):指定长度前缀移除 starts_with(x):是否是以x开始 compare(x):返回值0/-1/1 二、hash.h 是Mu 阅读全文
posted @ 2022-03-01 09:34 Z9Y1J5 阅读(58) 评论(0) 推荐(0)
摘要:一、概括 基本组件:接口方法、参数、数据存储、迭代器(遍历表)、string(自定义的,因为c++自带的拷贝花销大)、锁、状态信息(返回值) leveldb使用的是小端模式 功能:对外提供四个接口:put\delete\write\get 解决了什么问题:内容持久化、顺序读写 leveldb写流程: 阅读全文
posted @ 2022-03-01 08:45 Z9Y1J5 阅读(90) 评论(0) 推荐(0)