Arganzheng's Blog

stay hungry, stay foolish

如何查看和设置文件句柄数

1. 系统级别限制(System-Wide Limit) Set this higher than user-limit set above. 配置文件:/etc/sysctl.conf: fs.file-max = 2097152 然后运行: sysctl -p让其生效。 这个命令会增加系统级别(所有用户)可以打开的文件句柄数。 可以通过/proc/sys/fs/file-m...

neo4j如何支持多个label索引查询

4kw+的Company数据,8kw+的Person数据,和20kw左右的关系数据。 $ head company.csv id:ID,name,:LABEL 00002cefc5e2d05b9311a791fd009160,"岳阳市岳阳楼区亿诺厨房电器总经销",Company 00002ebe645c0f777887ff17d525ba6b,"禄丰县碧城镇零点俱乐部",Company 0...

一个诡异的Antlr4语法问题

背景 图数据库对外要提供灵活的查询接口,可以有三种层次的实现形式: 自然语言: unicorn(facebook) 结构化查询语言: Gremlin(Titan), AQL(ArangoDB), Cypher(Neo4j), etc. 根据需要预定义的接口: 如一度关系接口,实体查询接口等。 自然语言实现起来过于复杂,准确度不高,不好现实;预定义接口之前在做通用知识图谱...

基于Aerospike实现一个分布式图数据库

背景 去年开始做知识图谱,从网站抓取到的数据经过清洗、抽取、消歧、挖掘等最后得到的图谱,需要以在线的形式提供给用户使用,这就需要一个图数据库了。为了避免重复造轮子,我们调研了很多开源的图数据库,像neo4j, Titan, OrientDB,Graph Engine(@Microsoft), Cayley, ArangoDB, 等等。具体可以参考笔者之前写的一篇文章:图存储引擎学习笔记。 ...

Aerospike UDF学习笔记

背景 很多数据存储系统都支持用户自定义函数(UDF, User-Defined Functions),Aerospike也不例外;UDF language一般是解释型的脚本语言,比如Lua(Redis,Postgres, etc.),JavaScript(ArangoDB, Cayley, etc.),Aerospike这里采用了Lua。 UDF(User-Defined Functio...

快乐课程

你真的会呼吸吗?

之前对瑜伽其实大部分的了解都是停留在体式上,感觉有点类似于中国的少林易筋经,对强身健体肯定是有帮助的。 去年年初的时候,同事 @张静 在公司组织了一次瑜伽活动,请了一个印度老师过来给我们教授瑜伽。这算是一次别开生面的体验,因为这次瑜伽不只是传统上的体式学习,更多的是呼吸练习和冥想。也就是这样子,比较系统的了解了一下印度瑜伽的体系,其实体式只是瑜伽课程中的基础,更高层次的其实是呼吸和三摩地。...

markdown中图片如何指定大小

Markdown让你专注于内容而不是格式,但是有时候你确实想要控制一下显示效果,比如说图片。在markdown中,图片是通过这样的方式插入的: ![test image size](/img/post-bg-2015.jpg) 显示效果如下: 可以看到默认是最大化,如果我们想要控制图片的显示大小,怎么做呢?最简单直观的做法就是使用原始的HTML标签: <img src="...

阿甘的网络日志

Hello world, hello my new blog

“Put the past behind you before you can move on.” 写博客可能是我坚持第二久的习惯吧。 大约在大三的时候就开始用QQ记事本记录一些技术文章,挺小巧的,就是不能分享出去,只是作为一个备忘录。工作之后也尝试过在一些大众博客网站上写过一段时间的博客,像CSDN,JavaEye,但是一来人气不高,二来页面和交互实在太丑,坚持不到几个月就懒得...

redis slave的key过期机制

Redis的Scale out一直是大家关注的,因为它的单进程单线程模型,scale out基本是势在必行。对于读多写少的应用,最简单的方式就是利用Redis的Replication机制,master提供写,slave提供读。但是在 3.21 之前,由于slave所有写操作都来自于master,被动清理的key并不会发送DEL命令到slave,所以会导致一个key在master已经过期了,但...

Bloom filter在分布式环境中的应用

概述 布隆过滤器是一个应用非常广泛的概率型数据结构,一般用于判断一个元素是否存在一个集合中,比如在字处理软件中,需要检查一个英语单词是否拼写正确(也就是要判断它是否在已知的字典中);在 缓存系统中,判断一个元素是否在缓存中;在网络爬虫里,一个网址是否被访问过等等。最直接的方法就是将集合中全部的元素存在计算机中,遇到一个新元素时,将它和集合中的元素直接比较即可。一般来讲,计算机中的集合是用哈...