Closed LAlbertalli closed 5 years ago
That sounds painful to handle and ideally something that should be pushed down to flask-cache memcached backend. Unfortunately it doesn't look like flask-cache support compression, that could have been handy in this case.
I agree even though Caravel is a partially different use-case than what Flask is used for.
Having worked a little bit with the queries that were causing the error, I noticed that they are not really good queries anyway. But it is annoying to not being able to see the result. What could make sense is to swallow the exception but provide, inside the slice view, a warning to the user that informs him the query could not be cached. Could make sense?
L.
The good news is I do compress the payload before caching it, meaning that you're probably squeezing 5-10 times more than 1mb worth of raw data: https://github.com/airbnb/caravel/blob/master/caravel/viz.py#L306
I had the intuition that memcache would allow to increase the somewhat arbitrary 1mb limit, but it looked a bit more tricky than it should have been, though it seemed possible to do it.
I thought the way I wrote the code it would silence the error (but log it) and serve the result set anyhow. Is that not what you are seeing?
Configuration of memcached is pretty painful, at least on CentOS 7, but the worst problem is actually figuring out the reason.
Regarding the result on the FE, the app doesn't crash, but I get just an alert reporting the error (red bar). I haven't checked if the json is returned correctly.
Hi,
I found this issue using Caravel with queries that return large datasets. Having Memcache enabled, I receive an error that says: "error 37 from memcached_set: SUCCESS".
This is the full stack trace
The reason is probably the limit of 1Mb in Memcache. I'm configuring it to increase the limit, but there's always the risk to hit the limit again. Caravel should be able to split the entry in multiple ones to avoid hitting the limit.
Thanks L.