Submit Search
Upload
Leveldb background
•
3 likes
•
2,140 views
宗志 陈
Follow
Basho leveldb in qihoo
Read less
Read more
Technology
Report
Share
Report
Share
1 of 15
Download now
Download to read offline
Recommended
Google LevelDB Study Discuss
Google LevelDB Study Discuss
everestsun
Level db
Level db
宗志 陈
分布式Key Value Store漫谈
分布式Key Value Store漫谈
Tim Y
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
iammutex
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Ceph Community
Database.Cache&Buffer&Lock
Database.Cache&Buffer&Lock
Lixun Peng
数据库内核分享——第一期
数据库内核分享——第一期
frogd
豆瓣网技术架构变迁
豆瓣网技术架构变迁
reinhardx
Recommended
Google LevelDB Study Discuss
Google LevelDB Study Discuss
everestsun
Level db
Level db
宗志 陈
分布式Key Value Store漫谈
分布式Key Value Store漫谈
Tim Y
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
iammutex
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Ceph Community
Database.Cache&Buffer&Lock
Database.Cache&Buffer&Lock
Lixun Peng
数据库内核分享——第一期
数据库内核分享——第一期
frogd
豆瓣网技术架构变迁
豆瓣网技术架构变迁
reinhardx
Cephfs架构解读和测试分析
Cephfs架构解读和测试分析
Yang Guanjun
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
frogd
Mvcc (oracle, innodb, postgres)
Mvcc (oracle, innodb, postgres)
frogd
对MySQL的一些改进想法和实现
对MySQL的一些改进想法和实现
Lixun Peng
Mesos intro
Mesos intro
dennis zhuang
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎
frogd
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
frogd
redis 适用场景与实现
redis 适用场景与实现
iammutex
InnoDB Transaction Lock and MVCC
InnoDB Transaction Lock and MVCC
frogd
Ceph perf-tunning
Ceph perf-tunning
Yang Guanjun
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
Alex Lau
Ftn存储设计
Ftn存储设计
gzterrytan
硬件体系架构浅析
硬件体系架构浅析
frogd
云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路
li luo
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结
redhat9
MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)
frogd
Oracle rac资源管理算法与cache fusion实现浅析
Oracle rac资源管理算法与cache fusion实现浅析
frogd
阿里CDN技术揭秘
阿里CDN技术揭秘
Joshua Zhu
Ceph intro
Ceph intro
Yang Guanjun
Pika
Pika
宗志 陈
Disk and page cache
Disk and page cache
宗志 陈
More Related Content
What's hot
Cephfs架构解读和测试分析
Cephfs架构解读和测试分析
Yang Guanjun
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
frogd
Mvcc (oracle, innodb, postgres)
Mvcc (oracle, innodb, postgres)
frogd
对MySQL的一些改进想法和实现
对MySQL的一些改进想法和实现
Lixun Peng
Mesos intro
Mesos intro
dennis zhuang
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎
frogd
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
frogd
redis 适用场景与实现
redis 适用场景与实现
iammutex
InnoDB Transaction Lock and MVCC
InnoDB Transaction Lock and MVCC
frogd
Ceph perf-tunning
Ceph perf-tunning
Yang Guanjun
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
Alex Lau
Ftn存储设计
Ftn存储设计
gzterrytan
硬件体系架构浅析
硬件体系架构浅析
frogd
云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路
li luo
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结
redhat9
MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)
frogd
Oracle rac资源管理算法与cache fusion实现浅析
Oracle rac资源管理算法与cache fusion实现浅析
frogd
阿里CDN技术揭秘
阿里CDN技术揭秘
Joshua Zhu
Ceph intro
Ceph intro
Yang Guanjun
What's hot
(20)
Cephfs架构解读和测试分析
Cephfs架构解读和测试分析
Hacking Nginx at Taobao
Hacking Nginx at Taobao
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
Mvcc (oracle, innodb, postgres)
Mvcc (oracle, innodb, postgres)
对MySQL的一些改进想法和实现
对MySQL的一些改进想法和实现
Mesos intro
Mesos intro
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
redis 适用场景与实现
redis 适用场景与实现
InnoDB Transaction Lock and MVCC
InnoDB Transaction Lock and MVCC
Ceph perf-tunning
Ceph perf-tunning
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
Ftn存储设计
Ftn存储设计
硬件体系架构浅析
硬件体系架构浅析
云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结
MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)
Oracle rac资源管理算法与cache fusion实现浅析
Oracle rac资源管理算法与cache fusion实现浅析
阿里CDN技术揭秘
阿里CDN技术揭秘
Ceph intro
Ceph intro
Viewers also liked
Pika
Pika
宗志 陈
Disk and page cache
Disk and page cache
宗志 陈
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
DataStax
SSDB(LevelDB server) vs Redis
SSDB(LevelDB server) vs Redis
ideawu
高性能并发网络服务器设计与实现
高性能并发网络服务器设计与实现
ideawu
bada-data-beautiful
bada-data-beautiful
宗志 陈
Beanstalk
Beanstalk
宗志 陈
Mario
Mario
宗志 陈
Log experience
Log experience
宗志 陈
LevelDB 간단한 소개
LevelDB 간단한 소개
종빈 오
OceanBase-破解数据库高可用难题
OceanBase-破解数据库高可用难题
everestsun
高可用性系统设计与实现
高可用性系统设计与实现
everestsun
Ocean base 破解数据库高可用难题
Ocean base 破解数据库高可用难题
everestsun
高可用性系统设计与实现
高可用性系统设计与实现
everestsun
BigTable PreReading
BigTable PreReading
everestsun
百度消息队列设计和实现总结
百度消息队列设计和实现总结
everestsun
Leveled compaction
Leveled compaction
seki_intheforest
PFZ WorkshopDay Linux - Advanced
PFZ WorkshopDay Linux - Advanced
Joshua Thijssen
PFZ WorkshopDay Linux - Basic
PFZ WorkshopDay Linux - Basic
Joshua Thijssen
15 protips for mysql users pfz
15 protips for mysql users pfz
Joshua Thijssen
Viewers also liked
(20)
Pika
Pika
Disk and page cache
Disk and page cache
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
SSDB(LevelDB server) vs Redis
SSDB(LevelDB server) vs Redis
高性能并发网络服务器设计与实现
高性能并发网络服务器设计与实现
bada-data-beautiful
bada-data-beautiful
Beanstalk
Beanstalk
Mario
Mario
Log experience
Log experience
LevelDB 간단한 소개
LevelDB 간단한 소개
OceanBase-破解数据库高可用难题
OceanBase-破解数据库高可用难题
高可用性系统设计与实现
高可用性系统设计与实现
Ocean base 破解数据库高可用难题
Ocean base 破解数据库高可用难题
高可用性系统设计与实现
高可用性系统设计与实现
BigTable PreReading
BigTable PreReading
百度消息队列设计和实现总结
百度消息队列设计和实现总结
Leveled compaction
Leveled compaction
PFZ WorkshopDay Linux - Advanced
PFZ WorkshopDay Linux - Advanced
PFZ WorkshopDay Linux - Basic
PFZ WorkshopDay Linux - Basic
15 protips for mysql users pfz
15 protips for mysql users pfz
Similar to Leveldb background
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
redhat9
Zabbix in PPTV
Zabbix in PPTV
ViSenze - Artificial Intelligence for the Visual Web
Ceph Day Beijing: Optimizations on Ceph Cache Tiering
Ceph Day Beijing: Optimizations on Ceph Cache Tiering
Ceph Community
HBase
HBase
Tony Deng
Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3
redhat9
Hbase介绍
Hbase介绍
Kay Yan
MySQL应用优化实践
MySQL应用优化实践
mysqlops
浅谈 My sql 性能调优
浅谈 My sql 性能调优
thinkinlamp
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践
锐 张
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
jackbillow
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
My own sweet home!
Kvmopt osforce
Kvmopt osforce
meecheng
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
涛 吴
大规模网站架构
大规模网站架构
drewz lin
新浪微博Feed服务架构
新浪微博Feed服务架构
XiaoJun Hong
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
Yiwei Ma
对MySQL应用的一些总结
对MySQL应用的一些总结
Lixun Peng
111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql
Zoom Quiet
Lvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukong
Michael Zhang
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
zhuozhe
Similar to Leveldb background
(20)
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
Zabbix in PPTV
Zabbix in PPTV
Ceph Day Beijing: Optimizations on Ceph Cache Tiering
Ceph Day Beijing: Optimizations on Ceph Cache Tiering
HBase
HBase
Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3
Hbase介绍
Hbase介绍
MySQL应用优化实践
MySQL应用优化实践
浅谈 My sql 性能调优
浅谈 My sql 性能调优
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
Kvmopt osforce
Kvmopt osforce
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
大规模网站架构
大规模网站架构
新浪微博Feed服务架构
新浪微博Feed服务架构
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
对MySQL应用的一些总结
对MySQL应用的一些总结
111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql
Lvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukong
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
Leveldb background
1.
Basho levelDB 实践 360-陈宗志
2.
• 背景介绍 • 原理 • 改进点 • 新的挑战
3.
背景 • 360 的KV服务是基于Dynamo实现 • 底层的存储引擎使⽤用的是LevelDB
4.
背景 • LevelDB is a
fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. • LevelDB 单机可以⽀支持百万级别的数据量
5.
原理 • 整体是⼀一个LSM Tree的实现 • 插⼊入: 先写内存,
然后将内存中的数据Dump 成⼀一 个静态⽂文件 • 读取: 先读内存, 然后⼀一次读取静态⽂文件 • 整体通过Compaction 将⽂文件从内存到磁盘
6.
原理
7.
改进点1 • 官⽅方: 只限制sst⽂文件的⼤大⼩小 • Basho: 限制sst⽂文件的⼤大⼩小同时限制sst⽂文件key的 个数<75000 • 原因:
为了控制bloom filter中key的个数, key过多 bloom filter的误判率增⾼高
8.
改进点2 • 官⽅方: 当Compaction线程落后很多的时候, 会不可 写 • Basho:
增加Compaction线程, 每个线程有优先级. 优先级最⾼高的是imm_ 到 Level 0的Compaction • 原因: 因为当imm_满的时候, 写⼊入是不允许的. 增 加Compaction的优先级, 可以优先满⾜足imm_到 Level 0 的Compaction
9.
改进点3 • 官⽅方: 没有统计当前DB的key个数等⽅方法 • Basho: 增加统计⼯工具.
通过在sst⽂文件的头部添加 统计结构, 可以统计每⼀一个sst⽂文件中key 的个数 • 原因: ⽅方便管理统计
10.
改进点4 • 官⽅方: 没有DB的操作数的记录统计 • Basho: 在Leveldb进程加⼊入shared
memory segment, ⽤用来统计Get, Put, OpenFile 等当前信 息 • 原因: ⽅方便实时观察DB的运⾏行情况
11.
改进点5 • 官⽅方: 所有Level⽂文件放在同⼀一⺫⽬目录 • Basho: 将相应级别的⽂文件放⼊入的相应⺫⽬目录 • 原因:
在Linux下⾯面⼀一个⺫⽬目录下⾯面⽂文件过多对⽂文件 的打开速率有略微的影响. ⽅方便对不同级别统计
12.
改进点6 • 官⽅方: 每个级别的sst⽂文件⼤大⼩小2M • Basho: 定制了每个级别的sst⽂文件⼤大⼩小 • 原因:
因为⼀一个进程需要打开64个levelDB实例, 所 以需要限制levelDB单个实例的open_files.
13.
改进点7 • 官⽅方: 不⽀支持key的expire time
设置 • 360: ⽀支持expire time设置. 设置了expire time的 key 会在超时后, ⾃自动在Compaction的时候被删除 • 原因: 业务⽅方有key过期时间的要求
14.
新的挑战 • 加⼊入动态分库功能, ⺫⽬目前分库需要⼿手动迁移并导⼊入 数据 • ⽀支持multi-get 和
multi-put 功能
15.
Q & A
Thanks 我们正在招聘, 欢迎加⼊入我们 chenzongzhi@360.cn
Download now