hazelcast-python-client

Hazelcast Python Client

APACHE-2.0 License

Downloads
73.6K
Stars
112
Committers
35

Bot releases are visible (Hide)

hazelcast-python-client - v5.5.0 Latest Release

Published by yuce 2 months ago

This document includes the new features, enhancements, and fixed issues since version 5.4.0.

Hazelcast Python Client v5.5.0 requires Python 3.7 or higher.

New Features

Enhancements

  • None.

Fixes

  • Fixed Paging Predicate serialization for Hazelcast v5.4.0.

Breaking Changes

  • None.

Known Issues

  • None.
hazelcast-python-client - v5.4.0

Published by yuce 5 months ago

This document includes the new features, enhancements, and fixed issues for the Hazelcast Python Client 5.4.0 release.

New Features

  • None.

Enhancements

  • The client works with Python 3.12
  • Hazelcast Cloud branding

Fixes

  • None.

Breaking Changes

  • None.

Known Issues

  • None.
hazelcast-python-client - 5.3.0

Published by mdumandag over 1 year ago

This document includes the new features, enhancements, and fixed issues for the Hazelcast Python Client 5.3.0 release.

New Features

  • None.

Enhancements

  • The client is tested against Python 3.11 #631
  • Server version used in tests bumped to 5.3.0 #629

Fixes

  • None.

Breaking Changes

  • None.

Known Issues

  • None.
hazelcast-python-client - 5.2.0

Published by mdumandag over 1 year ago

This document includes the new features, enhancements, and fixed issues for the Hazelcast Python Client 5.2.0 release.

New Features

  • General Availability of Compact Serialization: The Compact serialization reached GA status after introducing the necessary API and safety changes. Starting from this release, it will have the same compatibility and stability guarantees as any other Hazelcast API. It will also be possible to use Compact serialized objects with APIs offered by Hazelcast without any limitations. #609, #610, #611, #612, #613, #615, #617, #618, #619
  • DBAPI Support: The client now implements the DBAPI interface on top of the SQL service to be compatible with various libraries and tools. #586, #626
  • Programmatic Configuration API: It is now possible to use programmatic API with type hints to configure the client as an alternative method of keyword arguments to the client constructor. #521

Enhancements

  • Missing multi_map.put_all API is implemented. #600
  • Missing topic.publish_all API is implemented. #570
  • Missing APIs to read and write decimal, time, date, datetime, timestamp, and their arrays are added to the Portable reader and writer classes. #569
  • Missing map.remove_all API is implemented. #566

Fixes

  • The client now correctly accounts for the super-class serializers of the types used with a custom serializer. #603
  • A more descriptive error is thrown when there is no Compact serializer registered for the nested Compact classes. #574

Breaking Changes

  • The Compact serialization reached the GA status, and it doesn't have compatibility with the BETA implementation in the 5.1 version of the client. Specifically:
    • The ids of the field kinds are changed. Also, the FieldKind API has moved to the hazelcast.serialization.api module. #609
    • It is not allowed to override default serializers with Compact serializers anymore. #610
    • It is not allowed to have duplicate field names in the Compact serializers anymore. #610
    • It is not allowed to have different types of classes in Compact array fields anymore. #612
    • The generic type variable for Compact serializers is renamed to CompactSerializableType. #620
  • The client now uses Hazelcast Viridian to fetch cluster members, instead of Hazelcast cloud. #594, #622

Known Issues

  • None.
hazelcast-python-client - 5.1

Published by yuce over 2 years ago

This document includes the new features, enhancements, and fixed issues for the Hazelcast Python Client 5.1 release.

New Features

Enhancements

  • All public API classses and methods use type hints for improved intellisense and enables catching type related bugs earlier.

Fixes

  • None

Breaking Changes

  • We removed support for Python 2.x and older 3.x versions in this release. Python 3.6 and better are supported.

Known Issues

  • Compact serialization (BETA) does not work with lazy deserialization. We will lift that restriction in a future version.
hazelcast-python-client - 5.0.1

Published by mdumandag about 3 years ago

This document includes the new features, enhancements, and fixed issues for the Hazelcast Python Client 5.0.1 release.

New Features

  • None

Enhancements

  • Client now sends metrics for tcp.bytesReceived and tcp.bytesSend that represent the total amount of bytes received/sent for the lifetime of the client across all member connections, which can be tracked with Prometheus Exporter using the Management Center. #500

Fixes

  • Client no longer sends an extra 6 bytes in the initial frames of the client messages due to a miscalculation. #499

Breaking Changes

  • None.

Known Issues

  • None.
hazelcast-python-client - 4.2.2

Published by mdumandag about 3 years ago

This document includes the new features, enhancements, and fixed issues for the Hazelcast Python Client 4.2.2 release.

New Features

  • None

Enhancements

  • Client now sends metrics for tcp.bytesReceived and tcp.bytesSend that represent the total amount of bytes received/sent for the lifetime of the client across all member connections, which can be tracked with Prometheus Exporter using the Management Center. #497

Fixes

  • Client no longer sends an extra 6 bytes in the initial frames of the client messages due to a miscalculation. #494
  • Broken links in the documentation are fixed. #498
  • A bug that can cause a serialization exception to be thrown while reading a value of type BigInteger or BigDecimal (in the SQL system) is fixed. #498

Breaking Changes

  • None.

Known Issues

  • None.
hazelcast-python-client - 5.0

Published by mdumandag about 3 years ago

This document includes the new features, enhancements, and fixed issues for the Hazelcast Python Client 5.0 release.

New Features

  • External Smart Client Discovery: The smart client is now able to connect to cluster members using their public IP addresses, even if the client is in a different network than the members in cloud-like or Kubernetes environments. #468

Enhancements

  • The SQL feature is promoted to stable status. #456, #457, #458
  • New default serializers for datetime.date, datetime.time, and datetime.datetime classes are added. #459
  • The HazelcastSqlError now provides a suggestion to remediate experienced error. #473
  • SQL rows are now deserialized lazily. #472
  • SqlRow now supports the [] operator to access columns. #478
  • SQL documentation is improved. #461, #479, #482
  • SQL API made more intuitive by waiting for the first response from the server and removing the execute_statement method. #480, #484
  • Missing remove_interceptor API is added to Map. #481

Fixes

  • Client now waits for the listener deregistration request to deal with the possible problems on services that expect sync listener removal. #475
  • Client now applies membership events only if the memberlist version is greater than the current version. #486
  • Client now checks for its status before trying to re-register the cluster view listener to deal with possible stack overflow errors during the shutdown. #476

Breaking Changes

  • While promoting the SQL feature to stable status, the following APIs and behaviors are changed.
    • SqlService#execute method now returns a Future and waits for the first response from the server.
    • SqlService#execute_statement and SqlStatement APIs are removed. You can now use the kwargs of SqlService#execute to control the properties of the query execution.
    • SqlResult#iterator, SqlResult#is_row_set, SqlResult#update_count, and SqlResult#get_row_metadata methods now return immediately, instead of returning a Future, as we wait for the first server response.
    • In case of an exception, now, SqlService#execute returns a Future with an exception set, instead of delaying raising the exception to methods of the SqlResult.
    • For some SqlColumnTypes, the Python representations are changed from str to the following classes:
      • DECIMAL -> decimal.Decimal
      • DATE -> datetime.date
      • TIME -> datetime.time
      • TIMESTAMP -> datetime.datetime
      • TIMESTAMP_WITH_TIME_ZONE -> datetime.datetime (with tzinfo)

Known Issues

  • None.
hazelcast-python-client - 4.2.1

Published by mdumandag about 3 years ago

This document includes the new features, enhancements, and fixed issues for the Hazelcast Python Client 4.2.1 release.

New Features

  • Security Configuration: It is now possible to use security configuration elements to provide username/password credentials or token-based authentication. Also, an external package called hazelcast-kerberos is developed to be used with the client for Kerberos authentication. #446, #452, #453, #455
  • Binary Metrics: The support for the new binary metrics format is implemented. Now, the statistics sent from the Python client are displayed on the new versions of the Management Center. #441
  • Aggregations: Aggregations allow you to perform aggregate operations over map entries quickly. It is implemented by the community user https://github.com/RobHam99. #442, #445
  • Projections: Projections allow you to project (strip down) query results in order to minimize data being received from the server. It is implemented by the community user https://github.com/RobHam99. #451 , #454

Enhancements

Fixes

  • HazelcastInstanceNotActiveError is made non-retryable. #431
  • Now, the client is able to read large payloads without additional latency. #436
  • Now, the client is able to receive ReliableTopic messages published by the server. #449

Breaking Changes

  • None.

Known Issues

  • None.
hazelcast-python-client - 4.2

Published by mdumandag over 3 years ago

This document includes the new features, enhancements, and fixed issues for the Hazelcast Python Client 4.2 release.

New Features

  • SQL Support: It is now possible to query Map data with the state-of-the-art SQL engine using the standard SQL syntax. #390, #406, #409, #414, #416

Enhancements

  • Cluster connect timeout logs are simplified for the default value. #405
  • Ability to use context managers with the transactions are documented. #410
  • Public attributes of the client object are documented. #411

Fixes

  • Client now fires membership events when the Hot Restart Persistence is enabled. #412
  • Invocation retry logic is improved to handle some corner cases. #413

Breaking Changes

  • None.

Known Issues

  • None.
hazelcast-python-client - 4.1

Published by mdumandag over 3 years ago

This document includes the new features, enhancements, and fixed issues for the Hazelcast Python Client 4.1 release.

New Features

  • Reliable Topic: A distribution mechanism for publishing messages that are delivered to multiple subscribers. It offers a similar interface to Topic, with added benefits of reliability such as no-event loss guarantees and isolation. #395, #396

Enhancements

  • Public APIs that contain the UTF are replaced by String to make them more user-friendly. #345
  • cluster_connect_timeout is set to infinite by default. #346
  • Ringbuffer#read_many now returns a ResultSet that contains more information than a plain list. Also, the same function now takes a filter parameter to select what items to read. #393

Fixes

  • When a connection attempt fails immediately, its resources are now cleaned up immediately. #343
  • Client now fails fast when the METADATA group name is used in the CP data structures. #380
  • Client does not use the deprecated classes from the collections package anymore. #385
  • Client does not allow duplicate field names in ClassDefinitionBuilder anymore. #387
  • Client now behaves correctly while connecting to members behind a private network. #388

Breaking Changes

  • None.

Known Issues

  • None.
hazelcast-python-client - 4.0

Published by mdumandag almost 4 years ago

This document includes the new features, enhancements, and fixed issues for the Hazelcast Python Client 4.0 release.

New Features

  • Hazelcast IMDG 4.0 Changes: Client protocol enhancements, architectural changes. #217
  • Ownerless Client: Simpler design to track member leaves and joins to the cluster. #217
  • CP Subsystem Support: New concurrency APIs including AtomicLong, AtomicReference, FencedLock, Semaphore, and CountDownLatch. Hazelcast IMDG 4.0 introduces CP Subsystem powered by Raft consensus protocol. It provides CP concurrency primitives with respect to the CAP principle, i.e., they always maintain linearizability and prefer consistency to availability during network partitions and client or server failures. #223, #224, #225, #226, #227
  • Backup Acknowledgment: Python client now supports backup acks (aka boomerang backups). So far the client was waiting for the sync backups to complete on the member. Boomerang backups decrease the number of network hops, thus improving the performance. #222
  • Paging Predicates: Support for Paging Predicates which allows you to fetch keys, values, or entries of a map page by page is implemented. #232

Enhancements

  • Configuration Redesign: Programmatic configuration was simplified. The configuration is now represented with keyword arguments. #219
  • Google Style Docstrings: Docstrings now follow the Google Python Style Guide to improve the readability. Also, with this change, IDEs are better at showing the type-hints from the docstrings. #221
  • Logging: Hazelcast Python client was adding custom handlers to the loggers, which is not recommended by the standard library documentation. Custom handlers are now removed and other logging practices recommended by the standard library documentation is followed. #229
  • Performance: The performance of the client for the non-blocking mode is improved significantly. #242, #264
  • Documentation: API and detailed client documentation is moved to hazelcast.readthedocs.io and README is simplified. #266
  • Predicates: Predicates are now properly documented, have shorter names, and moved from the serialization module. #239
  • Some private APIs were exposed to users mistakenly. They are removed from the public API and API documentation. #217, #221
  • Serialization of strings is now significantly faster. #217
  • Default serialization now supports the native bytearray type. #218
  • Default serialization now supports Java UUID type. #218
  • It is now possible to add or remove listeners in a non-blocking way. #248
  • Hot path of the client is optimized. #218, #241, #243, #244
  • Missing set_ttl method is added to the Map. #215
  • Missing ObjectDataInput#skip_bytes method is implemented. #254
  • Client now uses seconds as the time resolution for all APIs. #260
  • Hazelcast Cloud discovery documentation is improved. #263
  • Improved the responsiveness of the client in case of the reconnection scenarios. #274
  • Enum-like configurations now can be customized using string literals. #273
  • Source code of the client is now formatted using black. #284, #285, #286, #287, #288, #289

Fixes

  • The member list could be broken after Hot Restart enabled member restart. Now the client handles the restart correctly. #231
  • Client now handles class definition registrations with the same class id but with different factory ids. #235
  • Anchor links were not working on the PyPI. README is converted to reStructuredText format to make them work. #237
  • The possible race on handling timers is fixed. #240
  • Client was not able to set the results of retried invocations in some cases. Now the client sets the results of the retried invocations correctly #268 #269
  • Client now handles the memberlist correctly in split-brain scenarios. #272

Breaking Changes

  • AP-based concurrency primitives (Lock, Semaphore, AtomicLong, AtomicReference, CountDownLatch) were removed from the client. Instead, CP-based versions are implemented. #223, #224, #225, #226, #227
  • Programmatic configuration API was changed to work with keyword arguments. Certain configuration options were renamed. Also, the configuration options are now flat. #219
  • Logging configuration API was changed according to recommended practices by the standard library. Hazelcast Python client does not add any handlers now. Also, one has to enable logging to see client logs. #229
  • Certain predicates are renamed. Also, they are now at the hazelcast.predicate module, instead of the hazelcast.serialization.predicate. #239
  • Some private APIs were exposed to users mistakenly. They are removed from the public API and API documentation. #217, #221, #293
  • Adding or removing listeners can be done in a non-blocking way now. Therefore, these APIs are returning Future[str] and Future[bool] instead of str and bool. #248
  • hazelcast.exception module is renamed as hazelcast.errors. #217

Known Issues

  • Client statistics format in Python client v4.0.0b1 is compatible with Management Center v4.0. Support for format compatible with Management Center v4.2020.08 and newer will be added in one of the upcoming minor releases of the client.
hazelcast-python-client - 4.0.0b1

Published by mdumandag almost 4 years ago

This document includes the new features, enhancements, and fixed issues for the Hazelcast Python Client 4.0.0b1 release.

New Features

  • Hazelcast IMDG 4.0 Changes: Client protocol enhancements, architectural changes. #217
  • Ownerless Client: Simpler design to track member leaves and joins to the cluster. #217
  • CP Subsystem Support: New concurrency APIs including AtomicLong, AtomicReference, FencedLock, Semaphore, and CountDownLatch. Hazelcast IMDG 4.0 introduces CP Subsystem powered by Raft consensus protocol. It provides CP concurrency primitives with respect to the CAP principle, i.e., they always maintain linearizability and prefer consistency to availability during network partitions and client or server failures. #223, #224, #225, #226, #227
  • Backup Acknowledgment: Python client now supports backup acks (aka boomerang backups). So far the client was waiting for the sync backups to complete on the member. Boomerang backups decrease the number of network hops, thus improving the performance. #222
  • Paging Predicates: Support for Paging Predicates which allows you to fetch keys, values, or entries of a map page by page is implemented. #232

Enhancements

  • Configuration Redesign: Programmatic configuration was simplified. The configuration is now represented with keyword arguments. #219
  • Google Style Docstrings: Docstrings now follow the Google Python Style Guide to improve the readability. Also, with this change, IDEs are better at showing the type-hints from the docstrings. #221
  • Logging: Hazelcast Python client was adding custom handlers to the loggers, which is not recommended by the standard library documentation. Custom handlers are now removed and other logging practices recommended by the standard library documentation is followed. #229
  • Performance: The performance of the client for the non-blocking mode is improved significantly. #242
  • Predicates: Predicates are now properly documented, have shorter names, and moved from the serialization module. #239
  • Some private APIs were exposed to users mistakenly. They are removed from the public API and API documentation. #217, #221
  • Serialization of strings is now significantly faster. #217
  • Default serialization now supports the native bytearray type. #218
  • Default serialization now supports Java UUID type. #218
  • It is now possible to add or remove listeners in a non-blocking way. #248
  • Hot path of the client is optimized. #218, #241, #243, #244
  • Missing set_ttl method is added to the Map. #215

Fixes

  • The member list could be broken after Hot Restart enabled member restart. Now the client handles the restart correctly. #231
  • Client now handles class definition registrations with the same class id but with different factory ids. #235
  • Anchor links were not working on the PyPI. README is converted to reStructuredText format to make them work. #237
  • The possible race on handling timers is fixed. #240

Breaking Changes

  • AP-based concurrency primitives (Lock, Semaphore, AtomicLong, AtomicReference, CountDownLatch) were removed from the client. Instead, CP-based versions are implemented. #223, #224, #225, #226, #227
  • Programmatic configuration API was changed to work with keyword arguments. Certain configuration options were renamed. Also, the configuration options are now flat. #219
  • Logging configuration API was changed according to recommended practices by the standard library. Hazelcast Python client does not add any handlers now. Also, one has to enable logging to see client logs. #229
  • Certain predicates are renamed. Also, they are now at the hazelcast.predicate module, instead of the hazelcast.serialization.predicate. #239
  • Some private APIs were exposed to users mistakenly. They are removed from the public API and API documentation. #217, #221
  • Adding or removing listeners can be done in a non-blocking way now. Therefore, these APIs are returning Future[str] and Future[bool] instead of str and bool. #248
  • hazelcast.exception module is renamed as hazelcast.errors. #217

Known Issues

  • Client statistics format in Python client v4.0.0b1 is compatible with Management Center v4.0. Support for format compatible with Management Center v4.2020.08 and newer will be added in one of the upcoming minor releases of the client.
hazelcast-python-client - 3.12.3

Published by mdumandag over 4 years ago

This document includes the new features, enhancements, and fixed issues for Hazelcast Python Client 3.12.3 release.

New Features

  • None

Enhancements

  • Distibuted Objects Listener: An API to register/deregister distributed object listener to the client is added. With that, users can be notified about the cluster-wide distributed object creation/destruction events. Also, an API to get the list of the distributed objects is added. #197

  • Entry Loaded Event: When an entry is loaded from the MapLoader, the client now fires an EntryLoaded event. #194

Fixes

  • A typo was causing the wrong error to be thrown in the invocation service. #192

Known Issues

  • None.
hazelcast-python-client - 3.12.2

Published by mdumandag over 4 years ago

This document includes the new features, enhancements, and fixed issues for Hazelcast Python Client 3.12.2 release.

New Features

  • None

Enhancements

  • AWS PrivateLink Compatibility: Hazelcast Cloud Discovery is now also compatible with the AWS PrivateLink feature to provide connectivity between VPCs. #184

  • Smart Listeners: When client operates in smart mode, listener service now registers local listeners to all nodes in the cluster. #181

Fixes

  • None

Known Issues

  • None.
hazelcast-python-client - 3.12.1

Published by mdumandag over 5 years ago

This document includes the new features, enhancements, and fixed issues for Hazelcast Python Client 3.12.1 release.

New Features

  • None

Enhancements

  • Bytearray deserialization performance is improved and an extra configuration property is added to be able to read bytearray instead of list. #176

Fixes

  • When a client property with a default value of True is set to False via ClientConfig, the change wasn't applied due to faulty logic. This behaviour is fixed with #166

Known Issues

None.

hazelcast-python-client - 3.12

Published by mdumandag over 5 years ago

This document includes the new features, enhancements, and fixed issues for Hazelcast Python Client 3.12 release.

New Features

  • JSON Serializer: You can now use the JSON formatted strings or JSON serializable Python objects as objects in the Hazelcast cluster. Starting with Hazelcast IMDG 3.12, the JSON serialization is one of the formerly supported serialization methods. Creating JSON objects in the cluster does not require any server side coding and hence you can just send a JSON formatted string or JSON serializable Python object to the cluster and query these objects by fields. See the JSON Serialization for details. Examples can be found here.

Enhancements

  • None.

Fixes

  • Partition table updates was not atomic. This sometimes causes the client try to connect None addresses and raise error. Partition table update mechanism updated to be atomic. #166

Known Issues

None.

hazelcast-python-client - 3.11

Published by mdumandag over 5 years ago

This document includes the new features, enhancements, and fixed issues for Hazelcast Python Client 3.11 release.

New Features

  • IdGenerator Backed by FlakeIDs
  • Client Statistics
  • CRDT PN Counter

Enhancements

  • Logging enhancements

Fixes

  • Heartbeat tests were failing randomly on Windows because of a timing issue. #142
  • Missing protocol exceptions are added. #150
  • Formerly, an immutable buffer was used while handling the reads. It is changed to a mutable buffer. Now, client is significantly faster while reading big chunks of data. #152
  • Inaccurate docstring for the add_entry_listener method of the Map and the MultiMap is corrected. #155

Known Issues

None.

hazelcast-python-client - v3.10

Published by mdumandag almost 6 years ago

This document includes the new features, enhancements, and fixed issues for Hazelcast Python Client 3.10 release.

New Features

  • TLS with Mutual Authentication
  • Hazelcast Cloud Discovery

Enhancements

  • Eviction performance of the Near Cache
  • Documentation

Fixes

  • Low clock tick rate of the Windows was causing multiple Timers to have the same ending times. Timer class is made fully comparable to properly handle this case. #104
  • ImmutableLazyDataList implementation was not returning non-None values. Get item method of the ImmutableLazyDataList is fixed to correctly return values when it is called more than once. #112
  • Portable serialization was mistakenly reporting incompatible class-definitions when nested portables are used in certain scenarios. #80
  • Client connection could not detect idle connections to send ping and member was closing the connection. Last write time of the client is checked along with last read time while sending ping to fix this issue. #108
  • Lock operations was getting timeout error when member dies. Instead of raising an exception, it is now redirected to another member. #107

Known Issues

None.

hazelcast-python-client - v3.9

Published by mdumandag about 6 years ago

This document includes the new features, enhancements, and fixed issues for Hazelcast Python Client 3.9 release.

New Features

  • Python 3 support

Enhancements

  • Improved code samples

Fixes

  • Renamed await method of CountDownLatch as await_latch. Python 2 users can continue to use this method as await but Python 3 users have to use await_latch to avoid SyntaxError #98
  • Fixed connection manager to not try to close connections with the same address more than once #96
  • Fixed high CPU usage caused by the Hazelcast client #83
  • Fixed partition service to correctly refresh partitions #76
  • Fixed cluster service to try all addresses on each connection attempt #70
  • Fixed reconnect mechanism to use last known member list #68

Known Issues

None.