上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页
摘要: REPL为Read-Eval-Print Loop的简写,为一种简易的,可交互式的编程环境,使用者可以方便的调试相关代码: Read: 读取用户输入; Eval: 计算输入的数据; Print: 输出所计算的数据; Loop: 循环执行上述流程; 目前多种编程语言也都官方自带了REPL工具,如nod 阅读全文
posted @ 2022-06-28 18:50 AiFly 阅读(257) 评论(0) 推荐(0)
摘要: Antlr(Another Tool for Language Recognition)为开源的语法分析器,可以将输入的内容自动生成语法树;开发者可以使用它自定义自己的领域语言,只需创建语法规则文件,使用Antlr根据该规则文件生成相对应的类,再这些类的基础上我们可以用于实现自己的功能;Antlr4 阅读全文
posted @ 2022-05-25 18:24 AiFly 阅读(1281) 评论(0) 推荐(1)
摘要: IO多路复用使得一个线程就可就可以处理多个网络连接,无需要创建多个线程来处理多个socket连接,减少不必要的资源开销,但是Select还是Poll、Epoll模式都有着不同的区别; 上篇在介绍Select模式是也介绍了Select模式存在的种种问题,如大量FD集从用户态拷贝到内核态、FD集合的遍历 阅读全文
posted @ 2022-04-17 20:38 AiFly 阅读(1404) 评论(0) 推荐(0)
摘要: IO多路复用通过某种机制使进程监听某些文件描述符,当文件描述符中有读或写就绪时,进程能够收到系统内核发送的相应通知从而进行相应的IO操作;IO多路复用有:select、poll、epoll等模式,这里主要介绍select;select本质上也是同步IO,调用时阻塞自己,IO事件就绪后被唤醒返回负责读 阅读全文
posted @ 2022-03-26 20:44 AiFly 阅读(487) 评论(0) 推荐(0)
摘要: 上篇文章简单的填了一个坑基于LSM数据库的实现了WAL,在该版本中如数据写入到内存表的同时将未持久化的数据写入到WAL文件,在未将数据持久化时程序崩溃,可通过WAL文件将数据还原恢复从而避免了数据的丢失。 目前此基于LSM的数据库还有三大坑: 1、索引问题 2、SSTable合并问题 3、单机版本问 阅读全文
posted @ 2022-02-27 21:55 AiFly 阅读(350) 评论(0) 推荐(0)
摘要: 上篇文章简单的实现了基于LSM数据库的初步版本,在该版本中如数据写入到内存表后但还未持久化到SSTable排序字符串表,此时正好程序崩溃,内存表中暂未持久化的数据将会丢失。 引入WAL 为了解决上述问题,将引入数据库中常用于解决类似问题的方法:WAL(Write Ahead Log)预写式日志——在 阅读全文
posted @ 2022-01-27 11:40 AiFly 阅读(425) 评论(0) 推荐(0)
摘要: 前篇文章对LSM的基本原理,算法流程做了简单的介绍,这篇文章将实现一个简单的基于LSM算法的迷你Key-Value数据库,结合上篇文章的理论与本篇文章的实践使之对LSM算法有更好的理解,当然此版本还有很大问题只是Demo模型,后面也会指出; 此LSMDB有支持常见的数据库四大功能:CURD(增删查改 阅读全文
posted @ 2021-12-20 10:53 AiFly 阅读(302) 评论(0) 推荐(0)
摘要: LSM Tree(log-structured merge-tree)是一种文件组织结构的数据结构,目前在不少数据库中都有使用到,如SQLite、LevelDB、HBase在Mongodb中也有一个LSM引擎; 在传统的关系型数据库中使用的是B-/B+ tree作为索引的数据结构,B tree的查询 阅读全文
posted @ 2021-11-26 11:39 AiFly 阅读(2726) 评论(0) 推荐(0)
摘要: 原本已经放弃WSL很久了,这两天把Win10更新到Win11,看到WSL2已经发布,而且貌似还有很大升级还可以在WSL中跑Linux GUI应用。在加上Win11的支持简直可以做到Win+Linux无缝链接。安装完成GUI程序后会在可将其加入到开始菜单当中,单击就可以一键启动Linux下的程序; 安 阅读全文
posted @ 2021-10-13 08:18 AiFly 阅读(4500) 评论(0) 推荐(0)
摘要: 在上篇文章中我们跟踪ls命令看到了其所使用的这么几个系统调用:stat、openat、fstat、getdents、close、write等,这里再简单介绍下这几个系统调用的功能: **stat:**为获取文件状态系统调用 **openat:**将打开目录/data获取它的文件描述符,返回值3即为文 阅读全文
posted @ 2021-09-21 13:08 AiFly 阅读(767) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页