You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, there is no concept of the closed session: clients come and go, create sessions, send transactions, and forget about them. This concept is important, without it we cannot:
Provide the client an information that some session was aborted during the execution of some of its transactions.
Proposition
First, we need to introduce the session state: it might be active or terminated. Then, we define 3 termination ways:
Explicit termination by the client (normal case): the client needs to do it after it finishes sending transactions.
Aborted (or failed) termination: if an unrecoverable error happened during transaction processing.
Expiration: the session is terminated automatically after some 'period' (measured in time or number of transactions or blocks) without transactions from the client.
Whichever the session termination type was, if the client sends any transaction in the terminated session, it fails and the client is notified about it. It should also cause all in-flight requests to fail, so if the client is still waiting on the response (e. g. on promise or awaitable) or retrieves it later, it will receive an error.
This proposal implies some mechanism for closed session's data cleanup, it is to be implemented in #168.
The text was updated successfully, but these errors were encountered:
Session termination (#167): the client sessions are closed by 1 of 3 reasons: explicitly by the client, due to an error, being expired after inactivity.
Python cross-version client (2 & 3), refactoring, and documentation (#158).
Motivation
Currently, there is no concept of the closed session: clients come and go, create sessions, send transactions, and forget about them. This concept is important, without it we cannot:
Proposition
First, we need to introduce the session state: it might be active or terminated. Then, we define 3 termination ways:
Whichever the session termination type was, if the client sends any transaction in the terminated session, it fails and the client is notified about it. It should also cause all in-flight requests to fail, so if the client is still waiting on the response (e. g. on promise or awaitable) or retrieves it later, it will receive an error.
This proposal implies some mechanism for closed session's data cleanup, it is to be implemented in #168.
The text was updated successfully, but these errors were encountered: