【技术实现步骤摘要】
一种基于RPC代理解决多进程访问LevelDB的方法
[0001]本专利技术涉及RPC访问LevelDB领域,具体的是一种基于RPC代理解决多进程访问LevelDB的方法。
技术介绍
[0002]LevelDb是能够处理十亿级别规模Key
‑
Value型数据持久性存储的C++程序库,LevelDB是由Google开发并开源,比较知名的项目如Chrome浏览器以及IPFS文件系统底层都使用LevelDB作为元数据的管理引擎。随着LevelDB被大量广泛的使用,一个明显的缺陷限制了它的继续发展,LevelDB只允许单进程访问,如果想实现并发,只能通过单进程下的多线程完成并发的效果,而现实中有两个明显的使用场景:一个进程读写LevelDB,其他进程对LevelDB做只读操作;一个进程读写LevelDB,其他本地进程甚至远程进程也同时读写同一个LevelDB。
[0003]这两种场景LevelDB都没有给出理想的方案;第一个问题迂回的解决方案普遍使用的是对其他只读LevelDB的进程,需要重新拷贝一份Lev ...
【技术保护点】
【技术特征摘要】
1.一种基于RPC代理解决多进程访问LevelDB的方法,其特征在于,所述方法包括以下步骤:S1、在LevelDB服务器端,启动RPC代理服务器端模块,完成随后的进程读写操作;S2、在LevelDB客户端,启动RPC代理客户端模块,RPC代理客户端模块通过RPC连接模块自动连接到RPC代理服务器端模块,准备就绪后完成随后的进程读写操作。2.根据权利要求1所述的一种基于RPC代理解决多进程访问LevelDB的方法,其特征在于,所述RPC代理客户端模块、RPC代理服务器端模块和RPC连接模块均为新增模块。3.根据权利要求2所述的一种基于RPC代理解决多进程访问LevelDB的方法,其特征在于,所述RPC代理客户端模块负责接收从本地或者远程的客户端进程发出的读写请求,包括K
‑
V数据库的Get、Put、Delete、Sync、Close、BatchPutDelete、Has、GetSize、Query多种必要接口,并负责通过RPC连接模块转发上述读写请求至RPC代理服务器端模块,同时在第一次启动时连接到RPC代理服务器端模块,将自己的标识发送给RPC代理服务器端模块,随后的读写数据请求使用随机的UUID唯一指定符标识此次请求。4.根据权利要求2所述的一种基于RPC代理解决多进程访问LevelDB的方法,其特征在于,所述RPC连接模块负责转发和接收RPC代理客户端模块和RPC代理服务器端模块之间的所有通讯。5.根据权利要求2所述的一种基于RPC代理解决多进程访问LevelDB的方法,其特征在于,所述RPC代理服务器端模块负责接收和响应来在于通过RPC连接模块传递过来的RPC代理客户端模块发来的请求。6.根据权利要求5所述的一种基于RPC代理解决多进程访问LevelDB的方法,其特征在于,所述...
【专利技术属性】
技术研发人员:吴波,于淼,
申请(专利权)人:深圳哈希街区科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。