自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 Redis 代码阅读一

jemalloc内存分配器代码。

2024-10-17 17:30:12 145

原创 leveldb NVM改造

NVM(Non-volatile Memory),非易失性内存,是一种新型的高速非易失性存储设备,具有百纳秒级的读写延迟和远高于SSD的读写吞吐能力,并且具有字节可寻址的特性,CPU能直接访问到NVM上的数据,不需要经过内存。

2024-09-03 17:45:37 401

原创 leveldb 代码阅读七

布隆过滤器(英语:Bloom Filter)是1970年由一个叫布隆的小伙子提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。

2024-08-28 17:39:12 908

原创 leveldb 代码阅读六

为了加快读取操作,LevelDB采取compaction方式对已有记录进行整理,通过这种方式,来删除掉一些不再有效的KV数据,减少数据规模和文件数量,compaction方式在LevelDB中具体为两种:minor和major。所有的Block格式都是相同的,一个Block默认大小为4KB【options.block_size】,当Block所占内存空间大于4KB则flush到文件中。index block用来存储所有datablock的相关索引信息。

2024-08-27 18:05:29 741

原创 leveldb 代码阅读五

MANIFEST文件是Level DB的元信息文件,记录的是版本管理。与log 格式相同,一个menfiest 记录的是一个record。

2024-08-20 10:42:11 145

原创 Redis 代码阅读二

redis-3.0.0编译安装1、前言 redis是常用的no-sql数据库,常用于缓存数据,同时,他也可以持久化数据。他是C语言开发的,所以安装的时候需要编译。2、单机版redisyum install gcc-c++(安装C语言编译环境)3、编译安装源码:https://github.com/huangz1990/redis-3.0-annotated.git编译:make安装:make install PREFIX=~/workspace/lhh/redis注:PREFIX

2024-08-16 16:50:31 118

原创 leveldb 代码阅读四

level::DB是一个接口类,实际的实现在DBimpl类。

2024-08-16 11:30:01 381

原创 leveldb 代码阅读三

options 解读。

2024-08-16 11:28:31 290

原创 leveldb 代码阅读二

WriteOption 结构WriteOptions 就是保存了一个是否 sync 的 bool 变量可以看到对于 Put 单个 kv 的情况,leveldb 默认实现也将它封装成一个 WriteBatch。

2024-08-16 11:27:21 439

原创 leveldb 代码阅读一

函数示例编码函数解码函数函数实现uint8_tuint8_tuint8_tuint8_tuint8_tuint64 同理constuint8_tuint32_tuint32_tuint32_tuint32_t函数解读。

2024-08-16 11:26:02 230

原创 [LevelDB] 编译和使用

LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,也就是说,LevelDB很适合应用在查询较少,而写很多的场景。LevelDB应用了LSM (Log Structured Merge) 策略,lsm_tree对索引变更进行延迟及批量处理,并通过一种类似于归并排序的方式高效地将更新迁移到磁盘,降低索引插入开销,关于LSM,本文在后面也会简单提及。

2024-08-16 11:23:34 267

原创 python课程学习

1. 问题现象进程卡死,程序sip信令卡住在invite 没有响应2. 问题堆栈3. 堆栈分析3.1 区分堆栈信息将原有的堆栈信息区分为10种:Thread 331 (Thread 0x7f7bca7fc700 (LWP 15497)):#0 0x00007f7c72d3f945 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0#1 0x00007f7c73012e1d in ACE_Condition_Th

2021-03-07 15:21:55 83

原创 Freeswitch学习

1、Freeswitch 配置文件转载配置文件解读配置文件默认的目录是 /usr/local/freeswitch/confconf/目录和文件说明|——vars.xml一些常用变量|——autoload_configs目录、存放自动加载的配置文件| |——modules.conf.xml配置当FreeSWITCH启动时自动装载哪些模块| |——*.xml一般来说每个模块都有一个配置文件|——dialplan拨号计划| |——default.

2020-12-31 10:39:45 282

原创 STL 常用容器的底层数据结构

STL 常用容器的底层数据结构实现1.vector 底层数据结构为数组 ,支持快速随机访问2.list 底层数据结构为双向链表,支持快速增删3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问deque是一个双端队列(double-ended queue),也是在堆中保存内容的.它的保存形式如下:[堆1] --> [堆2] -->[堆3] --> …每个堆

2020-12-25 10:28:13 1154

原创 leveldb 学习

leveldb 学习一1. leveldb 下载编译1.1 下载1.2 编译2. 代码阅读1. leveldb 下载编译1.1 下载下载链接:https://github.com/google/leveldb.gitGoogle test:https://github.com/google/googletest.git1.2 编译mkdir -p build && cd buildcmake -DCMAKE_BUILD_TYPE=Release .. &&

2020-06-21 13:56:22 166 1

原创 SQL 学习

1. 安装1.1 安装检查命令:sudo service mysql start结果:未安装:mysql: unrecognized service1.2 安装安装 MySQL 服务端、核心程序sudo apt-get install mysql-server#安装 MySQL 客户端sudo apt-get install mysql-client验证安装sudo netstat -tap | grep mysql使用sudo service mysql startmys

2020-05-17 23:08:55 183

原创 Linux 命令学习二

在学习linux系统知识中常会遇到命令模糊情况,本文主要记录linux常用命令二。1. 压缩命令压缩命令压缩与解压示例zip压缩:zip -r -q -o shiyanlou.zip /home/shiyanlou/Desktop 解压:unzip -q shiyanlou.zip -d ziptesttar压缩:tar -P -cf shiyanlou.tar /home/shiyanlou/Desktop 解压:tar -xf shiyanlou.tar -C tar

2020-05-10 22:33:30 215

原创 linux常用命令

在学习linux系统知识中常会遇到命令模糊情况,本文主要记录linux常用命令。1、ubuntu命令含义使用查看网卡lspci | grep -i net查询网络ifconfig eth0查询网络ifconfig eth0查看网络ipvi /etc/hosts查看挂载mount挂载内存mount -t ramfs -o size=1...

2020-05-05 17:25:43 124

原创 完成malefile模板

TARGET  := test_file.outCFLAGS   := -g -WallCC             := gccSOURCE   := $(wildcard *.c)OBJ            := $(patsubst %.c, %.o, $(SOURCE))$(TARGET):$(OBJ)$(CC) $(CFLAGS) $^ -o $

2018-01-14 22:05:27 386

51单片机与PC串口间通讯设计与分析

将单片机采集的数据通过串行口传给PC机,由PC机高级语言或数据库语言进行处理,或者实现PC机对远程单片机进行控制。因此,实现单片机与PC机之间的远程通信更具有实际意义。

2013-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除