This release makes retries more compatible with Python 3.12+.
- Only pass
int
torandom.randint()
to be compatible with breaking changes introduced in Python 3.12. - Pin
amazon.ion
inrequirements.txt
as well
This release pins the Amazon Ion library to a compatible version.
- Pinned the version of amazon.ion to 0.9.3, as later versions are incompatible with this driver.
This release is to update ionhash Python package from 1.2.0 to 1.2.1.
- The Ion hash performance is hugely improved, and the informal benchmark result is in amazon-ion/ion-hash-python#22
This release is to update ionhash Python package from 1.1.0 to 1.2.0.
- Fixed bug which leads to attributeError when using plain python strings in QLDB driver.
This release is focused on improving the retry logic, optimizing it and handling more possible failures.
- Improved retry logic
- Failures when starting a new session are now retried.
- Dead sessions are immediately discarded, reducing latency when using the driver.
boto3
andbotocore
bumped to1.17.5
and1.20.5
respectively, which gives visibility to CapacityExceededException.
- Fixed attribute error when retrieving the
retry_limit
property on QldbDriver.
Add support for obtaining basic server-side statistics on individual statement executions.
- Added
get_consumed_ios
andget_timing_information
methods inBufferedCursor
andStreamCursor
classes to provide server-side execution statistics. get_consumed_ios
returns a dictionary containing the number of read IO requests for a statement execution.get_timing_information
returns a dictionary containing the server side processing time in milliseconds for a statement execution.get_consumed_ios
andget_timing_information
methods in theStreamCursor
class are stateful, meaning the statistics returned by them reflect the state at the time of method execution.- Add
transaction_id
property inExecutor
to provide the Transaction ID if needed. - The
Config
parameter ofQldbDriver
now appends theuser_agent_extra
value instead of overwriting it.
This is a public and generally available(GA) release of the driver, and this version can be used in production applications.
- The release candidate 2 (v3.0.0rc.2) has been selected as a final release of v3.0.0. No new changes are introduced between v3.0.0rc.2 and v3.0.0. Please check the release notes.
Release 3.0.0rc2 (August 6, 2020)
Note: This version is a release candidate and may not be production ready.
- Fixed bug which leads to infinite number of retries when a transaction expires.
- Fixed bug which causes transaction to remain open when an unknown exception is thrown inside execute_lambda.
- Added a limit to the number of times the driver will try to get(from pool)/create a session.
Release 3.0.0-rc.1 (June 22, 2020)
Note: This version is a release candidate and may not be production ready.
- (#23) Moved Session pooling functionality to
QldbDriver
and removedPooledQldbDriver
. - (#28) Removed interfaces which allow developers to get a session from the pool and execute transaction.
- (#29) Renamed
QldbDriver
propertypool_limit
tomax_concurrent_transactions
. - (#30) Removed
QldbDriver
propertypool_timeout
. - (#31) Moved method
list_tables
to the driver instance - (#27) Removed
retry_indicator
fromQldbDriver.execute_lambda
. - (#27) Moved
retry_limit
fromQldbDriver
toRetryConfig
. (#34) RemovedQldbDriver.execute_statement
.
- (#27) Added support for defining custom retry backoffs.
- Dropping support for Python v3.4 and v3.5. Going forward the minimum Python version required will be v3.6 for Pyqldb 3.x series.
- Added
Getting Started
andCookbook
to public API docs.
- Fixed README to reflect the correct minimum python version required. The driver requires Python 3.4 or later, earlier it was mentioned to be 3.x
- Added Execute methods to PooledQldbDriver
- Added support for python native types for execute_statement parameters
- In order to be more pythonic, the method signature of execute_statement has been changed to receive *args. This is a breaking change for any application that uses 1.0.0-rc.2 version of the driver. Starting v2.0, applications should pass execute_statement parameters as comma separated arguments instead of passing them as a list.
- Fixes for small documentation issues.
- Initial preview release of the Amazon QLDB Driver for Python.