Ruby Client Library Release Notes

  • 3.0.0
    Release Date: December 18, 2023
    • Notice: This version of the client only supports Aerospike Server v6.0 and later. Some features will work for the older server versions.
    • Debian 9 Stretch LTS has reached its End of Life on June 30 2022. We will drop support for Debian 9 in an upcoming client release.

    New Features

    • [CLIENT-2575] - Support Exp.recordSize().
    • [CLIENT-2621] - Support persistent map indexes.

    Improvements

    • [CLIENT-2590] - Required Updates Following Server-Side Changes: SINDEX Support for 'Blob' Type Elements.

  • 2.29.0
    Release Date: August 24, 2023
    • Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.
    • Debian 9 Stretch LTS has reached its End of Life on June 30 2022. We will drop support for Debian 9 in an upcoming client release.

    Updates

    • [CLIENT-2526] Support for set quota for user defined roles.

  • 2.28.0
    Release Date: June 23, 2023
    • Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.
    • Debian 9 Stretch LTS has reached its End of Life on June 30 2022. We will drop support for Debian 9 in an upcoming client release.

    New Features

    • [CLIENT-1432] Support minimum connections in connection pools.

    Improvements

    • [CLIENT-1529] Removed Policy.priority, ScanPolicy.scanPercent and ScanPolicy.failOnClusterChange.

  • 2.27.0
    Release Date: May 19, 2023
    • Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.
    • Debian 9 Stretch LTS has reached its End of Life on June 30 2022. We will drop support for Debian 9 in an upcoming client release.

    New Features

    • [CLIENT-1176] - Support write operations in background query.

    Bug Fixes

    • Cleaned up documentation and added some code examples.

  • 2.26.0
    Release Date: December 2, 2022
    • Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.
    • Debian 9 Stretch LTS has reached its End of Life on June 30 2022. We will drop support for Debian 9 in an upcoming client release.

    New Features

    • [CLIENT-1808] - Support creating a secondary index on elements within a CDT using Context.
    • [CLIENT-1991] - Add base64 encoding methods to Context.
    • [CLIENT-2007] - Support using Context in query filters.

  • 2.25.0
    Release Date: November 28, 2022
    • Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.
    • Debian 9 Stretch LTS has reached its End of Life on June 30 2022. We will drop support for Debian 9 in an upcoming client release.

    New Features

    • [CLIENT-1984] - Support scan-show and query-show info commands.
    • [CLIENT-1362] - Adds support Aerospike Expression filters. Expression filters are now supported on all commands, including Client#get, Client#put, Client#delete, Client#operate, Client#scan, Client#query, Client#execute_udf, etc.
      • Adds Policy#filter_exp and Policy#fail_on_filtered_out
      • Bit expressions: Exp::Bit:: #resize, #insert, #remove, #set, #or, #xor, #and, #not, #lshift, #rshift, #add, #subtract, #set_int, #get, #count, #lscan, #rscan, #get_int, #pack_math, #pack_get_int, #add_write, #add_read
      • HLL Expressions: Exp::HLL:: #init, #add, #get_count, #get_union, #get_union_count, #get_intersect_count, #get_similarity, #describe, #may_contain, #add_write, #add_read
      • Map Expressions: Exp::Map:: #put, #put_items, #increment, #clear, #remove_by_key, #remove_by_key_list, #remove_by_key_range, #remove_by_key_relative_index_range, #remove_by_value, #remove_by_value_list, #remove_by_value_range, #remove_by_value_relative_rank_range, #remove_by_value_relative_rank_range, #remove_by_index, #remove_by_index_range, #remove_by_rank, #remove_by_rank_range, #size, #get_by_key, #get_by_key_range, #get_by_key_list, #get_by_key_relative_index_range, #get_by_key_relative_index_range, #get_by_value, #get_by_value_range, #get_by_value_list, #get_by_value_relative_rank_range, #get_by_index, #get_by_index_range, #get_by_rank, #get_by_rank_range, #add_write, #add_read, #get_value_type
      • List Expressions: Exp::List:: #append, #append_items, #insert, #insert_items, #increment, #set, #clear, #sort, #remove_by_value, #remove_by_value_list, #remove_by_value_range, #remove_by_value_relative_rank_range, #remove_by_index, #remove_by_index_range, #remove_by_rank, #remove_by_rank_range, #size, #get_by_value, #get_by_value_range, #get_by_value_list, #get_by_value_relative_rank_range, #get_by_index, #get_by_index_range, #get_by_index_range, #get_by_rank, #get_by_rank_range, #get_by_rank_range, #add_write, #add_read, #get_value_type, #pack_range_operation
      • Read and Write operations: Exp::Operation:: #write, #read

  • 2.24.0
    Release Date: November 15, 2022
    • Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.
    • Debian 9 Stretch LTS has reached its End of Life on June 30 2022. We will drop support for Debian 9 in an upcoming client release.

    New Features

    • [CLIENT-1730] - Support partition queries.
    • [CLIENT-1469] - Support query pagination through client#query_partitions with PartitionFilter.
    • [CLIENT-1975] - Add support for #max_records and #short_query to QueryPolicy.
    • [CLIENT-1976] - Add support for #concurrent_nodes to QueryPolicy.

  • 2.23.0
    Release Date: October 25, 2022
    • Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.
    • Debian 9 Stretch LTS has reached its End of Life on June 30 2022. We will drop support for Debian 9 in an upcoming client release.

    New Features

    • [CLIENT-1752] - Add 'EXISTS' return type for CDT read operations.
    • [CLIENT-1195] - Support partition scans.
    • [CLIENT-1238] - Support max_records on partition scans.
    • [CLIENT-1940] - Lint and Clean up using Rubocop.

  • 2.22.0
    Release Date: July 13, 2022
    • Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.
    • Debian 9 Stretch LTS has reached its End of Life on June 30 2022. We will drop support for Debian 9 in an upcoming client release.

    Bug Fixes

    • [CLIENT-1785] - Fix Client#read_users to avoid error. PR #112 Thanks to Dotan Mor.
    • [CLIENT-1787] - Support multiple DNS IPs during connection.
    • [CLIENT-1789] - Fix an issue where authentication retry fails in certain conditions.

  • 2.21.1
    Release Date: June 20, 2022
    • Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.

    Bug Fixes

    • [CLIENT-1769] - Fix called function name in Authenticate.

  • 2.21.0
    Release Date: June 7, 2022
    • Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.

    New Features

    • Add support for new user management features. Adds Client#query_role, Client#query_roles, Client#create_role, Client#drop_role, Client#grant_privileges, Client#revoke_privileges. Adds the 'Role' class. Adds UserRoles#read_info, UserRoles#write_info, UserRoles#conns_in_use to the UserRoles class.

    Improvements

    • Do not run PredExp tests for server v6+.

  • 2.20.1
    Release Date: May 10, 2022
    • Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.

    Improvements

    • Add basic support for the new authentication protocol.

  • 2.20.0
    Release Date: November 8, 2021
    • Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.

    New Features

    • [CLIENT-1467] - Support native Boolean type for server v5.6+.

    Improvements

    • Add basic support for server v4.9+ scan/queries.
    • Do not check for key equality in Batch command results.

  • 2.19.0
    Release Date: February 9, 2021

    Improvements

    • Remove Timeout in wait_till_stabilized in favor of thread.join(timeout) . Thanks to Marcelo [#104]
    • Adds ResultCode::LOST_CONFLICT

  • 2.18.0
    Release Date: December 1, 2020

    Improvements

    • Added missing server error codes.

    Bug Fixes

    • Avoid panic if Command#get_node fails in Command#execute. Resolves issue #101.
    • Fix wrong method invocation inside Client#truncate method. Thanks to Alexander.

  • 2.17.0
    Release Date: October 14, 2020

    New Features

    • [CLIENT-1246] - Adds missing API for Context#list_index_create and Context#map_key_create.

    Bug Fixes

    • Fixed an issue where MsgPack extensions were not recursively cleared from the CDTs during unpacking.

  • 2.16.0
    Release Date: October 12, 2020

    New Features

    • [CLIENT-1173], [CLIENT-1246] - Support Nested CDT operations with Context.
    • [CLIENT-1179] - Support Bitwise operations.

    Improvements

    • ListSortFlags now has an ASCENDING option, with DEFAULT mapping to it.

  • 2.15.0
    Release Date: October 5, 2020

    New Features

    • [CLIENT-1254] - Adds support for HyperLogLog.

    Improvements

    • Client#operate now uses OperatePolicy by default.

  • 2.14.0
    Release Date: August 6, 2020

    New Features

    • Adds support for rack-aware reads.
    • Adds support for client-server compression.

    Improvements

    • Adds support for 'truncate-namespace' command.

  • 2.13.0
    Release Date: July 17, 2020

    New Features

    • Adds support for replica policies.

    Improvements

    • Adds support for 'replicas' and remove the old partition table queries from the server.
    • Remove support for "old" partition tokenizer.
    • Refactor how partition parser is initialized and called.

  • 2.12.0
    Release Date: April 21, 2020

    New Features

    • Support for predicate expressions in all transactions.
    • Support for operation.delete in client#operate.

    Improvements

    • Optimize serialization for nested structures. Thanks to @Kacper Madej! [#94]
    • Remove Thread#abort_on_exception from batch_index_command. Thanks to @Kacper Madej! [#92]
    • Does not allow values other than Integer, Float, String, Symbol and nil to be used as keys in Maps.

    Bug Fixes

    • Fixes tests that were not using ENV variables for connections. This will allow the tests to be run on any server.

  • 2.11.0
    Release Date: May 17, 2019

    New Features

    Bug Fixes

    • Client#execute_udf_on_query should not modify the statement argument. [#79]
    • Encoding::UndefinedConversionError when reading blob data from CDT list/map bin. [#84]

  • 2.9.1
    Release Date: April 3, 2019

    Bug Fixes

    • Query fails if one or more cluster nodes do not have records in the set [#77].

    Updates

    • Change admin message version to 2 (from 0).
    • Remove unused BIN_EXISTS_ERROR (6) and BIN_NOT_FOUND (17) error codes.
    • Tests: Support setting user/password when running specs.

  • 2.9.0
    Release Date: November 9, 2018

    New Features

    • Add INFINITY and WILDCARD values for use in CDT map/list comparators. [AER-5945]

    Bug Fixes

    • Default policies set on Client instance do not get applied [#74]

    Updates

    • BREAKING CHANGE: Change default for send_key write policy to false [#73]
    • Support truncate info command argument "lut=now" for servers that require it. [AER-5955]

  • 2.8.0
    Release Date: August 6, 2018

    New Features

    • Support latest CDT List/Map server-side operations: [#69]
      • Operations on Ordered Lists & Bounded Lists via new List Policy. (Requires server version v3.16.0 or later.)
      • Option to invert selection criteria for certain List/Map get/remove operations. (Requires server version v3.16.0 or later.)
      • List/Map index/rank relative get/remove operations. (Requires server version v4.3.0 or later.)
      • Partial list/map updates using PARTIAL / NO_FAIL write flags. (Requires server version v4.3.0 or later.)
    • Benchmarks: Output total TPS metrics at end of run. [#71]

    Bug Fixes

    • Check connection status of sockets retrieved from connection pool. [#72]

    Updates

    • Add JRuby back to CI test matrix. [#70]

  • 2.7.0
    Release Date: April 12, 2018

    New Features

    • Batch Index protocol support. Thanks to @deenbandhu-agarwal! [#61]
    • Memory optimization: Avoid easy allocations. Thanks to @wallin! [#62]
    • New node removal strategy. Thanks to @wallin! [#63]
    • Support for IPv6. Requires Aerospike Enterprise Edition v3.10 or later. Thanks to @wallin! [#65]

  • 2.6.0
    Release Date: March 27, 2018

    New Features

    • Support for peers protocol for cluster discovery. Requires Aerospike server version 3.10 or later. Thanks to @wallin of castle.io! [#59]
    • TLS encryption support for client <-> server connections. Requires Aerospike Enterprise Edition version 3.11 or later. Thanks to @wallin of castle.io! [#59]

    Bug Fixes

    • Fix min./max. boundary check for Integer bin values and improve performance. Thanks to @wallin of castle.io! [#60]

    Updates

    • Update minimum required Ruby version to v2.3.

  • 2.5.1
    Release Date: January 25, 2018

    Bug Fixes

    • Some secondary index queries fail with parameter error on Aerospike Server v3.15.1.x #57

    Updates

    • Added Ruby 2.5 to test matrix
    • Updated documentation for Client#truncate command [CLIENT-985]

  • 2.5.0
    Release Date: October 10, 2017

    New Features

    • Support nobins flag on query operations
    • Support CDT List Increment operation. Requires Aerospike server version 3.15 or later.

    Updates

    • The deprecated Large Data Types(LDT) feature has been removed.
    • Ruby 2.1 has been removed from the client's test matrix as official support for Ruby 2.1 has ended in Apr 2017. Nothing has changed in the client that would break compatibility with Ruby 2.1 yet. But compatibility is not guaranteed for future client releases.

  • 2.4.0
    Release Date: April 6, 2017

    New Features

    • Support ns/set truncate command #47
    • Support configurable scan socket write timeout #46

    Bug Fixes

    • Fix "Digest::Base cannot be directly inherited in Ruby" #45

    Updates

  • 2.3.0
    Release Date: January 4, 2017

    Highlights

    • Deprecate unsupported key types - only integer, string and byte keys are supported. #43

    Bug Fixes

    • Fix BytesValue used as record key. #42

  • 2.2.1
    Release Date: November 14, 2016

    New Features

    • Added constants Aerospike::TTL::* for "special" TTL values, incl. Aerospike::TTL::DONT_UPDATE (requires Aerospike Server v3.10.1 or later)

    Bug Fixes

    • Fix "Add node failed: wrong number of arguments". #41

  • 2.2.0
    Release Date: September 20, 2016

    New Features

    • Support for durable delete write policy [CLIENT-768]; requires Aerospike Server Enterprise Edition v3.10 or later.
    • Support Cluster Name verification [CLIENT-776]; requires Aerospike Server v3.10 or later.

    Improvements

    • Optionally return multiple results from read operations on same record bin. #39 Thanks to @zingoba.

    Bug Fixes

    • Fix error handling in node refresh during cluster tend.

  • 2.1.1
    Release Date: August 16, 2016

    Improvements

    • Add support for two new server error codes (23 & 24) introduced in Aerospike Server v3.9.1.
    • Records returned by batch_get operation should include the full key incl. the user key part.

    Bug Fixes

    • Fix incorrect expiration times on records fetched via batch_get or query operations. #38

  • 2.1.0
    Release Date: July 19, 2016

    Improvements

    • Support for queries on Lists and Maps (keys & values)
    • Support for creating indexes on Lists and Maps
    • Support GeoJSON values in Lists and Maps

    Bug Fixes

    • Fix a typo in the max_retries policy parameter name. PR #37 Thanks to @murphyslaw!
    • Fix license identifier in gemspec.

  • 2.0.0
    Release Date: May 27, 2016

    Highlights

    • This major release contains several backward incompatible API changes. Please refer to the detailed list of API changes for further details.
    • Incompatible integer key digests: digests for integer keys computed by v2 and v1 are different. Since the Aerospike server uses the key digest to retrieve records, records with integer keys that were created by a v1 client version cannot be retrieved with a v2 client by default. The v2 client has an option to enable v1 compatible integer keys.
    • Backward incompatible changes to the Aerospike::Client.new initializer.
    • Drop support for Ruby 1.9.3; requires Ruby 2.0 or later.

    New Features

    • Added support for List and Sorted Map operations on List/Map collection data types (CDT); requires Aerospike Server version 3.7 or later for List operations and version 3.8.4 or later for Sorted Map operations. [CLIENT-559]

    Improvements

    • Read Aerospike server address from AEROSPIKE_HOSTS env variable if not specified explicitly in client constructor.
    • Add 2.3.1 to supported Ruby versions on Travis-CI.

    Bug Fixes

    • Fix digest creation for integer keys. PR #34. Thanks to @murphyslaw!
    • Prevent "value must be enumerable" error when client cannot connect to cluster. #35. Thanks to @rohanthewiz!

  • 1.0.12
    Release Date: February 11, 2016

    Fixes

    • Fixed syntax error in Client when raising exception for invalid bin key. Thanks to @oleriesenberg. Fixes issue #31.

    • Use UTF-8 as default encoding when writing/reading Strings from record bins. Thanks to @fs-wu for finding the issue and reporting it. Fixes issue #33.

  • 1.0.11
    Release Date: December 8, 2015

    Improvements

    • Support for double precision floating point data type in record bins. Requires server version 3.6.0 or later.
    • Support for geospatial data in record bins using GeoJSON format; support for querying geospatial indexes using points-within-region and region-contains-point filters. Requires server version 3.7.0 or later.
    • Tend interval is now configurable via the client policy. Default is 1 second as before.
    • Only logs tend messages when the number of cluster nodes have changed.
    • Scan and Query termination has been fixed.

    Fixes

    • Fixes ClientPolicy to actually accept fail_if_not_connected parameter from constrcutor opts. PR #29, thanks to Nick Recobra.

    • Fixes record initialization issue. PR #28, thanks to jzhua.

    • Consume the rest of the stream when scan/query is finished.

  • 1.0.10
    Release Date: September 22, 2015

    Fixes

    • Fixes find_node_in_partition_map logic.

    • Fixes Node.Refresh logic.

    • Fixes an issue with dead connections that would cause an infinite loop.

  • 1.0.9
    Release Date: August 11, 2015

    Minor Fix Release

    Fixes

    • Sends the original key value to the server for all relevant commands, including operate and execute_udf.

  • 1.0.8
    Release Date: July 25, 2015

    Features

    • Added 'Filter.to_s'. Thanks to Angel M

    Fixes

    • Fixes an issue in write policy that would use an undefined variable if :send_key isn't nil.

    • Fixes an issue in cluster.closed logic.

    • Fixes an issue with including the statement.rb in the manifest. Thanks to Angel M

  • 1.0.7
    Release Date: May 15, 2015

    Minor fixes. All LDTs on server other than LLIST have been deprecated and will be removed in the future. As such, all API regarding those features are considered deprecated and will be removed in tandem.

    Features

    • Added new error codes. Fix for issues 17 and 18.

    • Node validator won't lookup hosts if an IP is passed as a seed to it.

    Fixes

    • Removed workaround in BatchGet. Bins are now filtered on server.

    • Removed deprecated ReplaceRoles() method.

    • Removed deprecated SetCapacity() and GetCapacity() methods for LDTs.

  • 1.0.5
    Release Date: March 25, 2015

    Features

    • added :execute_udf_on_query method to Aerospike::Client.

  • 1.0.4
    Release Date: March 24, 2015

    Features

    • Symbols are now accepted as key values. Keep in mind that symbols are converted to string automatically, and type information is lost.

    Fixes

    • Wait for a good connection on socket.connect_nonblock to prevent infinite loops on read/write operations.

    • Close a socket if connection raises an exception to avoid leaking the file descriptor.

  • 1.0.2
    Release Date: March 14, 2015

    Fixes

    • Added #new_many method to Aerospike::Client

  • 1.0.1
    Release Date: January 28, 2015

    Fixes

    • Added bcrypt to the gem dependencies.

  • 1.0.0
    Release Date: January 26, 2015

    Features

    • Added Security Features: Please consult Security Docs on Aerospike website. ClientPolicy.User, ClientPolicy.Password, Client.CreateUser(), Client.DropUser(), Client.ChangePassword(), Client.GrantRoles(), Client.RevokeRoles(), Client.ReplaceRoles(), Client.QueryUser(), Client.QueryUsers.

    Fixes

    • Fixed size returned from BytesValue.write

  • 0.1.6
    Release Date: December 28, 2014

    Features

    • Major performance improvements