stardog 基本试用(社区版)
stardog是一个知识图谱的实现,实现了sparql以及graphql协议,使用起来也比较简单,官方文档挺全下载社区版,注册之后会有邮件通知,里面会包含license以及软件包下载地址https://www.stardog.com/邮件内容运行邮件会有说明快速入门的文档,对于我们来说就是打开,按照
Windows上安装Stardog
Stardog是一个企业级的知识图谱数据库。使用Stardog,你可以统一、查询、搜索和分析所有数据。下面是安装过程。1、安装环境操作系统:Win1064位注意:Stardog在Java8上运行,最好是64位的JVM,不是也没关系。2、下载进入Stardog官网(https://www.stardo
LevelDB库功能详解
LevelDB库简介一、LevelDB入门LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,也就是说,LevelDB很适合应用在查询较少,而写很多的场景。LevelDB应用了LSM(LogStructuredMerge)策略,lsm_t
leveldb 并发处理
在并发写入的时候,leveldb巧妙的利用一个时间窗口做batch写入,这部分代码值得一读:StatusDBImpl::Write(constWriteOptions&options,WriteBatch*my_batch){//partAWriterw(&mutex_);w.bat
LevelDB的cache---golang实现
前言对LevelDB比较了解应该知道其中一块cache实现:LRUCache是采用双向链表+HashTable,其中HashTable是为了解决双向链表的查找性能缺陷才引入的。接下来看一下采用golang如何实现LRUCache。实现1、定义cache接口【thread-safe的cache】imp
LevelDB Put如何写入数据
leveldb插入数据步骤用户输入的kv数据首先组装为wallogentry写入到wallog中然后将kv数据从内存中的wallogentry解析为memtable中的
Bigtable 和 LevelDB 的设计与实现
在2006年的OSDI上,Google发布了名为Bigtable:ADistributedStorageSystemforStructuredData的论文,其中描述了一个用于管理结构化数据的分布式存储系统-Bigtable的数据模型、接口以及实现等内容。本文会先对Bigtable一文中描述的分布式
LevelDB 版本信息相关的数据结构解析2
LevelDB版本信息相关的数据结构解析2上篇介绍了leveldb中涉及版本信息的一些数据结构Version、VersionSet、VersionEdit,本篇文章来介绍下版本管理是如何进行的。首先我们可以回忆下leveldb读取一条key的流程:首先在memtable中读取,找到则返回;否则要去s
LevelDB数据结构Skip List
什么是跳表跳表(SkipList)是一种基于有序链表的扩展,是由WilliamPugh提出的。他在论文《Skiplists:aprobabilisticalternativetobalancedtrees》中详细地介绍了有关跳表结构、插入删除操作的细节。SkipList是一种可以用于替代查找树的内存
[LevelDB系列] 概述
LevelDB是Google传奇工程师JeffDean和SanjayGhemawat开源的KV存储引擎,无论从设计还是代码上都可以用精致优雅来形容,非常值得细细品味。接下来就将用几篇博客来由表及里的介绍LevelDB的设计和代码细节。本文将从设计思路、整体结构、读写流程、压缩流程几个方面来进行介绍,
LevelDB内存管理器Arena
本文主要介绍开源项目LevelDB中的内存管理器(也可称为内存池)Arena的实现,LevelDB的大部分内存管理依赖于C++语言的默认实现,也就是不对内存进行管理。只是在MemTable的实现中用到了一个简单的内存管理器(Arena)。Arena目的LevelDB中MemTable的内部实现Ski
深入 LevelDB 数据文件 SSTable 的结构
LevelDB的键值对内容都存储在扩展名为sst的SSTable文件中,SSTable的磁盘文件结构比较复杂,读者在阅读本节之前要做好心理准备。如果有任何看得不明白的地方,一定要在下方的问答区及时提问。图片SSTable文件的内容分为5个部分,Footer、IndexBlock、MetaIndexB
LevelDB简介
LevelDB是一个基于磁盘的kv存储系统,他的作者是Google传奇工程师JeffDean和SanjayGhemawat,无论从代码的结构和系统的实现上,都很值得我们学习。LevelDB因为是基于单机的,系统容量会有限制,在大规模的系统中很难使用。据我了解,阿里的tair中,底层的ldb存储使用了
Leveldb代码阅读笔记
本文基于leveldb1.9.0代码。整体架构leveldb如上图,leveldb的数据存储在内存以及磁盘上,其中:memtable:存储在内存中的数据,使用skiplist实现。immutablememtable:与memtable一样,只不过这个memtable不能再进行修改,会将其中的数据落盘
LevelDB 浅析
2006年,Google发布了一篇论文Bigtable:ADistributedStorageSystemforStructuredData[1],描述了一个用于管理结构化数据的分布式存储系统-Bigtable的数据模型、接口以及实现等内容。随后,市面上出现了以ApacheHBase为代表的开源分布
【存储引擎】LevelDB 编译使用
代码获取leveldb的仓库地址为https://github.com/google/leveldb。下载代码的时候最好加上--recurse-submodules参数,直接把子模块的内容一并下载下来,因为编译会依赖子模块里的代码,缺少则无法通过编译:gitclone--recurse-submod
leveldb源码剖析-写入流程分析
客户端写入代码intmain(){//打开数据库leveldb::DB*db;//初始化leveldb的memtable内存大小、文件操作接口、block大小、打开文件数限制等leveldb::Opt
LevelDB 入门 —— 全面了解 LevelDB 的功能特性
本节我们将全面了解一下LevelDB的各种特性。LevelDB的开发语言是C++,考虑到会使用C++语言的同学不是很多,在本节我们将使用Java语言来描述LevelDB的特性。其它语言栈的同学也不必担心,因为不同语言操纵LevelDB的接口API都是一样的,使用起来大同小异。打开和关闭LevelDB
【存储引擎】LevelDB 概述
定位LevelDB是Google开源的一款KV数据库存储引擎,支持持久化存储,key和value都是任意的字节数组(bytearrays),提供了基本的Put()、Delete()、Get()操作接口。系统结构LevelDB用memtable(activememtable)、immutablemem
鸿篇巨制 —— LevelDB 的整体架构
本节信息量很大,我们要从整体上把握LevelDB这座大厦的结构。当我们熟悉了整体的结构,接下来就可以各个击破来细致了解它的各种微妙的细节了。一个比喻LevelDB有点类似于建筑,分为地基和地面两部分,也就是磁盘和内存,而地基又好比地壳结构分了很多层级,不同层级的数据还会定期从上往下移动——沉积作用。