介绍自己写数据库起因是想学习一下相关知识,顺便巩固一下语法基础,LunovaDB采用了bitcast存储模型,它是一种对于LSM Tree的改进,都利用了顺序读写去提升性能,bitcast相较于LSM Tree更好实现。LunovaDB主要参考了minidb中对于bitcast的实现,并加入了网络层与连接池来确保不同语言客户端的接入。
bitcast的存储模型分为两个部分,内存和磁盘,在内存...
select今天写的这三个主要是为了解决普通网络编程中一个连接创建一个线程处理的方式,这种方式不适合高并发的情况,select可以在单线程中处理多个请求
缺点:
1.参数较多,有五个参数,都需要单独进行管理
2.每次吧待检测io集合,复制进内核,影响性能
3.对io的数量有限制,最大1024
12345678910111213141516171819202122232425262728293...
引言布隆过滤器是一种通过散列表,快速判断元素是否存在的一种结构,这篇重要是简单说明一下布隆过滤器是什么以及他的简单实现
内部结构布隆过滤器其内部其实就是一个位图,这个位图非常大,是存储数据的几倍
位图简单来说就是不存储数值,每个存储单元只存储0/1的数组
c语言中可以用char的数组进行实现
数据在插入或者查询时会经过多个哈希函数的运算,得到的结果求模,最后得到每个位置的索引,将索...
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182#include <stdio.h>#include <strin...
B树限制:所有的叶子节点在同一层
定义
B树,B-,B+树B/B-树为同一东西
btree:所有节点存储数据
b+tree:叶子节点存储数据,内节点索引
难点:
1.根节点分叉
2.节点分裂,先分裂再添加
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849...
红黑树定义(叶子节点包含空节点)
1.每个节点是红的或者黑的
2.根节点是黑的
3.每个叶子节点是黑的
4.如果一个节点是红的,则他的两个儿子都是黑的
5.对每个节点,从该节点到其子孙节点的所有路径上包含相同数目的黑节点
节点定义12345678910111213141516171819typedef struct rtbtree{ int key; void* value;...
项目地址https://github.com/lkpalu/lk-musicplayer
说明这个音乐播放器应该是我前两天突然想写的一个应用,因为我平时也听本地歌曲,但本地的播放器都不是那么快速的能够让我听到歌,正好最近了解了cobra这个命令行库,就有了这个命令行本地音乐播放器了
安装从github上面把项目克隆下来之后,文件夹里面会有两个lk,一个是lk.exe为windows的64位...
minikube昨天在运行minikube start的时候因为网络问题太慢了,想着找个国内源,但按照网上的方法后面添加阿里的镜像源后提示找不到镜像源,后来试了好几次都不行,直接把wifi换成手机热点了,速度快了不少,也是等了十几分钟下好了,但之后下载完预处理文件后又报错,提示网络问题,今天换了wifi,挂了tz之后发现中途依然会报错,但最后会成功,就记录以下这样一个简短的经历吧。
前言栈与队列的实现采用动态分配内存,保证了使用的灵活性
栈12345678910111213141516171819202122232425262728293031323334353637383940414243444546package Stack;import java.util.Arrays;public class Stack { int length = 0; ...
proto文件类型及语法proto文件的类型上次写了message和service,此外还有map和enum
代码如下
map12345message Pong{ string message = 1; Test t = 2; map<string, int32> m = 3;}
enum1234enum Test{ A = 0; B...