09 2022 档案

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

点击右上角即可分享
微信分享提示