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
Repository metrics
- Stars
- (18,974 stars)
- PR merge metrics
- (Avg merge 4d 11h) (85 merged PRs in 30d)
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.