一个Golang的REPL工具

  REPL为Read-Eval-Print Loop的简写,为一种简易的,可交互式的编程环境,使用者可以方便的调试相关代码:   Read: 读取用户输入;   Eval: 计算输入的数据;   Print: 输出所计算的数据;   Loop: 循环执行上述流程;   目前多种编程语言也都官方自带

Antlr一个领域语言利器——入门篇

  Antlr(Another Tool for Language Recognition)为开源的语法分析器,可以将输入的内容自动生成语法树;开发者可以使用它自定义自己的领域语言,只需创建语法规则文件,使用Antlr根据该规则文件生成相对应的类,再这些类的基础上我们可以用于实现自己的功能;Antl

从Go编程看IO多路复用Epoll

  IO多路复用使得一个线程就可就可以处理多个网络连接,无需要创建多个线程来处理多个socket连接,减少不必要的资源开销,但是Select还是Poll、Epoll模式都有着不同的区别;   上篇在介绍Select模式是也介绍了Select模式存在的种种问题,如大量FD集从用户态拷贝到内核态、FD集

从Go编程看IO多路复用Select

  IO多路复用通过某种机制使进程监听某些文件描述符,当文件描述符中有读或写就绪时,进程能够收到系统内核发送的相应通知从而进行相应的IO操作;IO多路复用有:select、poll、epoll等模式,这里主要介绍select;select本质上也是同步IO,调用时阻塞自己,IO事件就绪后被唤醒返回负

基于LSM的Key-Value数据库实现稀疏索引篇

  上篇文章简单的填了一个坑基于LSM数据库的实现了WAL,在该版本中如数据写入到内存表的同时将未持久化的数据写入到WAL文件,在未将数据持久化时程序崩溃,可通过WAL文件将数据还原恢复从而避免了数据的丢失。 目前此基于LSM的数据库还有三大坑:    1、索引问题    2、SSTable合并

基于LSM的Key-Value数据库实现WAL篇

  上篇文章简单的实现了基于LSM数据库的初步版本,在该版本中如数据写入到内存表后但还为持久化到SSTable排序字符串表,此时正好程序崩溃,内存表中暂未持久化的数据将会丢失。   上篇文章简单的实现了基于LSM数据库的初步版本,在该版本中如数据写入到内存表后但还未持久化到SSTable排序字符串表

基于LSM的Key-Value数据库实现初篇

  前篇文章对LSM的基本原理,算法流程做了简单的介绍,这篇文章将实现一个简单的基于LSM算法的迷你Key-Value数据库,结合上篇文章的理论与本篇文章的实践使之对LSM算法有更好的理解,当然此版本还有很大问题只是Demo模型,后面也会指出;   此LSMDB有支持常见的数据库四大功能:CURD(

LSM-Tree:原理与介绍

  LSM Tree(log-structured merge-tree)是一种文件组织结构的数据结构,目前在不少数据库中都有使用到,如SQLite、LevelDB、HBase在Mongodb中也有一个LSM引擎;   在传统的关系型数据库中使用的是B-/B+ tree作为索引的数据结构,B tre

在Win11的WSL中体验IDEA等GUI程序

  原本已经放弃WSL很久了,这两天把Win10更新到Win11,看到WSL2已经发布,而且貌似还有很大升级还可以在WSL中跑Linux GUI应用。在加上Win11的支持简直可以做到Win+Linux无缝链接。安装完成GUI程序后会在可将其加入到开始菜单当中,单击就可以一键启动Linux下的程序;

系统调用跟踪——ls功能实现(二)

  在上篇文章中我们跟踪ls命令看到了其所使用的这么几个系统调用:stat、openat、fstat、getdents、close、write等,这里再简单介绍下这几个系统调用的功能:   stat:为获取文件状态系统调用   openat:将打开目录/data获取它的文件描述符,返回值3即为文件描
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×