当前位置:网站首页>Interpretation of leveldb source code skiplist
Interpretation of leveldb source code skiplist
2022-07-04 04:10:00 【Fried Crazy Rabbit】
LevelDB Medium jump table
Basic overview
levelDB
The data stored in memory is stored inMemtable
Medium , amongMemtable
The underlying data structure is based on Jump watch To achieve .among
Memtable
There will be frequent insert and query operations , The delete operation is simulated as inserting a with ( Delete ) Label data , You need to support traversal
Multithreading support
When multithreading operations, we need to ensure some :
Writes require external synchronization, most likely a mutex.
Reads require a guarantee that the SkipList will not be destroyed
- Write: Lock the user when modifying the skip table
- Read: When accessing the jump table, ensure that the jump table will not be destroyed
Through atomic operation , Make it possible to Read concurrent , Read write concurrent thread safety , however Write concurrent Users are required to maintain
leveldb Appointment
- node It will not be deleted unless the entire jump table structure is destroyed
- node Nodes except next Everything outside the pointer is unchanged
The implementation of skip table
边栏推荐
- 1289_FreeRTOS中vTaskSuspend()接口实现分析
- Katalon框架测试web(二十六)自动发邮件
- 华为云鲲鹏工程师培训(广西大学)
- mysql数据库的存储
- Perf simple process for multithreaded profile
- 【读书会第十三期】多媒体处理工具 FFmpeg 工具集
- MySQL one master multiple slaves + linear replication
- 还原窗口位置的微妙之处
- Aperçu du code source futur - série juc
- Is it safe to buy insurance for your children online? Do you want to buy a million dollar medical insurance for your children?
猜你喜欢
The maximum expiration time of client secret in azure ad application registration is modified to 2 years
MySQL maxscale realizes read-write separation
拼夕夕二面:说说布隆过滤器与布谷鸟过滤器?应用场景?我懵了。。
I was tortured by my colleague's null pointer for a long time, and finally learned how to deal with null pointer
ctf-pikachu-XSS
Mindmanager2022 efficient and easy to use office mind map MindManager
Pytest multi process / multi thread execution test case
LNK2038 检测到“RuntimeLibrary”的不匹配项: 值“MD_DynamicRelease”不匹配值“MDd_DynamicDebug”(main.obj 中)
Detailed explanation of PPTC self recovery fuse
'2'>' 10'==true? How does JS perform implicit type conversion?
随机推荐
Global exposure and roller shutter exposure of industrial cameras
[PaddleSeg 源码阅读] PaddleSeg 自定义数据类
Wechat official account web page authorization
EV6 helps the product matrix, and Kia is making efforts in the high-end market. The global sales target in 2022 is 3.15 million?
10 reasons for not choosing to use free virtual hosts
如何有效远程办公之我见 | 社区征文
[PaddleSeg 源码阅读] PaddleSeg计算Dice
I Build a simple microservice project
Getting started with the go language is simple: go implements the Caesar password
idea修改主体颜色
【CSRF-01】跨站请求伪造漏洞基础原理及攻防
AAAI2022 | Word Embeddings via Causal Inference: Gender Bias Reducing and Semantic Information Preserving
Katalon framework tests web (XXI) to obtain element attribute assertions
Katalon使用script实现查询List大小
Typical applications of minimum spanning tree
三年进账35.31亿,这个江西老表要IPO了
LevelDB源码解读-SkipList
How was my life in 2021
[paddleseg source code reading] normalize operation of paddleseg transform
渗透实战-guest账户-mimikatz-向日葵-sql提权-离线解密