Get records whose bin values in some set

Hi! Could you tell me please what is the most efficient way to get records whose bin values are contained in some set? I have aerospike set that contains a lot of records, and I need to get a subset satisfying some number of criteria.

Analogue of “SELECT * FROM set WHERE bin IN (‘val1’, ‘val2’, …, ‘valN’)”

Now I’m using UDF to reach that, but I don’t think that it’s the best solution. The Predicate Filtering looks better, but I can’t understand how to solve my problem using it, and how it performs too.

The UDF system has quite a bit of overhead, so you are right, probably not the best solution.

The predexp should be something like this in python:

from aerospike import predexp as predexp

predexps = [
  binValue("binName"),
  stringValue("Val1"),
  stringEqual(),
  binValue("binName"),
  stringValue("Val2"),
  stringEqual(),
  ...
  binValue("binName"),
  stringvalue("ValN"),
  stringEqual()
]

Runtime would be M*N where M is the time to lookup and read each record and N is the time to evaluate the N predicates. Likely M will be the dominate factor.

© 2015 Copyright Aerospike, Inc. | All rights reserved. Creators of the Aerospike Database.