1. 结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点; 在本文中将要分析的代码是leveldb,该项目的源码目录结构如下: 其中 cmake:存放cmake构建项目的相关文件 d ...
分类:
其他好文 时间:
2019-10-12 12:52:21
阅读次数:
91
一 本文目的 对leveldb的总体设计框架分析(关于leveldb基本原理,此文不做阐述,读者可以自行检索文章阅读即可),对leveldb中底层数据存储数据格式,内存数据模型,compact,版本管理,快照等机制实现介绍以及整个leveldb实现源码中各文件的源码实现职责,方便快速对leveldb ...
分类:
数据库 时间:
2019-10-02 14:26:27
阅读次数:
180
LevelDB是一个可持久化的KV数据库引擎,由Google传奇工程师Jeff Dean和Sanjay Ghemawat开发并开源。无论从设计还是代码上都可以用精致优雅来形容,非常值得细细品味。本文将从整体特性、架构和使用等几方面做一个解释,试图通过本文的介绍让大家对LevelDB有个整体的认识并能 ...
分类:
数据库 时间:
2019-09-26 12:07:50
阅读次数:
115
Python常用库大全,看看有没有你需要的。 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具。pyenv – 简单的 Python 版本管理工具。Vex – 可以在虚拟环境中执行命令。virtualenv – 创建独立 Python 环境的工具。 ...
分类:
编程语言 时间:
2019-09-13 16:00:54
阅读次数:
432
DBImpl::Recover把数据库恢复到上次退出的状态,Recover的基本功能:如果存在表数据,则Load表数据,并对日志进行恢复,否则,根据flag创建新表或者返回错误 Recover的基本流程是:首先是处理创建flag,比如存在就返回失败等等;然后是尝试从已存在的sstable文件恢复db ...
分类:
数据库 时间:
2019-09-10 01:06:01
阅读次数:
104
什么是跳跃表? SkipList在leveldb、redis以及lucence中都广为使用,是比较高效的数据结构。由于它的代码以及原理实现的简单性,更为人们所接受。我们首先看看SkipList的定义,为什么叫跳跃表? “ Skip lists are data structures that use ...
分类:
其他好文 时间:
2019-09-01 16:40:54
阅读次数:
122
消息队列高可用 ,`事务 签收 zookeeper+replicated leveldb store`的主从集群 异步发送 同步发送: 1. 明确指定同步发送 2. 未使用事务的前提下,发送持久化消息(会使用同步发送,且会阻塞producer直到broker返回一个确认,表示消息已持久化。会阻塞客户 ...
分类:
其他好文 时间:
2019-08-25 17:51:06
阅读次数:
108
ActiveMQ中对于投递模式设置为持久化的消息, 接收到到消息之后,会 ,然后 ActiveMQ持久化方式:AMQ、KahaDB、JDBC、LevelDB 持久化配置路径: "官方文档: http://activemq.apache.org/persistence.html" Message保存方 ...
分类:
其他好文 时间:
2019-08-25 16:23:26
阅读次数:
352
一、说明 实际的应用中,一般为了应用的高可用性,都会搭建集群环境去处理。部署多台应用,这样,即使一台有问题,其他热备应用可以立马顶上,继续提供服务。 ActiveMQ的集群部署,基于zookeeper的应用程序协调服务和levelDB的持久化方案。 本文中,基于一个系统环境,搭建伪集群模式,通过不同 ...
分类:
其他好文 时间:
2019-08-13 18:45:00
阅读次数:
122
一、作用 LevelDB如何能够知道每一层有哪些SST文件;如何快速的定位某条数据所在的SST文件;重启后又是如何恢复到之前的状态的,等等这些关键的问题都需要依赖元信息管理模块。对其维护的信息及所起的作用简要概括如下: 记录Compaction相关信息,使得Compaction过程能在需要的时候被触 ...
分类:
数据库 时间:
2019-07-21 23:48:43
阅读次数:
123