从逻辑上讲,这似乎需要更多的时间。我特别感兴趣的是加载场景,在这种场景中,我们可以看到15毫秒(对于每行17kb的数据)的平均checkandput延迟……将checkandput转换为简单的“put”将显著减少平均延迟。对于99%的用例,当我们执行checkandput时,我们写入的行键甚至不存在。
q7solyqu1#
是的,检查和放置延迟将比简单的放置更高。但是,要提高多少取决于memstore中的数据量和块缓存中的数据量。checkandmutate的工作原理如下:获取行锁等待确认所有未完成的交易拿到需要的手机使用提供的规则进行比较执行放置/删除因为如果成功的最后一步是执行看跌期权,那么checkandmutate将有一些额外的成本。get(可能)是其中最昂贵的部分。如果您能够添加bloom过滤器并在内存中保留所有索引块,那么您可以确保get尽可能快。
1条答案
按热度按时间q7solyqu1#
是的,检查和放置延迟将比简单的放置更高。但是,要提高多少取决于memstore中的数据量和块缓存中的数据量。
checkandmutate的工作原理如下:
获取行锁
等待确认所有未完成的交易
拿到需要的手机
使用提供的规则进行比较
执行放置/删除
因为如果成功的最后一步是执行看跌期权,那么checkandmutate将有一些额外的成本。get(可能)是其中最昂贵的部分。如果您能够添加bloom过滤器并在内存中保留所有索引块,那么您可以确保get尽可能快。