Skip to content

Better query performance through higher concurrency

Compare
Choose a tag to compare
@vcschapp vcschapp released this 10 Feb 04:10
· 34 commits to main since this release

API changes:

  • Stats structure now includes RangeMaxed to indicate how much of the query time range had maxed out chunks, meaning CloudWatch Logs Insights returned Limit results for that chunk. If this field has a non-zero value it indicates that at least some of the chunks in the query time range likely had more results available than were returned. Typically if dynamic chunk splitting is enabled, this will always be zero. [Issue #4 ]

Big Features:

  • Performance is improved significantly by improving concurrency. Chunks are now started and polled in independent goroutines, meaning that chunk starting, which previously had a higher priority, can't block polling of completed chunks. [Issue #9]

Improvements:

  • Retry of transient network errors is improved to handle some rare cases. [Issue #13]
  • Make further small improvements to the documentation.
  • Fix some unit testing concurrency edge cases that failed with extremely low probability like 1 in 20K iterations.
  • Fix some goroutine leaks caused by a few unit tests that failed to clean up after themselves, which made debugging painfully difficult in some cases due to large numbers of zombie goroutines.