Skip to content

Releases: thibaultcha/lua-cassandra

1.2.1

03 Apr 21:51
1.2.1
Compare
Choose a tag to compare
Fixed
  • Force the Nginx time to be updated when checking for schema consensus
    timeout.
    #90

1.2.0

25 Mar 00:03
1.2.0
Compare
Choose a tag to compare
Added
  • Methods to manually add and remove peers from a Cluster module instance.
    #87

1.1.1

24 Mar 23:06
Compare
Choose a tag to compare
Added
  • Expose the underlying first_coordinator and wait_schema_consensus
    functions from the Cluster module.

0.5.5

23 Jan 23:09
0.5.5
Compare
Choose a tag to compare

0.5.x is a legacy version of lua-cassandra for Kong

Changelog:

0.5.4...0.5.5

1.1.0

23 Jan 23:07
1.1.0
Compare
Choose a tag to compare
Changed
  • ⚠️ Peers are now part of different connection pools depending on their
    keyspace. This can fix eventual issues when using several keyspaces with a
    single peer/cluster instance.
    6c0db5e
    This is a breaking change:

      -- before:
      local peer = cassandra.new()
      peer:connect()
      peer:set_keyspace('my_keyspace')
    
      -- after:
      local peer = cassandra.new()
      peer:connect()
      peer:change_keyspace('my_keyspace') -- closes the underlying connection and open a new one
Added
  • New coordinator_options for execute()/batch()/iterate() allowing for
    more granularity in keyspace settings. Accepted options are keyspace and
    no_keyspace. Example:

      local Cluster = cluster.new {
        keyspace = 'my_keyspace'
      }
    
      local res = cluster:execute('SELECT * FROM local', nil, {
        keyspace = 'system' -- will spawn or reuse a peer with 'system' keyspace
        --no_keyspace = true -- would disable setting a keyspace for this request
      })

    cdc6607

  • Support for binary protocol v4.
    #61

    • New cassandra.null CQL marshalling type. This type is different than
      cassandra.unset for protocol v4 and will set to null existing columns
      (in protocol v4 usage only).
    • Parse SCHEMA_CHANGE results for FUNCTION and AGGREGATE.
    • The Cluster module now parses warnings contained in response frames and
      logs them at the ngx.WARN level.
  • Implement a silent option for Cluster.new() to disable logging in the
    nginx error logs.
    #60

  • Implement a lock_timeout option for Cluster.new() to specify a max
    waiting time in seconds for the cluster refreshing and requests preparing
    mutexes. This option prevents such mutexes to hang for too long.
    2bd3d66

  • The cluster:refresh() method now returns the list of fetched Cassandra
    nodes from the cluster as a third return value.
    34f5f11

Fixed
  • Correctly logs the address of peers being set UP or DOWN in the warning logs.
    40fd870
  • Better error messages for SSL handshake/locking failures.
  • Better handling in case the shm containing the cluster info is full. We do
    not override previous values at the risk of losing cluster nodes info, but
    error out with the "no memory" error instead.
    4520a3b
  • Correctly receives read and connect timeout options.
    #71
  • Log the reason behind retrying a request in the cluster module.
    #71
  • Fallback on listen_address when rpc_address is "bind all" when refreshing
    the cluster nodes with the cluster module.
    #72
  • Propagate the CQL version in use when marshalling CQL collection types such
    as map, set, tuple or udt. We now properly marshall such nested CQL values.
    #73

0.5.4

01 Sep 18:58
Compare
Choose a tag to compare

0.5.x is a legacy version of lua-cassandra for Kong

Changelog:

0.5.3...0.5.4

0.5.3

31 Aug 18:47
Compare
Choose a tag to compare

0.5.x is a legacy version of lua-cassandra for Kong

Changelog:

0.5.2...0.5.3

1.0.0

27 Jul 23:45
1.0.0
Compare
Choose a tag to compare

⚠️ This release contains breaking changes. The library has been rewritten to greatly increase performance, usability and maintanability. The result is very pleasant and eleguant: we now offer 2 modules, one "single host", compatible with PUC Lua 5.1/5.2, and a "cluster" module, greatly optimized and only compatible with OpenResty.

Changed
  • New single host cassandra module, able to connect to a single Cassandra node.
  • New cluster resty.cassandra.cluster module, which leverages the single host module and is able to efficiently deal with a multi-nodes Cassandra cluster.
  • No more tables as errors. All errors returned by those modules are now strings.
  • Some considerable performance improvements compared to the previous versions: according to the benchmarks I ran while writing this new implementation (on a late 2013 Macbook Pro), this new version allows up to 10k q/sec compared to 2k q/s with its old version. I plan on making those benchmarks available publicly in the near future.
Added
  • Support for named arguments when binding query parameters (binary protocol v3).
  • Support for client-side timestamps (binary protocol v3).
  • Support for query tracing.
  • New "datacenter-aware round robin" load balancing policy. This policy will prioritize nodes from the local datacenter in multi-DC setups.
  • A much more complete and reliable test suite (yay!).
  • A more complete documentation, including the available policies and better usage examples.

0.5.2

31 Aug 18:47
Compare
Choose a tag to compare

0.5.x is a legacy version of lua-cassandra for Kong

Changelog:

0.5.1...0.5.2

0.5.1

27 Jul 23:25
Compare
Choose a tag to compare

0.5.x is a legacy version of lua-cassandra for Kong

Changelog:

0.5.0...0.5.1

  • Use the default_port option when connecting to peers instead of the CQL default (9042). #49