Api improvements: compression, json serialization/streaming #139
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When i started to test rotonda with RouteViews MRT import (quite big) and /routes endpoint i noticed that there is significant initial delay, then there is huge spike in memory consumption and last, answer is quite large (9GB+) and not compressed.
I implemented compression, which might be significant for today prices, especially at cloud (244Mb vs 9GB!), and implemented serialization, where it outputs data to client gradually, and instantly, as soon as it start to receive results from search_routes, without buffering much. I set chunk size 256KB for now, it looks like transfer speed is at least not worse (maybe better in my case due lower memory pressure).
Here is some tests results: