-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Research] bsearch investigation #166206
Comments
Pinging @elastic/kibana-data-discovery (Team:DataDiscovery) |
Pinging @elastic/kibana-presentation (Team:Presentation) |
Linking this relevant investigation. Could be helpfull |
Query-consolidation is an unexplored area, and could benefit from the existing architecture. |
A few notes, in case it might help:
|
thx @vadimkibana! wrt synthetics use-case, @dominiqueclarke just informed this usage was removed in 8.10. |
Consider turning bsearch off in just Serverless #181938 |
With #179663, we have been collecting more telemetry on the overhead of bsearch, specifically the custom encoding part into the line-delimited base64 format. Metrics:Long-tail distribution of time spent per single call.75 percentile sits under 50-60 ms per Given that a single dashboard will have typically 5-6 bsearch calls to fetch data for all charts, we can expect 10s to 100s of milliseconds spent on a single dashboard, just re-encoding the data per single Long-tail distribution of total message sizetime spent scales linearly with message sizeMessage size and encoding time scales linearly (duh). Evidence of really large responses.At the end of the long tail (+95percentile), we find evidence of really large responses (in the order of megabytes) TakewayRemoving time spent re-encoding data in Overall, removal will help work towards "thinning" the kibana server footprint, and should yield measurable improvements to time2data (providing kibana-server supports http2 parallelization). |
qq: is the research part done? can this be closed? |
yes, let's close. |
The kibana Server internal
bsearch
API is foundational to the functioning of dashboards.Architecture
bsearch
collects various Elasticsearch aggregation request in the browser on a debounce schedulee.g. rough schematic
Purpose
_async_search
calls . This enables queries from the Dashboards to be run as background sessions.Areas for improvement
bsearch
resolves key constraints, but also introduces new ones. Primarily, it increased pressure on Kibana Server.bsearch
is primarily work-around for http1 limitations. http2 support of Kibana Server/Cloud infra would clear this hurdle (Http2 support for the Kibana server #7104)maps/mvt
endpoints).bsearch
to be aware of the semantics of the requests. ie. this would only really work with aggregations).Goals
Consider:
bsearch
bsearch
can be "smarter" in its collection of queries. The vast majority ofbsearch
calls from Dashboards are aggregations and could be more efficiently run with a singlemsearch
orsearch
query that combines the aggs in a single definition.The text was updated successfully, but these errors were encountered: