1)大概浏览了leveldb文档的介绍。本想逐步看代码,想想还是自己先实现一个看看如何改进。

2)完成了一个非常丑陋的初版,但是还是比初初版有进步。

3)key value的数据库,不允许有key重复,所以必须检测key。

  1,插入检测key重复,太耗时间,不可能去检查数据文件。明显必须加入一个索引文件。形式key,offset。

  2,  key,offset的索引形式,数据到达5w,简直不可忍受。插入数据时,必须对索引文件排序,之后可以二分法查找key。

  3,排序,二分查找法,又必须要求可以对索引文件进行random access 立即访问。所以要求每个记录一样大小。所以自己开始考虑是建立二级索引文件。形式:一级索引元素的offset。

    查看了leveldb的实现,自己还是太嫩,既然要求2级索引了,那么一级索引的key,offset,就没有发挥原本可以直接查看key的功效。所以直接去掉key,offset,索引文件直接放入 ,数据文件中每条元素的offset。

  4,查找key用二分查找法,插入也必须用二分插入法。

4)非常丑陋的初版完成。基本可以插入数据了。不会出现初初版的到了5w数据,基本不可忍受的插入速度。

5)继续完善,发现一篇介绍leveldb的博文,http://blog.csdn.net/qq112928/article/details/21172841。一下让继续完善的动力,暂停了。leveldb中使用了几个自己完全没有接触的算法和思路。所以暂时暂停。先学习使用到的知识点。再完善。

6)烂尾的项目太多了。唉。。。。随便一个做好都不容易。

非常丑陋的初版

转载于:https://www.cnblogs.com/lsfv/p/6218987.html

leveldb 学习。相关推荐

  1. leveldb 学习记录(四)Log文件

    前文记录 leveldb 学习记录(一) skiplist leveldb 学习记录(二) Slice leveldb 学习记录(三) MemTable 与 Immutable Memtable le ...

  2. levelDB学习记录

    文章目录 levelDB学习记录 博客 LevelDB源码分析 1.起步 2.Visual Studio Code 3.基本思路 LevelDB四个接口 磁盘的特点 状态机 状态机的四个概念 初步设计 ...

  3. Leveldb学习笔记:leveldb的使用与原理探究

    文章目录 前言 一.leveldb是什么? 二.leveldb的使用 1.打开一个数据库 2.Status 3.关闭一个数据库 4.数据库读写 5.原子更新 6.同步写 7.并发 8.迭代器 9.Sn ...

  4. jmeter教程:性能测试执行及结果分析

    做性能测试,先是根据策略编写脚本,然后才是执行脚本,现在我已经编写好了脚本,一个最简单的脚本 然后保存,运行,在察看结果树里,可以看到正确的响应结果 现在,启一个线程让这个脚本一直循环运行,查看运行情 ...

  5. Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件

    在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致.而在caffe中经常使用的数据类型是lmdb或leveldb,因此就 ...

  6. Caffe学习(7)——图像数据转换为db文件(leveldb/lmdb)

    在深度学习的实际应用中,我们经常用到的的原始数据是如jpg.png等格式的图片文件,而且图片的大小也可能不一致.而在caffe中经常使用的数据类型是lmdb或leveldb(当然还有其他格式,这里不做 ...

  7. levelDB的学习

    学习资料 (3条消息) leveldb kv数据库可视化操作小工具(增删查改)_melon-gaga的博客-CSDN博客_leveldb 可视化 (3条消息) 半小时学会LevelDB原理及应用_紫魔 ...

  8. caffe学习系列(1):图像数据转换成db(leveldb/lmdb)文件

    参考:http://www.cnblogs.com/denny402/p/5082341.html 上述博文用caffe自带的两张图片为例,将图片转为db格式.博主对命令参数进行了详细的解释,很赞. ...

  9. 从JoinBatchGroup 代码细节 来看Rocksdb的相比于leveldb的写入优势

    文章目录 1. Rocksdb写入模型 2. LevelDB写入的优化点 3. Rocksdb 的优化 1. Busy Loop 2. Short Wait -- SOMETIMES busy Loo ...

最新文章

  1. 普通用户Mysql 5.6.13 主从,主主及nagios的mysql slave监控
  2. 文件处理-写模式操作文件
  3. golang mysql连接池原理_[Go] golang实现mysql连接池
  4. Srs之Clion编译
  5. Spring或Hibernate其实都提供了透明处理Clob的方法
  6. 删除字符串前面的0,00,000。。。
  7. c语言程序与结构,c语言基础与顺序结构-c语言程序设计.ppt
  8. nginx的安装及配置文件详解
  9. .md文件的打开与软件---markdown
  10. 数据仓库分层架构深度讲解
  11. spring cloud SnakeYAML RCE复现
  12. 如何开启和关闭 win10卓越模式?
  13. 网络实名认证接口认证形式有哪些?
  14. 引擎之旅 前传:C++代码规范
  15. 从零开始的Node.js新闻爬虫实验项目(四)东方财富网、网易新闻、Pixiv的爬取思路
  16. nginx:重启linux服务之后保持nginx重启,nginx后台自启动
  17. python爬取豆瓣读书并进行图形化分析
  18. 任何收获都不是偶然 日复一日的付出和努力 一点一滴的进步,
  19. 使用Go爬豆瓣电影Top250 并写入数据库
  20. day08-----pytorch

热门文章

  1. 希尔排序之C++实现(高级版)
  2. 高可用与负载均衡(7)之聊聊Lvs-DR+Keepalived的解决方案
  3. Bootstrap学习笔记(三) 网格系统
  4. View(视图)——ListView概述、Adapter分类
  5. python 正则re模块
  6. 使用Google Weather API查询天气预报
  7. 微软Windows SharePoint Services 3.0 应用程序模板( Templates)中文版推出了
  8. Linux 高级存储管理
  9. P1650 田忌赛马(贪心)
  10. 停车场事故频频,AI 达人将摄像头变身安全卫士