aerospike 2.22.0 → 2.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +307 -262
 - data/lib/aerospike/atomic/atomic.rb +1 -1
 - data/lib/aerospike/cdt/context.rb +7 -7
 - data/lib/aerospike/cdt/list_return_type.rb +4 -0
 - data/lib/aerospike/cdt/map_operation.rb +6 -6
 - data/lib/aerospike/cdt/map_return_type.rb +4 -0
 - data/lib/aerospike/client.rb +59 -84
 - data/lib/aerospike/command/admin_command.rb +1 -1
 - data/lib/aerospike/command/batch_index_node.rb +1 -1
 - data/lib/aerospike/command/batch_item.rb +1 -1
 - data/lib/aerospike/command/command.rb +65 -25
 - data/lib/aerospike/command/field_type.rb +25 -25
 - data/lib/aerospike/command/login_command.rb +4 -4
 - data/lib/aerospike/command/multi_command.rb +8 -2
 - data/lib/aerospike/command/read_command.rb +2 -2
 - data/lib/aerospike/connection/authenticate.rb +3 -3
 - data/lib/aerospike/exp/exp.rb +1262 -0
 - data/lib/aerospike/features.rb +9 -9
 - data/lib/aerospike/host/parse.rb +2 -2
 - data/lib/aerospike/key.rb +10 -1
 - data/lib/aerospike/node/refresh/info.rb +1 -1
 - data/lib/aerospike/node/verify/name.rb +1 -1
 - data/lib/aerospike/node/verify/partition_generation.rb +1 -1
 - data/lib/aerospike/node/verify/peers_generation.rb +1 -1
 - data/lib/aerospike/node/verify/rebalance_generation.rb +1 -1
 - data/lib/aerospike/policy/policy.rb +4 -1
 - data/lib/aerospike/policy/query_policy.rb +35 -2
 - data/lib/aerospike/policy/scan_policy.rb +19 -2
 - data/lib/aerospike/privilege.rb +1 -1
 - data/lib/aerospike/query/node_partitions.rb +39 -0
 - data/lib/aerospike/query/partition_filter.rb +66 -0
 - data/lib/aerospike/query/partition_status.rb +36 -0
 - data/lib/aerospike/query/partition_tracker.rb +347 -0
 - data/lib/aerospike/query/query_command.rb +1 -1
 - data/lib/aerospike/query/query_executor.rb +73 -0
 - data/lib/aerospike/query/query_partition_command.rb +266 -0
 - data/lib/aerospike/query/scan_command.rb +3 -3
 - data/lib/aerospike/query/scan_executor.rb +69 -0
 - data/lib/aerospike/query/scan_partition_command.rb +49 -0
 - data/lib/aerospike/query/statement.rb +8 -1
 - data/lib/aerospike/query/stream_command.rb +15 -1
 - data/lib/aerospike/result_code.rb +79 -4
 - data/lib/aerospike/role.rb +2 -2
 - data/lib/aerospike/task/execute_task.rb +2 -2
 - data/lib/aerospike/task/index_task.rb +1 -1
 - data/lib/aerospike/user_role.rb +1 -1
 - data/lib/aerospike/utils/buffer.rb +32 -7
 - data/lib/aerospike/utils/pool.rb +1 -1
 - data/lib/aerospike/value/value.rb +6 -6
 - data/lib/aerospike/version.rb +1 -1
 - data/lib/aerospike.rb +8 -0
 - metadata +14 -5
 
| 
         @@ -32,6 +32,9 @@ module Aerospike 
     | 
|
| 
       32 
32 
     | 
    
         
             
                  @compressed_data_buffer = nil
         
     | 
| 
       33 
33 
     | 
    
         
             
                  @compressed_data_offset = nil
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
      
 35 
     | 
    
         
            +
                  @node_partitions = nil
         
     | 
| 
      
 36 
     | 
    
         
            +
                  @tracker = nil
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
       35 
38 
     | 
    
         
             
                  self
         
     | 
| 
       36 
39 
     | 
    
         
             
                end
         
     | 
| 
       37 
40 
     | 
    
         | 
| 
         @@ -97,8 +100,9 @@ module Aerospike 
     | 
|
| 
       97 
100 
     | 
    
         | 
| 
       98 
101 
     | 
    
         
             
                    # The only valid server return codes are "ok", "not found" and "filtered out".
         
     | 
| 
       99 
102 
     | 
    
         
             
                    # If other return codes are received, then abort the batch.
         
     | 
| 
       100 
     | 
    
         
            -
                    if result_code != 0 
     | 
| 
      
 103 
     | 
    
         
            +
                    if result_code != 0
         
     | 
| 
       101 
104 
     | 
    
         
             
                        if result_code == Aerospike::ResultCode::KEY_NOT_FOUND_ERROR || result_code == Aerospike::ResultCode::FILTERED_OUT
         
     | 
| 
      
 105 
     | 
    
         
            +
                          # NOOP
         
     | 
| 
       102 
106 
     | 
    
         
             
                        else
         
     | 
| 
       103 
107 
     | 
    
         
             
                          raise Aerospike::Exceptions::Aerospike.new(result_code)
         
     | 
| 
       104 
108 
     | 
    
         
             
                        end
         
     | 
| 
         @@ -142,12 +146,14 @@ module Aerospike 
     | 
|
| 
       142 
146 
     | 
    
         
             
                      set_name = @data_buffer.read(1, size).force_encoding('utf-8')
         
     | 
| 
       143 
147 
     | 
    
         
             
                    when Aerospike::FieldType::KEY
         
     | 
| 
       144 
148 
     | 
    
         
             
                      user_key = Aerospike::bytes_to_key_value(@data_buffer.read(1).ord, @data_buffer, 2, size-1)
         
     | 
| 
      
 149 
     | 
    
         
            +
                    when Aerospike::FieldType::BVAL_ARRAY
         
     | 
| 
      
 150 
     | 
    
         
            +
                      bval = @data_buffer.read_uint64_little_endian(1)
         
     | 
| 
       145 
151 
     | 
    
         
             
                    end
         
     | 
| 
       146 
152 
     | 
    
         | 
| 
       147 
153 
     | 
    
         
             
                    i = i.succ
         
     | 
| 
       148 
154 
     | 
    
         
             
                  end
         
     | 
| 
       149 
155 
     | 
    
         | 
| 
       150 
     | 
    
         
            -
                  Aerospike::Key.new(namespace, set_name, user_key, digest)
         
     | 
| 
      
 156 
     | 
    
         
            +
                  Aerospike::Key.new(namespace, set_name, user_key, digest, bval: bval)
         
     | 
| 
       151 
157 
     | 
    
         
             
                end
         
     | 
| 
       152 
158 
     | 
    
         | 
| 
       153 
159 
     | 
    
         
             
                def skip_key(field_count)
         
     | 
| 
         @@ -98,7 +98,7 @@ module Aerospike 
     | 
|
| 
       98 
98 
     | 
    
         
             
                  receive_size = (sz & 0xFFFFFFFFFFFF) - header_length
         
     | 
| 
       99 
99 
     | 
    
         | 
| 
       100 
100 
     | 
    
         
             
                  # Read remaining message bytes.
         
     | 
| 
       101 
     | 
    
         
            -
                  if compressed_sz 
     | 
| 
      
 101 
     | 
    
         
            +
                  if compressed_sz
         
     | 
| 
       102 
102 
     | 
    
         
             
                    @data_buffer.eat!(MSG_TOTAL_HEADER_SIZE)
         
     | 
| 
       103 
103 
     | 
    
         
             
                  elsif receive_size > 0
         
     | 
| 
       104 
104 
     | 
    
         
             
                    size_buffer_sz(receive_size)
         
     | 
| 
         @@ -117,7 +117,7 @@ module Aerospike 
     | 
|
| 
       117 
117 
     | 
    
         
             
                      @record = Record.new(@node, @key, nil, generation, expiration)
         
     | 
| 
       118 
118 
     | 
    
         
             
                      return
         
     | 
| 
       119 
119 
     | 
    
         
             
                    end
         
     | 
| 
       120 
     | 
    
         
            -
             
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
       121 
121 
     | 
    
         
             
                    @record = parse_record(op_count, field_count, generation, expiration)
         
     | 
| 
       122 
122 
     | 
    
         
             
                    return
         
     | 
| 
       123 
123 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -38,9 +38,7 @@ module Aerospike 
     | 
|
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
                    def call(conn, cluster)
         
     | 
| 
       40 
40 
     | 
    
         
             
                      command = LoginCommand.new
         
     | 
| 
       41 
     | 
    
         
            -
                      if  
     | 
| 
       42 
     | 
    
         
            -
                        command.authenticate_new(conn, cluster)
         
     | 
| 
       43 
     | 
    
         
            -
                      else
         
     | 
| 
      
 41 
     | 
    
         
            +
                      if cluster.session_valid?
         
     | 
| 
       44 
42 
     | 
    
         
             
                        begin
         
     | 
| 
       45 
43 
     | 
    
         
             
                          command.authenticate_via_token(conn, cluster)
         
     | 
| 
       46 
44 
     | 
    
         
             
                        rescue => ae
         
     | 
| 
         @@ -54,6 +52,8 @@ module Aerospike 
     | 
|
| 
       54 
52 
     | 
    
         
             
                          end
         
     | 
| 
       55 
53 
     | 
    
         
             
                          raise ae
         
     | 
| 
       56 
54 
     | 
    
         
             
                        end
         
     | 
| 
      
 55 
     | 
    
         
            +
                      else
         
     | 
| 
      
 56 
     | 
    
         
            +
                        command.authenticate_new(conn, cluster)
         
     | 
| 
       57 
57 
     | 
    
         
             
                      end
         
     | 
| 
       58 
58 
     | 
    
         | 
| 
       59 
59 
     | 
    
         
             
                      true
         
     |