mapkeeper连接的数据库,修改ycsb insert和get的key长度

通过测试可以发现ycsb进行评测数据库工作负载的时候insert生成的key值是通过Fowler_Noll_Vo_hash之后得到18或者是19长度的字符串然后在前面加上"user"和填充位之后得到22或者23固定长度。这里主要是coreworkload中的buildKeyName(keynum) 方法实现的(这里的keynum是按照顺序递增的,value是keynum进行hash编码之后得到的值,加上“user”之后就会变成22位或者23位)
 

pre keynum:994 value:633995401461691778    value length:18
pre keynum:995 value:6858042526771971499   value length:19
pre keynum:996 value:4152828024211893584   value length:19

如果我想变成16位固定长度的key就需要更改hash算法,hash算法主要是调用core目录下Utils文件中hash,因此我在util文件中添加有关md5 hash算法,可以通过调用直接生成以下三种形式字符串:16位纯数字、数字和字母组合还有32位数字和字母组合。

import java.security.MessageDigest;
//生成16位纯数字的字符串
public static String getMD5(byte[] source) {
    String s = null;
    char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
    try {
      MessageDigest md = MessageDigest.getInstance("MD5");
      md.update(source);
      byte[] tmp = md
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值