robdiciuccio commented on issue #9190: [SIP-39] Global Async Query Support
URL: 
https://github.com/apache/incubator-superset/issues/9190#issuecomment-591076741
 
 
   Short polling is an option, but it adds considerable load to the metadata 
database at scale to authenticate and check permissions for each pending object 
in the polling request(s). If the user has a number of open tabs, we then have 
each client potentially hammering the metadata DB pretty hard. Contrast this 
with the websocket option (or SSE+HTTP/2), which requires a single 
authentication action upon connect, and a single authorization for each result 
set only when fetched.
   
   Websockets are more work to setup at the infrastructure level, though there 
are similar concerns with enabling HTTP/2 in many load balancers, without 
which, SSE is not a viable option. My initial inclination when drafting this 
SIP was to recommend SSE+HTTP/2 rather than websockets, but the Flask app is 
not well suited for persistent connections, making a sidecar app more feasible. 
Websockets are also arguably more ubiquitous for realtime communication at the 
client at this point. With regard to scaling, the fact that sticky sessions are 
not required due to the reconnection strategy allows for flexible horizontal 
scaling of the websocket sidecar app, and there are several patterns for load 
balancing websocket servers. Are there specific scaling or implementation 
concerns that we should address?
   
   Async query support is currently optional in Superset, and should remain so, 
IMO. The async solution we agree upon should be a balance of performance and 
feasibility, but we should consider short polling for a fallback if websockets 
are not available for whatever reason.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to