分布式Key-Value数据的开发可行性分析
前段时间和同事讨论key-Value DB的用途的问题,说是非常的有用。下周打算实现一个原型。今天把前几天写的文档总结一下。希望大家提些建议和意见。
功能:
相对于关系数据库功能更少,只提供有限的Key-Value查询功能,以及一些可管理功能。相对于关系数据库可以提供更加强劲的性能,提供更好的可管理性(大部分自管理),可伸缩性。
目标:
简单的Key-Value操作
管理功能
自管理特性
高性能
数据高安全
应用范围:
大数据量、高访问量的网站
对数据安全要求高的软件
项目工程:
因为总体功能比较少,各个组成部分可以使用现有的技术,开发工作量应该不会很大。1-2个人就可以完成。
数据存储层可以用berkeydb 或 Mysql
数据通讯可以用Http协议 或 tcp
功能设计
每一个数据存 N 份 Copy
Client 向一个节点写数据,同时复制给其他copy节点
客户端API get(groupName,key)
getMulti(groupName,keys)
set(groupName,key,value)
setMulit(groupName,keyValuePairs)
listKey(groupName,startPos,count)
listKey(groupName,startKey,count)
管理功能
查看各节点运行情况
添加节点
移除节点
性能管理
查看各客户端(ip)的使用量数据 (命中内存的次数、未命中内存的次数、写的次数)
查看各个账号的使用量数据 (命中内存的次数、未命中内存的次数、写的次数)
限制某客户端(ip)的使用
限制某账号的使用
相关推荐
微微一笑 2020-05-04
zangdaiyang 2020-01-29
lglovejava 2015-09-07
书山有路勤为径 2016-01-13
qingtianweichong 2019-06-29
buaashang 2012-06-26
ceibake 2019-06-27
lihn 2019-06-26
newthon 2017-12-06
ynkgyangxw 2012-02-18