jaegertracing/jaeger
View on GitHub[storage] limitations of Cassandra search on LIMIT and complex queries
Open
#166 opened on May 16, 2017
area/storagehelp wanted
Description
When querying for traces using serviceName, operationName and a tag with the default LIMIT of 20, some results might be omitted.
This is because of this logic which does the following:
- Retrieve all traceIDs matching the operation name
- Retrieve all traceIDs matching tags
- Intersect 1 & 2
Because Cassandra doesn't guarantee ordering, this could eliminate results.
I propose that we do the following instead (or in addition to what we do now),
- Retrieve all traceIds matching tags
- Filter by operation name
The reason for retrieving traceIds matching tags first targets the use case when somebody is searching for a jaeger-debug-id or some other tag with low cardinality, guaranteeing them a result when it exists.