-
Notifications
You must be signed in to change notification settings - Fork 98
feat: Add support for multiplexed sessions #1383
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
57902b4
to
c8e7a1c
Compare
environ[SessionOptions.ENV_VAR_ENABLE_MULTIPLEXED] = "true" | ||
environ[SessionOptions.ENV_VAR_ENABLE_MULTIPLEXED_FOR_PARTITIONED] = "true" | ||
environ[SessionOptions.ENV_VAR_ENABLE_MULTIPLEXED_FOR_READ_WRITE] = "true" | ||
environ[SessionOptions.ENV_VAR_FORCE_DISABLE_MULTIPLEXED] = "false" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't need to force disable multiplexed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't need it at all? Is this environment variable is being completely removed from the scope of the project?
0bd4e7b
to
98e6b13
Compare
…E_MULTIPLEXED_SESSIONS` and add unit tests. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…` exception from `DatabaseSessionManager` and add unit tests. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…essions, add unit tests. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
Signed-off-by: Taylor Curran <taylor.curran@improving.com>
Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…shotBase` and update attributes and tests. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…edundant as transaction ID is set via `_restart_on_unavailable`) Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…to `Client` so that multiplexed are disabled for _all_ databases. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…Database.run_in_transaction` to not use it. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
… cleanup. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…ession manager. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…s from class attributes to instance attributes. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…d `database.session()` Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…s, add TODOs, and make `Session._transaction` default to None. Plus add some `Optional` typing hints. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…hot` to `_SnapshotBase` and update unit tests. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…nsaction`, move to base class, update tests. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…ransactions. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
… checks, add `raises` documentation. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…that it doesn't depend on environment variable values. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…`DatabaseSessionManager`. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…edentials. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…for testing. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…nsert_then_rollback`. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…e class, simplify `_SnapshotBase` tests, remove redundant tests. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
2e8ccf8
to
72574d4
Compare
…d_insert_then_rollback` and add `build_request_id` helper method, fix `test_snapshot` and `test_transaction` failures. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
9c6574b
to
418edda
Compare
…d by maintenance thread. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…r `_SnapshotBase`. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
… constants for next step. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…ew multiplexed behaviour. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
Signed-off-by: Taylor Curran <taylor.curran@improving.com>
@@ -49,6 +49,10 @@ def with_request_id( | |||
return all_metadata | |||
|
|||
|
|||
def build_request_id(client_id, channel_id, nth_request, attempt): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added helper method to reduce duplication in tests.
Signed-off-by: Taylor Curran <taylor.curran@improving.com>
elif transaction_type is TransactionType.READ_WRITE: | ||
return False | ||
return ( | ||
self._getenv(self.ENV_VAR_ENABLE_MULTIPLEXED) | ||
and self._getenv(self.ENV_VAR_ENABLE_MULTIPLEXED_FOR_READ_WRITE) | ||
and self._is_multiplexed_enabled[transaction_type] | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Read/write transaction are supported here, but are disabled in DatabaseSessionManager
. Will be turning that on in the next PR.
tests/_builders.py
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Helpers methods. Added to help simply unit tests.
Signed-off-by: Taylor Curran <taylor.curran@improving.com>
…multiplexed sessions due to runtime failures. Signed-off-by: Taylor Curran <taylor.curran@improving.com>
Signed-off-by: Taylor Curran <taylor.curran@improving.com>
Signed-off-by: Taylor Curran <taylor.curran@improving.com>
feat: Add support for multiplexed sessions: