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.