Memcached命令
存储命令
set/add/replace <key> <flag> <exptime> <bytes>
<data block>
读取命令
get <key>
状态命令
stats
stats items
stats cachedump slab_id limit_num
编译
要配置好cocytus, 首先需要安装基础的类库, 然后执行下面的代码:
$ ./autogen.sh
$ ./configure --enable-cocytus
$ make
如果类库不是按照默认路径安装的, 则需要执行下面的代码:
$ ./autogen.sh
$ ./configure --enable-cocytus CPPFLAGS='-I/path/to/include' LDFLAGS='-L/path/to/libs'
$ make
编译如果出现下面的错误
cc1: warnings being treated as errors
可以通过删除makefile里所有的下述语句来解决
-Werror
配置机器
要使cocytus能够在自己的服务器群上运行, 我们需要配置自己的机器ip和port, 这需要修改下面的文件
cocytus/shard.conf
把其中的ip地址修改为自己机器的ip即可, port可以选择默认的。
启动cocytus
要启动cocytus, 我们需要根据配置的机器来对启动参数进行调整
-X 组号
-x 节点号
-g 配置文件(shard.conf)
确定了参数, 可以用下面的命令启动
$ ./memcached -m 64 -X 0 -x 0 -g shard.conf -t 1
修改cocytus
要对cocytus进行测试, 我们可以对cocytus源代码进行一些修改, 以使cocytus更加方便我们测试
- 修改const.h文件, 包括memsize大小和unitsize大小
- 修改is_my_sharding函数, 这个函数用来判断接收到的数据是否属于自己
使用telnet进行测试
首先确保本机已经安装telnet, 输入命令进入telnet
$ telnet 220.113.20.123 11211
执行下面memcached命令
set a 0 0 4
aaaa
YCSB测试
生成binding
mvn -pl com.yahoo.ycsb:memraid-binding -am clean package
在保证正确安装cocytus和YCSB后, 执行下面的命令
$./bin/ycsb load memraid -s -P workloads/workloada > outputLoad.txt
如果有参数, 使用-p添加, 例如
-p "memcached.hosts=220.113.20.123:5001,220.113.20.124:5002,220.113.20.132:5003,220.113.20.133:5004"
RDP check
编码方案完成后, 需要进行以下检查
- 一个数据盘丢失
- 一个数据盘和一个行校验盘丢失(先后不同)
- 一个数据盘和一个对角校验盘丢失(先后不同)
- 两个数据盘丢失(leader != suber)
-
向suber中set数据(以上各种情况)
- 一个item包含多个unit
- 多个item属于一个unit
在Memcached-rdp中, 不修复校验盘