Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aerospike作为重复数据消除缓存_Aerospike - Fatal编程技术网

Aerospike作为重复数据消除缓存

Aerospike作为重复数据消除缓存,aerospike,Aerospike,我们希望使用Aerospike作为事件ID重复数据消除的缓存,使用预定义的TTL 我们的用例非常简单:对于接收到的每个事件,我们都希望检查缓存中是否存在此事件id。如果是,我们希望重置TTL(触摸记录)并在应用程序中将此事件标记为欺诈,否则我们希望执行put操作以插入此id 我们计划做以下工作: (i) 配置单个记录名称空间,因为我们只希望存储id。我们将使用事件id作为键,并将NullValue存储为相应的值。(因为我们真的不需要除了键值以外的任何东西) (ii)对于重复数据消除检查,我们将首

我们希望使用Aerospike作为事件ID重复数据消除的缓存,使用预定义的TTL

我们的用例非常简单:对于接收到的每个事件,我们都希望检查缓存中是否存在此事件id。如果是,我们希望重置TTL(触摸记录)并在应用程序中将此事件标记为欺诈,否则我们希望执行put操作以插入此id

我们计划做以下工作:

(i) 配置单个记录名称空间,因为我们只希望存储id。我们将使用事件id作为键,并将NullValue存储为相应的值。(因为我们真的不需要除了键值以外的任何东西)

(ii)对于重复数据消除检查,我们将首先检查client.exists(),然后对写入策略中的RecordExistsAction.REPLACE执行put操作(因为这是针对性能而优化的)。这两个操作都将在原子性的operate()块中调用

但我们对以下方面有一些疑问:

(i) 关于操作块,我们希望执行的这个检查和设置事务似乎是一个非常常见的用例。是否有一个API可以以更干净的方式实现这一点?(我们什么也找不到)

(ii)是否绝对有必要设置一个垃圾箱?我们只希望存储密钥,而不希望存储相应的值。我意识到键值从未被存储,Aerospike只存储摘要,但既然exists()是我们唯一关心的事情,那么有没有办法消除额外的bin存储开销

谢谢大家!

(ii)是否绝对有必要设置一个垃圾箱?我们只希望存储密钥,而不希望存储相应的值。我意识到键值从未被存储,Aerospike只存储摘要,但既然exists()是我们唯一关心的事情,那么有没有办法消除额外的bin存储开销

你在找我。您必须有一个值,没有值会删除记录。对于索引中的数据,值需要小于等于8字节(通常使用整数)

由于在索引中使用数据需要单个容器,所以消除了许多容器开销