09 2022 档案
摘要:网络驱动parser 网络接受到query后,会调用query(Querydata),在这里使用flex和bison将data解析(调用sql_parse),也就是说先有query(Querydata),再有sql_parse
阅读全文
摘要:tasks.json { "options": { "cwd": "${workspaceFolder}/build" }, "tasks": [ { "label": "cmake", "command": "cmake", "args": [ "-DDEBUG=ON", ".." ] }, {
阅读全文
摘要:概述 许多查询只涉及表中的少量记录。例如"查找学号为'U2021001'的学生的专业",这个查询最多只涉及学生表中的一条记录。如果系统为了找到学号为"U2021001"的记录而读取整个学生表,这样的操作方式显然是低效的。理想情况下,系统应该能够直接定位到这条记录。为了支持这种访问方式,需要额外设计一
阅读全文
摘要:文件的分页 DBMS最常见的做法是将数据库以文件的形式存储在磁盘上。有些DBMS可能使用一组文件来存储数据库,有些DBMS可能只使用单个文件。 从操作系统的角度来看,一个文件就是一个字节流序列,操作系统并不关心和了解文件的内容以及文件之间的关联性。数据库文件的内容只有创建它的DBMS才知道如何解读,
阅读全文
摘要:#!/bin/bash PID=`ps -ef | grep /bin/metafs_server(替换成你需要的程序) | grep -v grep | awk '{print {#PID} -eq 0 ] then echo "process not found" exi
阅读全文
摘要:前言 Compaction和Version相关的部分交织在一起,不搞明白Version很难理解Compaction。其实这句话反过来说也是对的,如果不理解Compaction也很难理解VersionSet。 versionEdit Version相关的数据结构有3个,Version VersionE
阅读全文
摘要:简单来说就是通过增大操作系统页的大小来减小页表,从而避免快表缺失。在介绍之前需要强调一点,大页内存也有适用范围,程序耗费内存很小或者程序的访存局部性很好,大页内存很难获得性能提升。所以,如果你面临的程序优化问题有上述两个特点,请不要考虑大页内存。后面会详细解释为啥具有上述两个特点的程序大页内存无效。
阅读全文
摘要:分布式系统的一致性和性能常常是鱼和熊掌不可兼得。追求高的一致性,必然会带来性能的损失,而想要追求高的性能,也只能妥协于一定程度的非一致性。以下图中的数据写入为例,不同的一致性级别要求写入的节点个数是不同的, 写入节点个数越多,显然客户端需要等待的时间就会越久。 一致性差异: Raft中采用的是QUO
阅读全文
摘要:分片思想 客户端 pinode -> pinode_hash XXHash(pinode) % (一个region大小 * server数量),总共Hash范围应该不超过(一个region大小 * server数量),因为server初始化时总的范围只有这么大 客户端计算该pinode属于哪个reg
阅读全文
摘要:应用场景 延时/定时函数调用 定时发送心跳检测node是否宕机 简介 定时器功能由TimerId,Timer,TimerQueue实现,用户只能看到TimerId TimerQueue只暴露两个接口addTimer和cancel,addTimer供eventloop使用,会包装成runat,runa
阅读全文
摘要:概述 ring buffer称作环形缓冲区,也称作环形队列(circular queue),是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。 使用场景 在任务间的通信、串口数据收发、log缓存、网卡处理网络数据包、音频/视频流处理中均有环形缓冲区(ring buffer) 的
阅读全文
摘要:网络模型 nonblocking + IO多路复用 原因: 1.nonblock io + 轮询等待事件完成不可取 (耗CPU cycle) 2.IO多路复用不能用block IO,因为read,write会阻塞当前线程,这样就不能单线程处理另外已经就绪的其他connfd IO事件 一个线程一个ev
阅读全文
摘要:Redis是什么 面试官:你先来说下redis是什么吧 我:(这不就是总结下redis的定义和特点嘛)Redis是C语言开发的一个开源的(遵从BSD协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种NoSQL(not-only sql,泛指非关系型数据
阅读全文