Replies: 2 comments 2 replies
-
Very good topic for a discussion. Independently of that, can you provide steps to reproduce the issue of not being able to open another connection? At least in my experience, Cineast can handle multiple concurrent websocket-connections. |
Beta Was this translation helpful? Give feedback.
-
I see two issues here, one of which should be much more easily addressable than the other. You say that when the websocket is closed from the UI side, "This currently results locally that it is not possible to open another WebSocket connection to the local server and thus one has to rather ungraciously restart cineast". If this is indeed the case, this is a bug, as all websocket connections are supposed to be handled independently. You should also be able to connect from multiple UI instances to the same cineast instance, independently of if they are all running on the same machine or on different ones. Is this not the case? The other issue concerns state management of query execution. Currently, neither cineast nor cottontail offer any mechanism to abort a query. Adding such a mechanism is non-trivial, since cineast would not only need to be able to handle interrupts at any point during query execution, but also able to forward such interrupts to the storage layer. I'm not saying that something like this could not be done, but it would certainly require some rather fundamental changes to some abstraction layers. Do you have any suggestions how such a thing could be done? |
Beta Was this translation helpful? Give feedback.
-
After a discussion with @silvanheller today I wanted to start a discussion on the interaction handling by the Websocket API of cineast. This is a rather fundamental discussion about the communication between the different modules and I don't expect any swift resolution, however, it might still be interesting to have a discussion about this.
Currently, as far as I can see, for example, a query continues running even if a WebSocket connection is closed. Thus one has to rather ungraciously restart cineast to achieve a full stop of all running queries or wait for indefinite periods depending on the scope of the query to clear the running queries.
The issue is probably a result of the general architecture of cineast as it seems that the query logic is not responsible for the WebSocket management logic. So the querying will continue because the query logic has no way of being stopped by the WebSocket management. This behavior seems to be similar to #187.
The discussion I would like to start is whether this is something that could be some sort of project for the future or not. It currently seems to slow down the servers if one overloads it with dead tasks and restarting cineast every time a WebSocket connection closes prematurely seems to be rather an ungracious solution.
Beta Was this translation helpful? Give feedback.
All reactions