Aerospike Server CE Release Notes

  • 3.14.1.1
    Release Date: July 6 2017
    • When upgrading, please follow the upgrade and protocol-switching PREREQUISITES for 3.13.0.1.
    • This is the last release that will include the deprecated LDT feature.

    New Features

    • [AER-5683] - (KVS) New memory subsystem with configurable allocation debugging.
    • [AER-5682] - (CLUSTER) New info command to trigger a recluster.

    Improvements

    • [AER-5699] - (SINDEX) Less aggressive secondary index garbage collection configuration default.
    • [AER-5701] - (CLUSTER) Fewer fabric messages used to exchange services info when a node joins a cluster.

    Bug Fixes

    • [AER-3173] - (KVS) Issues setting 'max-write-cache' config item.
    • [AER-5695] - (KVS) Misleading master-object count returned from node before initial rebalance.
    • [AER-5664] - (SINDEX) Recreating a secondary index too soon after deleting it can fail.
    • [AER-5690] - (CLUSTER) Server may return non-empty partition ownership map to client before initial rebalance, resulting in transactions getting 'unavailable' error.

  • 3.14.0.2
    Release Date: June 26 2017
    • When upgrading, please follow the upgrade and protocol-switching PREREQUISITES for 3.13.0.1.

    Bug Fixes

    • [AER-5698] - (KVS) Records created via migrations are not added to secondary index.

  • 3.14.0
    Release Date: June 6 2017

    Please use release 3.14.0.2 in lieu of this version (see Known Issues).

    • When upgrading, please follow the upgrade and protocol-switching PREREQUISITES for 3.13.0.1.

    Known Issues

    • Regression - [AER-5698] - (KVS) Records created via migrations are not added to secondary index. Fixed in version 3.14.0.2

    Improvements

    • [AER-5658] - (KVS) Deprecated set-delete and associated functionality.
    • [AER-5593] - (SINDEX) Simplified garbage collection configuration.
    • [AER-5603] - (CLUSTER) Disallowed setting heartbeat protocol to v2, deprecated paxos-max-cluster-size.
    • [AER-5652] - (CLUSTER) Server now runs only paxos-protocol v5, deprecated paxos-protocol.

  • 3.13.0.3
    Release Date: June 26 2017

    3.13 is a jump-version.

    • Once on 3.13 all deployments should schedule a convenient time to dynamically switch clustering protocol.
    • The 3.13 upgrade and protocol-switching are PREREQUISITES for any future version upgrade.

    Bug Fixes

    • [AER-5698] - (KVS) Records created via migrations are not added to secondary index.

  • 3.13.0.1
    Release Date: May 30 2017

    Please use release 3.13.0.3 in lieu of this version (see Known Issues).

    3.13 is a jump-version.

    • Once on 3.13 all deployments should schedule a convenient time to dynamically switch clustering protocol.
    • The 3.13 upgrade and protocol-switching are PREREQUISITES for any future version upgrade.

    Known Issues

    • Regression - [AER-5698] - (KVS) Records created via migrations are not added to secondary index. Fixed in version 3.13.0.3

    New Features

    • Available after the clustering protocol switch
      • [AER-3485] - (KVS) Support adding/removing namespaces with rolling restart.
      • [AER-4678] - (CLUSTER) Enhanced clustering algorithm.

    Improvements

    • Available before the clustering protocol switch
      • [AER-5103] - (KVS) Deprecated paxos-recovery-policy.
      • [AER-5584] - (KVS) Use non-temporal prefetch hint for index access.
      • [AER-5590] - (KVS) Object statistics - new non-replica object; prole object more accurate during migration.
      • [AER-5597] - (KVS) Remove unnecessary in-line batch request transaction copying.
      • [AER-5636] - (KVS) Log contexts named "cf:xxx" are now renamed "xxx".
      • [AER-2750] - (SINDEX) Dropping secondary index no longer locks up write and query transactions for records in dropped sindex.
      • [AER-5571] - (SINDEX) Deprecate unused sindex statistics and command.
      • [AER-5572] - (SINDEX) Remove redundant metadata translation layer.
      • [AER-5479] - (CLUSTER) Periodically log heartbeat clustering failures.
      • [AER-5604] - (CLUSTER) Speed up peer list convergence when new nodes are added.
      • [AER-5480] - (FABRIC) Remove fabric backdoor which may erroneously keep cluster connected.
      • [AER-5503] - (NETWORK) No longer too many log messages if fabric/HB host is unavailable.
      • [AER-5632] - (MIGRATION) Limit migrate-max-num-incoming to 64.
    • Available after the clustering protocol switch
      • [AER-5569] - (SMD) Different key & value formats and Improve consensus merge for sindex.
      • [AER-5595] - (FABRIC) More compact fabric messages.
      • [AER-4831] - (CLUSTER) Replicas no longer immediately dropped when adding new nodes to a cluster.
      • [AER-4875] - (CLUSTER) Maintain partition versions for partially filled partitions when restarting nodes.
      • [AER-5615] - (CLUSTER) Rackaware configured on a per namespace level.

    Bug Fixes

    • Available before the clustering protocol switch
      • [AER-5618] - (KVS) Fix log line migrate-theads -> migrate-threads.
      • [AER-5624] - (KVS) Retry replica writes that failed due to cluster-key mismatch.
      • [AER-5499] - (SINDEX) Remove mem-usage value from statistics since not tallied.
      • [AER-5562] - (SINDEX) Fix unprotected access to si->state field in secondary index code.
    • Available after the clustering protocol switch
      • [AER-5567] - (SMD) Rare crash caused by thread unsafe access of succession list.

    Updates

  • 3.12.1.2
    Release Date: June 26 2017

    Bug Fixes

    • [AER-5698] - (KVS) Records created via migrations are not added to secondary index.

  • 3.12.1.1
    Release Date: May 11 2017

    Please use release 3.12.1.2 in lieu of this version (see Known Issues).

    Known Issues

    • Regression - [AER-5698] - (KVS) Records created via migrations are not added to secondary index. Fixed in version 3.12.1.2

    Bug Fixes

    • [AER-5591] - (KVS) Rare crash on new bin-name insertion caused by incorrect extra bytes copied.
    • [AER-5627] - (KVS) last-update-time erroneously not used while conflict-resolving records with > 1 duplicate copies.
    • [AER-5641] - (KVS) Cold start of records with different versions across different devices can load wrong version.
    • [AER-5639] - (SINDEX) Minor memory leak when attempting to create secondary index that already exists.
    • [AER-5630] - (SMD) Rare crash caused by retransmitted smd message to self.
    • [AER-5628] - (CLUSTER) Rack-aware loop can cause possible memory overwrite.
    • [AER-5629] - (FABRIC) Departure of an node with idle channel traffic can cause crash.
    • [AER-5642] - (FABRIC) Incorrect overflow number in bulk fabric-bytes-per-second.
    • [AER-5429] - (MIGRATION) Reuse of emigrate_id on node restart can cause stuck migrations.
    • [AER-5651] - (MIGRATION) Made emigration insert-id a per emigration counter.

  • 3.12.1
    Release Date: April 4 2017

    Please use release 3.12.1.2 in lieu of this version (see Known Issues).

    Known Issues

    • Regression - [AER-5698] - (KVS) Records created via migrations are not added to secondary index. Fixed in version 3.12.1.2

    Improvements

    • [AER-5381] - (KVS) Increase max number of devices per namespace per node to 64.
    • [AER-5553] - (KVS) Support auto-pin on bonded devices.
    • [AER-5410] - (KVS) Improve device usage distribution in a namespace.
    • [AER-5556] - (KVS) Log when rebalance finds fresh partitions.
    • [AER-5552] - (SINDEX) Eliminate per-sindex lock.
    • [AER-5554] - (SINDEX) Better filtering for secondary index existence.
    • [AER-5540] - (SINDEX) Actively remove truncated records from sindex.
    • [AER-5545] - (SCAN & SINDEX) Support digest_modulo predicate filter.
    • [AER-5510] - (SCAN) Write idle-time-out now configurable from client.
    • [AER-5561] - (SMD) Skip sending unneeded smd data on ack messages.

    Bug Fixes

    • [AER-5563] - (KVS) changing batch thread counts can crash server.
    • [AER-5570] - (KVS) Enable jemalloc with valgrind.
    • [AER-5543] - (SMD) Node-restart atomically updates local file once.
    • [AER-5537] - (CLUSTER) Clustering crash caused by gcc 4.9 optimization.

    Updates

  • 3.12.0
    Release Date: March 15 2017

    New Features

    Improvements

    • [AER-5396] - (KVS) Use cpu count info where appropriate.

    Bug Fixes

    • [AER-5497] - (KVS) Negative and out-of-bound high-water-disk/memory configuration values are erroneously accepted.
    • [AER-5512] - (SINDEX) Query transaction on a network socket erroneously marks socket not reapable.
    • [AER-5522] - (SINDEX) Secondary index drop during udf-update causes deadlock.
    • [AER-5523] - (SINDEX) Rare race condition during secondary index removal can cause crash.
    • [AER-5526] - (SMD) Memory leak on principal during merge.
    • [AER-5527] - (SMD) Rare concurrent smd fabric message in flight can cause incorrect smd message to be picked by principal.
    • [AER-5531] - (SMD) Fix incorrect reference count which can cause crash.

    Updates

  • 3.11.1.1
    Release Date: February 15 2017

    Improvements

    • [AER-5138] - (KVS) Display queue-too-deep warning message only periodically.
    • [AER-5447] - (KVS) Standardize replica-writes to also use bin-less record to delete replicas.
    • [AER-5478] - (KVS) Consolidate configuration setter lock.
    • [AER-5362, AER-749, AER-3467] - (Fabric) Channel-based fabric system, separating out delivery of different message types, such as control, transaction and migration. Various fabric bug fixes.
    • [AER-5348] - (Fabric) Per-channel throughput log-line and statistics.

    Bug Fixes

    • [AER-4839] - (KVS) Deleting a non-existent set unexpectedly creates the set metadata.
    • [AER-5420] - (KVS) Rare network interface discovery during network interface starting up causing crash.
    • [AER-5458] - (KVS) Internally generated deletes such as set-delete do not progress when allow-nonxdr-writes=false.
    • [AER-5475] - (KVS) Record updates with new bins and record size exceeding write-block-size cause memory leaks in data-in-memory configuration.
    • [AER-5505] - (KVS) multicast-group missing from config-get info calls.
    • [AER-5506] - (KVS) Missing multicast-group stops telemetry agent.].
    • [AER-5507] - (KVS) Records with TTL > 10 years are not correctly capped by post 3.8.3 release and newer.].
    • [AER-5436] - (KVS) TALOS-2016-0263/CVE-2016-9049 Corrupted fabric message with large message length will cause crash.
    • [AER-5437] - (KVS) TALOS-2016-0265/CVE-2016-9051 Receiving corrupt batch message with missing batch bound check will cause crash.
    • [AER-5439] - (Fabric) TALOS-2016-0267/CVE-2016-9053 Corrupted fabric msg can cause crash due to unknown particle type.
    • [AER-5310] - (Fabric) MTU computation should ignore network interfaces that are DOWN or IPv6-only.
    • [AER-5443] - (Network) Heartbeat connections do not reap immediately when node departs.

    Updates

  • 3.11.0.2
    Release Date: January 13 2017

    Bug Fixes

    • [AER-5450] - (SINDEX) Uninitialized variable cause Sindex builder job's load_pct to be inaccurate.
    • [AER-5451] - (Clustering) Incorrect node-id generated in rack-aware dynamic mode, and node-id-interface is ignored.
    • [AER-5456] - (Clustering) Network interace without valid ip addresses can be used to generate node_id names.

  • 3.11.0.1
    Release Date: January 9 2017

    Bug Fixes

    • [AER-5445] - (KVS) Rare crash caused by duplicate resolution response and retransmit race.
    • [AER-5416] - (Migration) Rare crash caused by 'Insert' hander acting on immigration which isn't started.
    • [AER-5322] - (Migration) Migration reference count error can cause unexpected crash when reaching index arena limit.

  • 3.11.0
    Release Date: January 5 2017

    Known Issues

    • [AER-5445] - (KVS) Rare crash caused by duplicate resolution response and retransmit race. Fixed in 3.11.0.1.

    New Features

    Improvements

    • [AER-5072] - (KVS) OpenSSL is now dynamically linked.
    • [AER-5393] - (KVS) TALOS-2016-0264/CVE-2016-9050 Obsolete use-queue-per-device.
    • [AER-5395] - (KVS) Improved rchash implementation.
    • [AER-5407] - (KVS) Deprecate allow-inline-transactions.
    • [AER-5417] - (KVS) Handle /tmp folder permission denied at startup more gracefully.
    • [AER-5442] - (CLUSTER) Allow unsetting of cluster-name via info call.
    • [AER-5369] - (SINDEX) Deprecated sindex-data-max-memory.
    • [AER-5403] - (NETWORK) Idle heart-beat connections are reaped based on hb.interval.
    • [AER-5404] - (NETWORK) Do not allow heartbeat timeout to be lower than 3.
    • [AER-5388] - (MIGRATION) Emigrates should requeue migrates that are not accepted.
    • [AER-5392] - (MIGRATION) Partition rebalance refactoring - extract balance_namespace().
    • [AER-5397] - (MIGRATION) Do not initialize partition_sz array with unused qnode information.

    Bug Fixes

    • [AER-2604] - (KVS) Community version should not start with security stanza defined.
    • [AER-5390] - (KVS) Add migrate-retransmit-ms to info get/set.
    • [AER-5409] - (KVS) Protect non-LDT enabled nodes from migrations and replica-writes from LDT-enabled nodes. Ignore LDT records on cold-start on non-LDT-enabled nodes.
    • [AER-3344] - (SINDEX) Do not update smd files on smd shutdown to avoid race condition of corruption.
    • [AER-5246] - (SINDEX) Sindex memory usage accounting is incorrect when sindex change from array to tree.
    • [AER-5398] - (SINDEX) Server crash caused by index name longer than 255.
    • [AER-5438] - (SINDEX) TALOS-2016-0266/CVE-2016-9052 & TALOS-2016-0268/CVE-2016-9054 Invalid sindex message field can crash server.
    • [AER-5341] - (CLUSTER) Setting hb version via info call can unexpectedly timeout and effect is delayed.
    • [AER-5383] - (INSTALL) kernel.shmmax returns values larger than Bash's max int.

    Updates

  • 3.10.1.5
    Release Date: January 13 2017

    Bug Fixes

    • [AER-5450] - (SINDEX) Uninitialized variable cause Sindex builder job's load_pct to be inaccurate.
    • [AER-5451] - (Clustering) Incorrect node-id generated in rack-aware dynamic mode, and node-id-interface is ignored.
    • [AER-5456] - (Clustering) Network interace without valid ip addresses can be used to generate node_id names.

  • 3.10.1.3
    Release Date: January 7 2017

    Bug Fixes

    • [AER-5445] - (KVS) Rare crash caused by duplicate resolution response and retransmit race.
    • [AER-5416] - (Migration) Rare crash caused by 'Insert' hander acting on immigration which isn't started.
    • [AER-5426] - (Migration) Rare crash caused by 'Done' handler acting on immigration not yet started. Fix race for migrate_rx_partitions_active counter. Deprecated migrate-rx-lifetime-ms.

  • 3.10.1.2
    Release Date: January 3 2017

    Known Issues

    • [AER-5445] - (KVS) Rare crash caused by duplicate resolution response and retransmit race. Fixed in 3.10.1.3.

    Bug Fixes

    • [AER-5394] - (KVS) Adjust conflict resolution to allow keeping 'older' record after split brain.
    • [AER-5418] - (KVS) Log level critical cannot be used as a logging context.
    • [AER-5434] - (KVS) Rack-aware with > 23 nodes on rack can crash.
    • [AER-5440] - (Clustering) HB-V3 incorrectly always send "null" as a cluster-name, causing clustering issue with future releases.

  • 3.10.1.1
    Release Date: December 8 2016

    Known Issues

    • [AER-5440] - (HB) HB-v3 version always send incorrect cluster-name. If on HB-v3, explicit cluster-name setting required for next upgrade.
    • [AER-5445] - (KVS) Rare crash caused by duplicate resolution response and retransmit race. Fixed in 3.10.1.3.

    Bug Fixes

    • [AER-5406] - (KVS) evict-tenths-pct calculation overflow/incorrect when namespace objects > ~800m.
    • [AER-5415] - (Migration) Change migrate-threads down dynamically crashes daemon.

  • 3.10.1
    Release Date: November 17 2016

    Known Issues

    • [AER-5445] - (KVS) Rare crash caused by duplicate resolution response and retransmit race. Fixed in 3.10.1.3.
    • [AER-5440] - (HB) HB-v3 version always send incorrect cluster-name. Fixed in 3.10.1.2. If on HB-v3, explicit cluster-name setting required for next upgrade.
    • [AER-5415] - Migration sender can corrupt stack. Fixed in 3.10.1.1.

    New Features

    • [AER-3261] - (KVS) Special TTL value of '-2' now means record's TTL is unchanged when record is updated.

    Improvements

    • [AER-5038] - (KVS) Upgrade to jemalloc version 4. Improve long term memory allocation to improve fragmentation. New statistics to monitor jemalloc heap efficiency.
    • [AER-5161] - (KVS) Improve log when server assert occurs.
    • [AER-5273] - (KVS) Read duplicate resolution should only be done when repeatable read is turned on.
    • [AER-5332] - (KVS) Better logging when no active network interfaces are available.
    • [AER-5335] - (KVS) Transactions now try to return error code TIMEOUT instead of closing socket.
    • [AER-5356] - (KVS) Add transaction retry statistics.
    • [AER-5370] - (KVS) Remove unnecessary request-hash processing when cluster state changes.
    • [AER-5363] - (Migration) Default for migrate-max-num-incoming is now 4.
    • [AER-5364] - (Migration) Reduce likelihood of multiple migrations to same node.
    • [AER-5365] - (Migration) Retransmit tuning and tracking - migrate-retransmit-ms now on namespace level, default of 5 second.
    • [AER-5295] - (Storage) Improved storage name detection to set device scheduler "noop".

    Bug Fixes

    • [AER-4578] - (KVS) single-bin namespace can cause SEGV while reading beyond allocated memory.
    • [AER-5327] - (KVS) Access-address no longer support loopback 127.0.0.1
    • [AER-5354] - (KVS) In mixed version cluster, 3.10's peers-list will now also include peer-nodes which are on previous releases.
    • [AER-5379] - (KVS) obj-size-hist-max not returned when querying namespace config.
    • [AER-5304] - (Cluster) Incorrect fabric network address used when changing heartbeat protocol version from v3 back to v2.
    • [AER-5309] - (Cluster) Rare cluster integrity caused by incorrectly rejecting new principal node's paxos message.
    • [AER-5340] - (Cluster) In mesh network, split cluster may not re-form due to incorrectly losing "isSeed" info.
    • [AER-5315] - (UDF) Memory stomp caused by UDF creating list with null elements.
    • [AER-5312] - (AGGR) Memory leak of records caused by aggregation, if records are later deleted.
    • [AER-5353] - (Telemetry) On rpm systems, telemetry daemon not stopped if server not running.

  • 3.10.0.3
    Release Date: October 21 2016

    When upgrading, please follow Network Upgrade for 3.10 to make required aerospike.conf configuration changes.

    This server version may require an upgrade to your existing client to the latest version. For more information on client compatability, click here.

    SortedMap Operations is now GA. For more information click here.

    Known Issues

    • [AER-5440] - (HB) HB-v3 version always send incorrect cluster-name. If on HB-v3, explicit cluster-name setting required for next upgrade.

    New Features

    • [AER-5190] - (Cluster) Heartbeat V3 new supported features.
      • [AER-5231] - (Cluster) Support cluster-name. For more information click here.

    Improvements

    • [AER-5092] - (KVS) Add Read / Write histograms per record size on storage benchmark.
    • [AER-5256] - (KVS) Partition drops now done by background thread.
    • [AER-5257] - (KVS) Obsolete replicas-read/replicas-write.
    • [AER-5270] - (KVS) Remove unneeded record reference count.
    • [AER-5271] - (KVS) Separate partition drop on its own queue thread.
    • [AER-5291] - (KVS) Partition rebalance refactoring.
    • (KVS) Bin delete on a non-existing record now returns NOTFOUND (error code 2).
    • [AER-5096] - (Migration) Empty migrate no longer spawn unused threads for migration.
    • [AER-4728] - (Cluster) Support heartbeat version change when using mesh.
    • [AER-5062] - (Fabric) Inbound/outbound fabric buffer now default with 1M stack memory.
    • [AER-5200] - (Fabric) Guard against network packets that may contain garbage.
    • [AER-5275] - (Fabric) Fabric benchmark instrumentation.
    • [AER-5264] - (SINDEX) Use client replica bitmap to check if partition is queriable.
    • [AER-5087] - (UDF) Scan aggregation - Improved map allocation performance.
    • [AER-5137], [AER-5047], [AER-3804] - (Scan) Set scan's socket send() timeout to be 10 seconds, to accommodate slow or improperly disconnected client.
    • Network configuration changes. For more information click here.
      • [AER-5222] - (Network) Deprecate reuse-address in network section.
      • [AER-5274] - (Network) Deprecated mcast-ttl and replace with multicast-ttl.
      • [AER-5282] - (Network) Deprecate network.heartbeat.interface-address.
      • [AER-5035] - (Network) Honor address field in network.fabric and network.info section.
      • [AER-5269] - (Network) Change network.service.network-interface-name to service.node-id-interface.
      • [AER-5283] - (Network) Multicast heartbeat must provide multicast-group as the group address.
      • [AER-5147] - (Network) New peers list for node discovery.

    Bug Fixes

    • [AER-5272] - (KVS) JEMalloc stats randomly truncated under systemd.
    • [AER-5299] - (KVS) Incorrect comparison for large void-times on cold start. Removed max_void_time stat.
    • [AER-5241] - (Cluster) tip-clear:all will clear both seed nodes and adjacency nodes.
    • [AER-5278] - (Cluster) Principal node may illegally re-enter partition_rebalance if subordinate retransmits PARTITION_SYNC_REQUEST_ACK.
    • [AER-5307] - (Cluster) Node crash on receiving non-conforming mesh heartbeat messages.
    • [AER-4273] - (UDF) Avoid unneeded reparse of UDF parameters in scan/aggregate/query.
    • [AER-5258] - (UDF) Invalid memory access during UDF loading on startup.
    • [AER-3895] - (SINDEX) Querying for empty string doesn't return data, even though they are indexed.
    • [AER-4930] - (SINDEX) Replica-creates not updating sindex entry, cause missing records in query.
    • [AER-5238] - (SINDEX) Potential query crash on bins with List/Map while filtering query result.
    • [AER-4947] - (Storage) Discrepancy in device details of wb summary dump command.
    • [AER-5198] - (Network) Infiniband network interface does not generate meaningful node_id.
    • [AER-5279] - (Network) Do not advertise network interface when it is in ifdown state.
    • [AER-5234] - (CDT) Server crashes when sending unimplemented list/map operation commands.
    • [AER-5239], [AER-5303] - (CDT) Calling map.replace_items incorrectly returns success.
    • [AER-5285] - (CDT) Clear null map flags when persisted.

    Updates

  • 3.9.1.1
    Release Date: September 2 2016

    Bug Fixes

    • [AER-5253] - (KVS) For network interface with label, interface are not correctly enumerated.
    • [AER-5255] - (KVS) Heartbeat publishes incorrect address to be used by fabric.

  • 3.9.1
    Release Date: August 12 2016

    Improvements

    • [AER-4454] - (Cluster) Enhanced heartbeat subsystem. Obsoleted operational commands such as "snub/dun".
    • [AER-5146] - (KVS) Socket API refactoring.
    • [AER-5172] - (KVS) Add new error codes for map_add() operations - ELEMENT_NOT_FOUND & ELEMENT_EXISTS.
    • [AER-5187] - (KVS) Add deleted_last_bin stat for record deleted via last bin deleted.
    • [AER-5060] - (KVS) Log when set-delete reverts to false.
    • [AER-4669] - (KVS) Obsolete "mesh-address" configuration.
    • [AER-5289] - (KVS) Set-config syntax for heartbeat parameters are more consistent.
    • [AER-5128] - (Fabric) Obsolete migrate_progress_send/recv.
    • [AER-4587] - (Cluster) Allow seed node to accept hostnames - via tip and via config.
    • [AER-5082] - (Cluster) Community cluster size limit of 32. For more information click here.

    Bug Fixes

    • [AER-5127] - (KVS) Full bin data incorrectly returned when querying for a non-existent map key - Respond_all_ops reads now consistent.
    • [AER-5143] - (KVS) Return cluster config also in "config-get:" call.
    • [AER-5166] - (KVS) cf_fault_event_nostack() should respect log-local-time.
    • [AER-5199] - (KVS) Generation & TTL in client response incorrect (zero) for writes that duplicate resolve and replicate.
    • [AER-5213] - (KVS) Crash or garbage returned on list/map read-only operations that has empty results.
    • [AER-5202][AER-5150] - (KVS) Migrated/Replicated map bins builds wrong map-index. Thus map operations on promoted master crashes server.
    • [AER-5290] - (KVS) Disallow bin writes of map with NULL data.
    • [AER-5140] - (UDF) Correctly adjust storage stats when record is deleted via no-more bins in UDF.
    • [AER-5178] - (UDF) Log entries generated from Lua should display the Lua file name and line number.
    • [AER-5113] - (Scan) Partial scans can cause memory/stack corruption.
    • [AER-5145] - (Fabric) Race conditions and object reference fixes for fb and fne.
    • [AER-4822] - (Cluster) Server crash paxos-max-cluster-size set differently on different nodes.
    • [AER-5136] - (Cluster) Unstable cluster formation if the cluster size reaches paxos-max-cluster-size.

    Updates

  • 3.9.0.3
    Release Date: July 31 2016

    Known Issues

    • [AER-5113] - Partial scans can cause memory/stack corruption. Fixed in 3.9.1
    • [AER-5202],[AER-5150] - Migrated/Replicated sorted-map bin builds wrong local map-index. Thus sorted-map operations on a replica crashes server. Fixed in 3.9.1

    Bug Fixes

    • [AER-5180] - file descriptor leak cause by transactions requiring duplicate resolution.
    • [AER-5168] - LDT duplicate resolution phase (shipop) cause crash due to null msgp pointer.

  • 3.9.0.2
    Release Date: July 26 2016

    Known Issues

    • [AER-5113] - Partial scans can cause memory/stack corruption. Fixed in 3.9.1
    • [AER-5180] - file descriptor leak cause by transactions requiring duplicate resolution. Fixed in 3.9.0.3
    • [AER-5168] - LDT duplicate resolution phase (shipop) cause crash due to null msgp pointer. Fixed in 3.9.0.3
    • [AER-5202],[AER-5150] - Migrated/Replicated sorted-map bin builds wrong local map-index. Thus sorted-map operations on a replica crashes server. Fixed in 3.9.1

    Bug Fixes

    • [AER-5159] - Hot key transactions with some timeout can cause transaction to fail, manifesting as "non-null 'from'" assert and abort server.

  • 3.9.0.1
    Release Date: July 22 2016

    Known Issues

    • [AER-5113] - Partial scans can cause memory/stack corruption. Fixed in 3.9.1
    • [AER-5159] - Hot key transactions with some timeout can cause transaction to fail, manifesting as "non-null 'from'" assert and abort server. Fixed in 3.9.0.2.
    • [AER-5180] - file descriptor leak cause by transactions requiring duplicate resolution. Fixed in 3.9.0.3
    • [AER-5168] - LDT duplicate resolution phase (shipop) cause crash due to null msgp pointer. Fixed in 3.9.0.3
    • [AER-5202],[AER-5150] - Migrated/Replicated sorted-map bin builds wrong local map-index. Thus sorted-map operations on a replica crashes server. Fixed in 3.9.1

    Bug Fixes

    • [AER-5141] - (KVS) Nodes with expiration/eviction may crash while freeing stale message. Fixes regression for [AER-4868].
    • [AER-4930] - (SINDEX) Replica-creates not updating sindex entry, cause missing records in query.
    • [AER-5142] - (LDT) Timed-out of LDT transactions during migration are not properly handled.

  • 3.9.0
    Release Date: July 11 2016
    • Statistic/Benchmark/Logging Revamp. Please review details to investigate necessary changes for your monitoring systems.

    Known Issues

    • Segmentation fault reported on 3.9.0. Fixed in 3.9.0.1
    • [AER-5113] - Partial scans can cause memory/stack corruption. Fixed in 3.9.1
    • [AER-5159] - Hot key transactions with some timeout can cause transaction to fail, manifesting as "non-null 'from'" assert and abort server. Fixed in 3.9.0.2.
    • [AER-5180] - file descriptor leak cause by transactions requiring duplicate resolution. Fixed in 3.9.0.3
    • [AER-5168] - LDT duplicate resolution phase (shipop) cause crash due to null msgp pointer. Fixed in 3.9.0.3
    • [AER-5202],[AER-5150] - Migrated/Replicated sorted-map bin builds wrong local map-index. Thus sorted-map operations on a replica crashes server. Fixed in 3.9.1

    New Features

    • [AER-4233] - (KVS) Provide statistics for single record transaction at namespace level.
    • [AER-4723] - (KVS) Benchmark at namespace level.
    • Aerospike Server now available on Ubuntu 16.04

    Improvements

    • [AER-4735] - (KVS) Single-record transaction code refactoring.
    • [AER-4868] - (KVS) Expire-/evict-deletes no longer do duplicate resolution.
    • [AER-4873] - (KVS) Reads no longer inserted in rw-request hash unless duplicate resolution is necessary.
    • [AER-5021] - (KVS) Obsolete replica-fire-and-forget.

    Bug Fixes

    • [AER-4549] - (KVS) SSD read failure on a write crashes server.
    • [AER-5031] - (KVS) Deleted but still-referenced index elements are now flagged, fixing various race conditions such as reading binless records.
    • [AER-5115] - (KVS) Fix memory leak for record deletes resulting from last bin removed.
    • [AER-5117] - (KVS) Scan with bin selection option, may return unexpected result code.
    • [AER-5083] - (KVS) Miscellaneous SortedMap edge condition bugs, resulting either crash or invalid results.
    • [AER-5116] - (Fabric) Strict check on extra fabric message release.
    • [AER-4891] - (Migration) Record delete are applied immediately during migration - no more delete journaling.
    • [AER-4373] - (LDT) Subrecord ref not accounted in warm start.

    Updates

  • 3.8.4
    Release Date: June 17 2016

    Known Issues

    • [AER-5113] - Partial scans can cause memory/stack corruption. Fixed in 3.9.1
    • [AER-5202],[AER-5150] - Migrated/Replicated sorted-map bin builds wrong local map-index. Thus sorted-map operations on a replica crashes server. Fixed in 3.9.1

    New Features

    Sorted Map Operations (Developer Preview). For more information click here

    Improvements

    • [AER-5064] - (KVS) Improve non-evictable bucket message.
    • [AER-5069] - (KVS) Improve scan progress % display's granularity.
    • [AER-5059] - (Clustering) Multicast heartbeats will now only listen on specified multicast address.

    Bug Fixes

    • [AER-4997] - (KVS) List insert operation was not checking bad parameters.

  • 3.8.3
    Release Date: June 2 2016

    Known Issues

    • [AER-5113] - Partial scans can cause memory/stack corruption. Fixed in 3.9.1

    Improvements

    • [AER-4958] - (KVS) Add record's last updated time on the server.
    • (KVS) Cold start resolves different record versions based on last-update-time instead of generation.
    • (KVS) Namespaces's max-ttl is capped to 10 years.
    • (KVS) Replace conflict-resolution-policy=ttl with conflict-resolution-policy=last-update-time.
    • [AER-4448] - (KVS) Improve cold start eviction when there is no records to evict.
    • [AER-4773] - (KVS) Cold start will continue to load past HWM breach, until stop_writes.
    • [AER-4956] - (KVS) Improve client's querying of partition ownership by caching map on server.
    • [AER-5024], [AER-4978], [AER-4842] - (KVS) Minor logging improvements.
    • [AER-5030] - (Migration) New migration statistics at namespace level.
    • [AER-5042] - (Sindex) Change secondary index stat from "objects" to "entries".
    • [AER-5009] - (UDF) Refactor of UDF callback so no as_transaction container is needed.

    Bug Fixes

    • [AER-4955] - (KVS) Do not include on service list any 127.0.0.* when address=any.
    • [AER-4990] - (KVS) Restart on CentOS did not wait long enough to complete flushing to storage.
    • [AER-4998] - (KVS) Allow for records to expire when no evictions are possible.
    • [AER-5026] - (KVS) A timed out duplicate resolution transaction incorrectly asserts on NULL fd.
    • [AER-5027] - (Telemetry) Send build number in telemetry.
    • [AER-4877] - (Clustering) Restarting paxos principal node rapidly can result in a malformed cluster.
    • [AER-4971] - (Migration) Fix migration for replication factor 3 introduced in 3.7.5.
    • [AER-4975], [AER-4988] - (Migration) Rare case of un-terminated migrations can cause write blocks to not get defragmented.

    Updates

  • 3.8.2.3
    Release Date: May 10 2016

    Bug Fixes

    • AER-4994 - (KVS) Namespace requiring evicting during cold-start crashes during cold-start.

  • 3.8.2.2
    Release Date: May 5 2016

    Known Issues

    • [AER-4994] - (KVS) Namespace requiring evicting during cold-start crashes. Fixed in 3.8.2.3

    Improvements

    • [AER-4929] - (Fabric) Remove unnecessary memory allocation and copying of fabric messages.
    • [AER-4792] - (UDF) Implement record.numbins().

    Bug Fixes

    • [AER-2423] - (KVS) Tip command on a multicast system crashes server.
    • [AER-4602] - (KVS) SEGV during startup with mis-configured multicast setting.
    • [AER-4808] - (KVS) Various fixes to log lines with incorrect format strings.
    • [AER-4979] - (KVS) Incorrect bytes_emigrating counter causing migrations stuck.
    • [AER-4889] - (Fabric) Epoll race condition on fabric causing fabric threads not used.
    • [AER-4920] - (Migration) Make retransmits to be asynchronous to minimize missing Migrate Acks.
    • [AER-4970] - (Scan) Cannot delete a lower priority job when higher priority jobs exist.
    • [AER-4919] - (UDF) Check minimum disk space available before committing record updates.
    • [AER-4826] - (SINDEX) Unable to add query tuning settings to aerospike.conf.
    • [AER-4966] - (Packaging) Redhat7 server installation does not create default log path.

    Updates

  • 3.8.1
    Release Date: April 15 2016

    Known Issues

    • [AER-4994] - (KVS) Namespace requiring evicting during cold-start crashes. Fixed in 3.8.2.3

    New Features

    • Telemetry. For more information click here
    • Secondary Index on List and Map. For more information see list-index and map-index.
    • Geospatial is now GA.
    • New Platforms - centOS7, Debian8 with systemd compatibility.

    Improvements

    • [AER-4496] - (KVS) Transaction data structure trimmed for better cache-alignment, boosting performance.
    • [AER-4874] - (KVS) Info transaction data structure trimmed for performance.
    • [AER-4655] - (KVS) Granular eviction histogram to give predictable eviction. No more random record evictions within a histogram bucket. Introduce evict-hist-buckets configuration.
    • [AER-4896] - (KVS) Move all sample config files into a sub directory
    • [AER-4912] - (KVS) Make aerospike compilable on ppc.
    • [AER-4845] - (Fabric) Replica and migration writes should also use namespace jemalloc arenas, to minimize fragmentation in data-in-memory configuration.

    Bug Fixes

    • [AER-4888] - (KVS) Epoll race condition could leave some demarshal threads unused.
    • [AER-4698] - (Fabric) Node missing services list after quick restart.
    • [AER-4907] - (UDF) Writes bypassed stop_write check, resulting in storage full.

    Updates

  • 3.7.5.1
    Release Date: March 31 2016

    Bug Fixes

    • [AER-4886] - (KVS) Batch request are incorrectly handled during duplicate resolution and timeout.

  • 3.7.5
    Release Date: March 23 2016

    Known Issues

    • [AER-4886] Batch request are incorrectly handled during duplicate resolution and timeout. Fixed in 3.7.5.1.

    New Features

    • Aerospike Server now available on Ubuntu 14.04.
    • [AER-4869] - (Fabric) Namespace level migration prioritization.

    Improvements

    • [AER-4754] - (KVS) Consolidate default-timeout assignment code path. More strict protocol sanity checking.
    • [AER-4800] - (KVS) Improve primary index tree structure and traversal.
    • [AER-4824] - (KVS) Vmap implementation used for set and bin info goes lockless.
    • [AER-4667] - (Fabric) Decrease migration memory footprint.
    • [AER-4743] - (Fabric) Namespace level migration tuning. Migration configuration retuning highly recommended.
    • [AER-4846] - (UDF) Background UDF now protected against creating new records.
    • [AER-4828] - (Geo) Improve error responses for invalid regions passed in for geo index.
    • [AER-4687] - (Geo) Preliminary support for indexing GeoJSON elements in lists or maps.

    Bug Fixes

    • [AER-4849] - (KVS) Fix crash when heartbeat protocol is set to "none".
    • [AER-4858] - (KVS) Fix rare memory leak on scan aggregations.
    • [AER-4785] - (Fabric) Remove unneeded migration cancellation logic.
    • [AER-4867] - (Fabric) Erroneous warnings due to duplicate migration start messages.
    • [AER-4848] - (SINDEX) Incorrectly sleeping when query results = 0.

    Updates

  • 3.7.4.1
    Release Date: March 8 2016

    Bug Fixes

    • [AER-4832] - (UDF) When fetching from the bin cache, return a bin's value even if it's a nil.
    • [AER-4812] - (UDF) Update does not correctly account for stats.

  • 3.7.4
    Release Date: February 22 2016

    Improvements

    • [AER-4747] - (KVS) Logging functions now lazily evaluate arguments.
    • [AER-4775] - (KVS) Remove redundant clock calls in microbenchmark.
    • [AER-4779] - (KVS) In read_local(), build response message under record lock, then send it to client later, outside record lock.
    • [AER-4749] - (Fabric) Remove unused multi-target migration code.

    Bug Fixes

    • [AER-4772] - (KVS) Rare proxy request ping-ponged for requests received by random, non-replica node.
    • [AER-4289] - (KVS) Race condition causing crash on merging of sindex meta data.
    • [AER-4766] - (KVS) List_insert fails when inserting into a list > 512 elements.
    • [AER-4786] - (KVS) When 'nsup-startup-evict' is false, cold-start erroneously early terminates.

  • 3.7.3
    Release Date: February 4 2016

    Improvements

    • [AER-4542] - (KVS) Write latency issue during migration with write duplicate resolution.
    • [AER-2272] - (KVS) Deprecated write_to_device flag, introduced as_storage_record_write().

    Bug Fixes

    • [AER-4730] - (KVS) Put() with no bin-ops is incorrectly counted as delete transaction.
    • [AER-4741] - (KVS) Crash accessing geojson data type via list operations.
    • [AER-4750] - (KVS) Minimize time of rejected transactions during initial partition rebalance.
    • [AER-4737] - (Fabric) Potential (to drop) dropped packets when coalescing fabric messages.
    • [AER-4717] - (SINDEX) Invalid sindex gives garbage info.
    • [AER-4753] - (SINDEX) Sending multiple predicates crashes server.

    Updates

  • 3.7.2
    Release Date: January 22 2016

    Improvements

    • [AER-4656] - (KVS) ClusterKey mismatch on proxyee should be allowed to proceed.
    • [AER-4703] - (KVS) Improve invalid message handling - proxyee now report invalid messages to proxyer.

    Bug Fixes

    • [AER-4501] - (KVS) Allow replica transactions on cluster key mismatch to continue.
    • [AER-4691] - (KVS) Incorrectly accessing freed memory on writes - namespaces with sindex and non-integer data type.
    • [AER-4705] - (KVS) Rare race condition on batch-index, incorrectly releasing a retransmitted read duplicate resolution.
    • [AER-4721] - (KVS) Replace not working properly on namespaces configured as storage engine device and have a secondary index.
    • [AER-4722] - (Clustering/Migrations) Migrations may never complete in some cases (due to missing ack when receiving records with no bins).
    • [AER-3296] - (Clustering/Migrations) Migrate_num_incoming not resetting on cluster-reset, potentially causing subsequent migrations to be rejected.

    Updates

  • 3.7.1
    Release Date: January 4 2016

    Maintenance release for Clustering/Migration.

    Known Issues

    • [AER-4722] - Migrations may never complete in some cases (due to missing ack when receiving records with no bins). Fixed in 3.7.2.

    Improvements

    • [AER-1859] - (KVS) Modify Rack-Aware code to work for any replication factor.
    • [AER-4558] - (KVS) Dump major statistics at regular interval in log file.
    • [AER-4643], [AER-3984] - (KVS) Improve prole delete handling.
    • [AER-4666] - (Clustering/Migration) Do not unnessarily construct migration records when cluster key mismatches.
    • [AER-4636] - (Clustering/Migration) Reduced number of rebalance rounds.
    • [AER-4196] - (SINDEX) When deleting a set, also remove all entries from sindexes.

    Bug Fixes

    • [AER-4594] - (KVS) Do not queue requests on slow queue for cluster key mismatch.
    • [AER-4646] - (KVS) Asd crash when using systemctl restart command.
    • [AER-4668] - (KVS) Honor not evictable sets on cold startup.
    • [AER-4645] - (Clustering/Migration) Race condition caused by cluster key changing before disallow_migrations is set.
    • [AER-4679] - (Clustering/Migration) Fixed possible doublefree of fabric message when one destination node is congested.
    • [AER-4487], [AER-4690] - (Clustering/Migration) Race condition causing incorrect heartbeat fd saved and later not removable.
    • [AER-4647] - (SINDEX) Asd crash on empty list indexing.
    • [AER-4675] - (Packaging) Asd starts up under aerospike user despite root / root configured in systemd aerospike.service file.

    Updates

  • 3.7.0.2
    Release Date: December 16 2015

    Improvements

    • [AER-4637] - (KVS) List Pop/Remove operations now support variable argument count.

    Bug Fixes

    • (KVS) Fix list operations on strings size 0-16.
    • (KVS) Handle edge case where append/insert no-op operations on not-in-use bins result in empty list bin.
    • (KVS) Add support for cdt list no-op so the bin won't get freed incorrectly.
    • (KVS) Handle possible overflows if user give huge numbers for index or count in list operations.

  • 3.7.0.1
    Release Date: December 10 2015

    New Features

    • [AER-4424] - Geospatial Indexes (Experimental Release). For more information click here.
    • [AER-4544] - Operations on list. For more information click here.
    • [AER-4568] - (KVS) Add stop-writes threshold on a per set basis.
    • [AER-3789] - (Scan) Add option to include LDT data in scans.
    • [AER-3639] - (Migration) Added new migration stats to accurately reflect migration progress.
    • [AER-3439] - (Clustering) Support dynamically changing the heartbeat mesh seed list.
    • [AER-3053] - (INFO) Add option to use local timestamps in server log.

    Improvements

    • [AER-4512],[AER-4563],[AER-4570]- Migration Improvements - Fix condition where redundant/incorrect migration requests are initiated. Remove incorrect migration state (pending-write) which causes "pending writes never drain" assertion or incorrect object counts.
    • [AER-4540] - (Migration) Remove partition.reject_writes which has outlived its usefulness.
    • [AER-4310] - (KVS) Switched to using abstract UNIX domain sockets from being bound to a path in /tmp.
    • [AER-4452] - (KVS) Improve caller of msgpacks throughout (scan/udf) to use new msgpack API.
    • [AER-4449] - (KVS) Allow unread data in socket after a complete transaction is read.
    • [AER-4508] - (Scan) Enhance scan's migration detection.
    • [AER-4450] - (UDF) as_val re-org for UDF.
    • [AER-4493] - (UDF) Aggregation code refactoring.
    • [AER-4318] - (SINDEX) Use master nodes instead of qnodes for queries.
    • [AER-4500] - (Clustering) New cluster recovery policy paxos-recovery-policy=auto-reset-master.

    Bug Fixes

    • [AER-4553] - (KVS) Server crash when printing strings containing %s.
    • [AER-5204] - (KVS) Services list intermittently add semicolon at start.
    • [AER-4612] - (UDF) Check for > 512 bins is missing when data-in-memory.
    • [AER-4112] - (Migration) Correct erroneous warning "source node [node_id] not found in migration rx state".
    • [AER-4494] - (SINDEX) Memory corruption of stack variable causing undetermined result for list/map indexing.
    • [AER-4103] - (SINDEX) Server is crashing while creating index with index name more than 256 size.
    • [AER-3601] - (Packaging) "python" dependency for tools package is too strict and will not install if "python 2.7" installed.

    Updates

    • aerospike-tools 3.7.0
    • Find out more about the new features and supporting clients released in this version, visit Client Matrix.

  • 3.6.4
    Release Date: November 10 2015

    Batch related node crash has been fixed.

    Bug Fixes

    • [AER-4552], [AER-4564] - Fix batch-index memory corruption.
    • Fix rare memory leak on batch-index errors.
    • Use separate jemalloc arenas for batch-index buffers.

  • 3.6.3
    Release Date: October 16 2015

    Known Issues

    • Regression - outstanding batch issue. Fixed in version 3.6.4.

    Bug Fixes

    • [AER-4521] - (KVS) Batch crash caused by incorrectly setting member after batch data structure is freed.
    • [AER-4433] - (KVS) Improve assert caused by spurious prole delete - correctly upstream assert to master.
    • [AER-4480] - (Packaging) Install correct tools dependency on RedHat-ish machines with Python 2.7.

    Updates

  • 3.6.2
    Release Date: October 9 2015

    Known Issues

    • Regression - outstanding batch issue. Fixed in version 3.6.4.

    New Features

    • [AER-2757] - (Clustering) Introduce a "service-alumni-reset" command to reset "services-alumni" to "services".
    • [AER-3657] - (Clustering) Add support for mesh clustering with each Aerospike node isolated behind their own NAT.

    Improvements

    • [AER-4451] - (KVS) Deletes no longer counted as writes in stats.
    • [AER-4468] - (KVS) Ensure generation and void-time are returned to the client for write requests in multi-node clusters.
    • [AER-4447] - (Packaging) Various improvements to Debian init script.

    Bug Fixes

    • [AER-4455] - (KVS) Batch read race condition during cluster migration causes crash.
    • [AER-4433] - (KVS) Spurious prole delete causes failed assertion.
    • [AER-4443] - (KVS) Records without a TTL incorrectly get default TTL after cold start.
    • [AER-4446] - (KVS) Crash in rare situation - multiple operations on bins containing non integer values (storage-engine device).
    • [AER-4457] - (KVS) Honor zero void-time during conflict resolution when generations are the same.
    • [AER-4458] - (SINDEX) Crash occurred while performing list and map queries that return list or map bins.
    • [AER-4453] - (LDT) On prole writes, the updated subrecords should share same version as parent.
    • [AER-4472] - (LDT) The llist.filter method in ldt/lib_llist doesn't call the filter function anymore.

    Updates

  • 3.6.1
    Release Date: September 24 2015

    Known Issues

    • Regression - outstanding batch issue. Fixed in version 3.6.4.

    New Features

    • [AER-2806] - (KVS) Provide set-scoped 'objsz' histograms (storage-engine device), TTL histograms (formerly not always available) & real-time memory usage (data-in-memory).
    • [AER-3518] - (KVS) Increase write buffer cache efficiency - separate client write from defrag re-write.
    • [AER-3792] - (PACKAGING) Added support for run levels in RPM packaging.

    Improvements

    • [AER-4298] - (KVS) Removed unused vinfo data structure and deprecated 'allow-versions'.
    • [AER-4434] - (KVS) Remove unnecessary warning in single-bin configuration for "sizing unused bin".
    • [AER-4435] - (KVS) Added "disable-eviction" option to disable evictions for specific sets.
    • [AER-4436] - (KVS) Deprecated count-based set-eviction.
    • [AER-4437] - (KVS) Deprecated writes-reply histogram.
    • [AER-4407] - (UDF) Add log entries when UDF modules are registered or removed.
    • [AER-4415] - (SINDEX) Remove redundant warning line for "Number of sbins found for 1 sindex is not 1".
    • [AER-4438] - (AQL) Added "explain" for primary key functions.
    • [AER-4439] - (AQL) Describe-index info call specify index type as NUMERIC/STRING (instead of TEXT and SIGNED INT).
    • [AER-4440] - (Backup/Restore) Ability to save system meta data - sindex and udf meta data.
    • [AER-4441] - (Backup/Restore) Ability to backup/restore binary data w/o b64.

    Bug Fixes

    • [AER-4378] - (KVS) Correctly fail transaction when invalid data type is sent for operations.
    • [AER-4381] - (KVS) Fix scan crash when LDT objects of size 2-4meg are in system.
    • [AER-4251] - (UDF) Stream UDF not returning bytes values.
    • [AER-4288] - (LDT) Improve subrec digest picking randomization.
    • [AER-4426] - (LDT) - Github issue #93 - Fix incorrect prole delete originated from LDT.
    • [AER-4442] - (SINDEX) Closing potential sindex ref count mismatch which cause index to be in "D" state.
    • [AER-4406] - (AQL) Fixed output so it is consistent with the client API.
    • [AER-4404] - (PACKAGING) Fix default permission on CentOS 7 server install.

  • 3.6.0
    Release Date: August 31 2015

    Known Issues

    • Regression - batch related crash during node rebalancing. See details. Fixed in 3.6.2.
    • Regression - extra "sizing unused bin" log line printed in single-bin config. Fixed in 3.6.1.

    Highlights

    • (KVS) [AER-2903] Batch-read improvement.
      • Batch-read requests are now proxied during cluster changes.
      • Handle mixed namespace/bin selections in one batch call.
      • Performance improvement.
    • (KVS) [AER-2986] Scan improvement.
      • Concurrent scan jobs are interlaced, allowing progress on all scans.
      • Add ability to promote a scan to high-priority so it can be processed immediately.
      • Add ability to change number of scan threads during scans.
      • Performance improvement.
    • (KVS) [PROD-265] Support for Double data-type.
      • Roll-back not supported once Double data inserted.
      • Roll-back require cold restart if no Double data inserted.

    New Features

    • (KVS) [AER-2903] Batch-read improvement.
    • (KVS) [AER-2986] Scan improvement.
    • (KVS) [PROD-265] Support for Double data-type.
    • (ASADM) Introduce asadmin 0.0.1, alternative to asmonitor.

    Bug Fixes

    • (KVS) Refactoring of write code path for operations and error handling.
    • (KVS) [AER-3720] - Github #71 Create info threads as detached.
    • (KVS) [AER-3832] - Fail transaction that tries to store key with single-bin data-in-memory configuration.
    • (KVS) [AER-4026] - Fix incorrect processing of interface name resulting in bogus nodeid generated.
    • (KVS) [AER-3968] - Fix negative heartbeat accounting.
    • (KVS) [AER-3946] - Fix crash when non-virtual external address does not match interface ip.
    • (KVS) [AER-3993], [AER-3897] - Fix crash caused by invalid message operations.
    • (KVS) [AER-3810] - Allow reads and low consistency writes during cluster integrity situations.
    • (KVS) [AER-4237] - Fix for err_sync_copy_null_node.
    • (KVS) [AER-3716] - Add transaction timeout error statistics.
    • (KVS) Return void-time to client on write and UDF transactions.
    • (KVS) Fix 'operate' transactions so read-operations are executed in-sequence.
    • (SINDEX) [AER-4151] - Fix leak of file descriptors when query run against a non-existent set.
    • (SINDEX) [AER-3924],[AER-3806] - Stat & configuration improvement - adding query-thread, query-batch-size, query-priority, query-threshold, query-untracked-time, to be settable from configuration file.
    • (SINDEX) [AER-3725],[AER-4062] - Use query transaction structure from a pool.
    • (LDT) [AER-4473] - Perform bound check before preallocate list to store result in llist range.
    • (UDF) [AER-3785] - Fix incorrect record access via UDF when record is already expired but not removed yet by background thread.
    • (UDF) [AER-3042],[AER-4182] - Increase the bin limit for UDFs to 512. Fail out if a UDF attempts to access a record with more than 512 bins.
    • (UDF) [AER-3716] - Correctly clean up failed UDF transactions. Improper cleanup can cause query/scan UDF to hang.
    • (UDF) Fix crash caused by lua error() calls with non-string argument type.
    • (BUILD) [AER-3051],[AER-3052],[AER-3752],[AER-4162] - Fix build on amazon OS & debian8 build. Create 'aerospike' user on rpm distro's.
    • (AQL) [AER-3483] - Add meta data print to json format.
    • (AQL) Add option of REPLICA_ANY.
    • (AQL) [AER-3556] - Fix SET RECORD_TTL override namespace default ttl.
    • (AQL) [AER-3807] - Handle quote around bin name on an equality query.
    • (AQL) [AER-3734] - [Github#73] Fix double quote escape: Changed json output to use libjansson so all other escapes should be correct too.
    • (AQL) [AER-3794] - Fix setting of LuaPath.
    • (Backup/Restore) [AER-3830] - Honor '-s' option for keys.

  • 3.5.15
    Release Date: July 15 2015

    Maintenance Release

    Fixes

    • (LDT) [AER-3988] - Fixed race conditions during migration and replication of LDT records.

    • (SCAN) [AER-3780] - Fixed regression of scan aggregations introduced in 3.5.8

    • (SINDEX) [AER-4062] - Fixed regression of query performance due to 'pre-reserve-qnodes' setting, introduced in 3.5.8.

    • (SINDEX) [AER-3882] - Fixed incorrect statistics for secondary indexes.

  • 3.5.14
    Release Date: June 18 2015

    Maintenance Release

    • NOTICE [AER-4062] - Secondary index query has noticeable performance degredation. Fix released in 3.5.15.

    Fixes

    • (KVS) [AER-3724] - Clean up cluster visibility logging.

    • (KVS) [AER-3684] - Add checks to decompressed packet.

    • (KVS) Fixed shadow device log statement.

    • (SINDEX) [AER-3725] - Performance improvement - remove unnecessary memsets in qctx.

    • (SINDEX) [AER-3709] - Fixing mem leak in query engine with list/map.

    • (LDT) [AER-3704] - Deletes should be propagated to the prole on update properly; fix journalling delete for subRecords.

    • (LDT) [AER-3705] - Fix log line for subrec open failure.

  • 3.5.12
    Release Date: May 28 2015

    Highlights

    • NOTICE [AER-4062] - Secondary index query has noticeable performance degredation. Fix released in 3.5.15.
    • Better Protection against unexpected protocol messages.
    • Improve Cloud Environment Support for using network devices and adpating firewall rules.
    • LDT backup support.

    Fixes

    • (KVS) [AER-3633]/[AER-3616]/[AER-3688]/[AER-3538] - Improve unexpected as_msg - compressed as_msg; namespace too long, extra data than specified.

    • (KVS) [AER-3662] - Improve unexpected as_info - protect against info command with ':' and not terminated with '\n'.

    • (KVS) [AER-3683] - Fail on configuration with replication-factor 0.

    • (KVS) [AER-3598] - Enforce maximum device size for both files and raw devices (2TB). Minor SSD clean up.

    • (KVS) [AER-3615] - Logging fix - Fix cf_*_binary() to be safe against > 1kb. Refactor rw_cleanup(). Refactor as_transaction_error().

    • (SINDEX) [AER-3437] - Fix potential duplicate results returned on query by range due to entries not garbage collectable.

    • (SINDEX) [AER-3573] - Fix query failure when clients send setname=NULL (instead of no setname).

    • (SCAN) [AER-3609] - Support LDT elements. Improve message buffer growing scheme.

    • (SCAN) Set the client socket file descriptor to blocking during a scan, to avoid CPU-intensive retry loops.

    • (UDF) Do not send replica message on UDF failures on not-found files.

    • (LDT) [AER-3594] - Fix failed element delete caused by double-split leaf no longer connected.

    • (LDT) Add some more parameter check for the llist functions. Print parent record on open failure.

    • (LDT) Return proper error code if empty string is sent and binName or the key Type mismatch across multiple operations. Fix error code conversion.

    • (AQL) [AER-3620] - fix for authentication fail error message logging during cluster connect for security enabled server.

    Enhancements

    • (KVS) [Issue-46][AER-3541] - Add option for sending of keep-alive packets on all inter-node sockets, for deployments with firewall rules which actively reap idle connections.

    • (KVS) [AER-3557] - Add device shadowing functionality, for persistence on network devices in addition to ephemeral storage.

    • (SCAN) [AER-1801] - Added scan-abort-all.

    • (LDT) [AER-3609] - Support for LDT backup.

    • (AQL) Add EDIGEST and DIGEST as option of performing operation based on encoded and non-encoded digest string.

  • 3.5.9
    Release Date: April 21 2015

    Highlights

    • NOTICE [AER-4062] - Secondary index query has noticeable performance degredation. Fix released in 3.5.15.
    • Fixed Regression introduced in 3.5.4, where queries do not respond to the client when aggregations fail.

    Fixes

    • (KVS) [AER-3532] - Increase efficiency of tracking master/prole object counts.

    • (SINDEX) [AER-3533] - Regression from 3.5.4 - Fix the bug where query system does not respond back to the client when aggregation functions aren't found.

    • (SINDEX) [AER-3515] - 1. Instrumentation around sindex reservation. 2. Zombie sindex should be shown in 'show sindexes'.

    • (SINDEX) [AER-3514] - Allow sindex deletion if index name starts with a whitespace.

    • (SCAN) [AER-3451] - Improve scan job kill - when a scan job is killed, abort processing immediately instead of waiting for partition.

    • (LDT) Fix LDT exception when invalid data type passed in for llist.range() calls.

    • (LDT) Fix error caused when LDT record not initialized via an 'update' call.

    • (INSTALL) [AER-3550] - Properly install and remove the 2.x Aerospike Python client Library on all supported platforms.

    • (ASCLI) [AER-3484] Fixed - modified how bins are being iterated over.

    Enhancements

    • [AER-3529] - added info protocol "replicas-all" to fetch client map for all replicas simultaneously. This allows clients to read from prole replicas with any replication factor.

  • 3.5.8
    Release Date: April 7 2015

    Highlights

    • NOTICE [AER-4062] - Secondary index query has noticeable performance degradation. Fix released in 3.5.15.
    • Performance enhancements:

      • Clustering - Migration performance improved by modifying initial partition balancing scheme for nodes joining a cluster.
      • Scans - Scanning of large datasets improved by buffering and sending chunks of records, rather than buffering entire partition.
      • Queries - Query results will no longer busy-wait while waiting to send results to the client, if the client is not consuming the records.
      • LDT - Paging objects based on page size (bytes), rather than object count. Default page size is 8 KB. New find_first/last/range API.
    • Tooling and Instrumentation:

      • JEMalloc Analyzer - Scripts that allow you to analyze JEMalloc related stats from Aerospike.
      • ASMalloc double-free detector - An ASMalloc enabled Aerospike server will log when a double-free is detected.

    Fixes

    • KVS [AER-3453] - Changed default nsup-delete-sleep from 0 to 100 microseconds to avoid large number of objects in set-delete.

    • KVS - Changed size of write request hash from 16K to 32K.

    • KVS [AER-3297] - Mesh - Increase the interval between re-trying heartbeat connections.

    • KVS [AER-3465] - Release JEMalloc Developer Tools.

    • KVS Cleanup - removed unused dupl_pvinfo array from partition structure. (Recovers 12Mb of RAM per namespace).

    • KVS [AER-3125] - run-time recovering option for out-of-storage situation. On increasing defrag-lwm-pct, queue all newly eligible wblocks for defrag. Also, allow defrag to use reserve wblocks when other writer threads can't.

    • KVS - as_malloc based double-free detector

    • KVS [AER-3412] - added diagnostic code to check for non-master records after emptying set(s).

    • LDT - Fix the corner case of child node being inserted at the first position.

    • LDT - Fix version setting code in prole write code path. Fix proxy code to clean up write request.

    • Scan - Make sure asinfo properly reports the result of a scan-abort command.

    • SINDEX [AER-3446] - Fix crash caused by not checking the bound on selected bin name size.

    • SINDEX [AER-3413] - Sindex creation ticker to represent actual namespace %.

    • SINDEX - Adding query-short-queue-size and query-long-queue-size.

    • SINDEX - query management for slow clients . Introduce thread-pools to handle send w/ EAGAIN. Pause a query if there is more than X number of network packets outstanding.

    • SINDEX qnode hole closing.

    • AGGR [AER-3321] - change scan aggregation to use normal index reduce.

    • BUILD - Enable building on Fedora.

    Enhancements

    • KVS Migration Performance Enhancement - Changed the initial partition balancing scheme so that absent partitions remain absent until a node joins a cluster or is contacted by a client.

    • SINDEX - query management for slow clients . Introduce thread-pools to handle send w/ EAGAIN. Pause a query if there is more than X number of network packets outstanding.

    • Scan [AER-3377] - break scan results into reasonably sized proto blocks.

    • LDT LLIST - Leaf node (data node) split based on configurable pageSize (bytes) rather than number of entries, default at 8k.

    • LDT LLIST - Add new function find_first/last/range, with filtering capability.

  • 3.5.4
    Release Date: March 10 2015

    Highlights

    • NOTICE A regression was introduced in 3.5.4 that caused queries to not respond to the client when aggregations fail. A fix was made in 3.5.9.

    Fixes

    • KVS - AER-3393 - Fix potential crash caused by divide-by-zero in expiration thread stat calculation.

    • KVS - Add a signal handler for SIGILL. Gracefully handle unexpected return value of signal registration.

    • KVS - Issue#45/AER-3395 - Only apply delete generation check if delete is direct from client.

    • KVS - AER-3378 - Improve Socket-Related Error Handling.

    • TOOLS - AER-3355 - Fix digest operations in CLI.

    • UDF - Support Lua list/map 'create', which will be portable to all platforms. The previous 'new' was not easily portable to Java/C#.

    • UDF - AER-3314 - Improve usage of the Lua debug hook used for timing record UDFs.

  • 3.5.3
    Release Date: February 23 2015

    Maintenance release.

    Fixes

    • KVS - AER-3343 - Fix batch bin-filtering: return empty record when record exist and bin does not.

    • KVS - AER-3332 - Change permissions of log file to 644.

    • KVS - AER-1376 - Add generation enforcement option for record deletion.

    • KVS - AER-3259 - Heartbeat tip: correctly error out when a name is supplied instead of an ip address.

    • KVS - Forum-963 - Fix g_service_str initialization race condition.

    • LDT - Fix as_rec reference memory leak.

    • UDF/LDT - AER-3307 - Server statistics fix.

  • 3.5.2
    Release Date: February 13 2015

    Maintenance release; consolidation of Large Data Types (LDTs)

    Known Issues

    • AER-3343 - Batch with bin name filters will not work. fixed in 3.5.3

    Fixes

    • KVS - AER-3250 - Improved latencies during nsup - use dual tree locks so reads and overwrites are not blocked while reducing a partition tree.

    • KVS - AER-3290 - Increase the priority of migrate xmit thread kill messages. Allow 'migrate-max-num-incoming'to be dynamically set to 0.

    • KVS - Added sample configuration files.

    • KVS - AER-3191 - Added proto error code AS_PROTO_RESULT_FAIL_FORBIDDEN, currently for failing writes during set-delete.

    • KVS - Increasing thread count for cold start eviction to fully exploit 24-core machines.

    • KVS - AER-3172 and AER-3091: minor stats fixes. Added stats 'nsup-cycle-duration' and 'nsup-cycle-sleep-pct'.

    • KVS - Fix Scan/Query/Batch to not return empty record when the record does not contain the requested bin.

    • KVS - AER-3111 - fix to allow core dump - modified signal handling exit by reraising signals with default handlers for signals that crash.

    • KVS - Do not return storage object size histogram (hist=objsz) in non-persisted namespace.

    • LDT - Large Data Type (LDT) functionality consolidation: LMAP, LSTACK and LSET data types are planned for deprecation. Developers using any of these three types are urged to use LLIST instead. The LLIST API will remain as is.

    • LDT - Lua module cleanup and enhancements 1. Removed unnecessary field in the property map 2. Cleaned up configuration module to only have relevant fields 3. Removed all the misc. tests and packages.

    • LDT - Do not expire sub-record at boot time.

    • TOOLS - Backup/restore/aql using new C client.

    • TOOLS - AQL - Fix to handle queries with no results.

    • SINDEX - Fix rare crash on sindex destroy due to incorrectly reserving the sindex.

    • UDF - AER-3192 - Record-UDF all bin deletes in a record are not updated in prole.

    • UDF/LDT - Fix leak in hashmap entry removal.

  • 3.4.1
    Release Date: January 12 2015

    Enhancements/Stabilization for Large Data Types; Support for Scan Aggregation.

    Features

    • KVS - Support for aggregation on scan.

    • LDT - Enhancement for migration. AER-2655 Disallow any LDT operation when 'ldt-enabled' configuration is not on.

    • UDF - AER-3073 - Add an info call to clear the Lua cache on the node. ['asinfo -v udf-clear-cache:'].

    Fixes

    • KVS - AER-3048 - Paxos - Ensure the Paxos proposal from the node with the highest node ID will always be accepted.

    • KVS - AER-3068 - Eliminate rare small memory leak and also symptom message 'Illegal state in read request (second call)' (overwrite of tr->msgp).

    • KVS - AER-3080 - Increase MAX service-threads to 256 and transaction-queues to 128. Increase MAX_FABRIC_WORKERS from 64 to 128.

    • KVS - AER-3100 - Namespace too long for 31 char namespace.

    • KVS - AER-3113 - Remove unnecessary assert on 4095 select bin read.

    • KVS - as_hashmap reallocation bug fix.

    • AGGR - AER-3109 - Add record access function record.setname(), record.digest() and record.key() in streamUDF.

    • SINDX - Fix crash when system has > 127 sindexes.

    • TOOL - AER-3115 - To avoid conflict, moved daemon.py into citrusleaf_graphite.py.

    • AQL - Enable ability to perform get and delete based on digest.

    • ASADMIN - Version 0.0.7. added 'info sindex'.

  • 3.4.0
    Release Date: December 8 2014

    Since going open source earlier this year with Aerospike version 3.3.5, we’ve added a myriad of features and fixes. Though this version only includes one feature (enhancing defragmentation) and a handful of fixes, we wanted to end 2014 with a fresh new version: Aerospike 3.4.0.

    Features

    • KVS - AER-3067 - defrag enhancement - added 'defrag-queue-min' configuration parameter to specify delay in processing defrag-eligible storage blocks. This should benefit particular usage models in which storage blocks (wblocks) continue depleting quickly and significantly after crossing their defrag-eligibility threshold.

    Fixes

    • KVS - AER-3071 - Discover minimum size needed for device IO operations using O_DIRECT.

    • UDF - Case 1793 - Use 64-bit counters for tracking Lua cache attempts/misses.

    • QUERY - Memory leak fix for aggregation, when client closes connection before processing all the results; AER-3057 aggregation digest array leak fix.

    • QUERY - AER-3017 - Fix rare race condition where an in-flight record may not get indexed on an index creation.

    • INIT - AER-3070 - init script fix for shmall/shmax setting.

  • 3.3.26
    Release Date: December 3 2014

    Support for per-transaction based policy for write-commit-level, read-commit-level, and read-replica.

    Features

    • KVS - PROD-396 - New per-transaction policy - (a) write-commit-level ('master' or 'all') (b) read-commit-level ('master' or 'all') (c) read-replica ('master' or 'any').

    • KVS - AER-2449 - Add 'virtual' as an option to network 'access-address', to allow NAT ip which are not defined on the node's network interface such as AWS

    • KVS - AER-1025 - Support batch bin name filtering.

    • LDT - AER-3038 - Support range deletes for LargeList

    • UDF/LDT - AER-1047 - Using lua-jit for Lua.

    • UDF - AER-2946/AER-2947 - List feature enhancement - added insert(), remove(), concat(), and trim().

    Fixes

    • KVS - Write version and help text to stdout (as opposed to stderr) and return 0 (as opposed to 1) from main() on these cases.

    • KVS - AER-2923 - Deprecated some expiration parameters - nsup-queue-hwm, lwm, escape, replaced with nsup-delete-sleep (microseconds, default 0).

    • KVS - AER-3030/AER-3008 - Removing 'migrate-priority' from stats; deprecated config item 'high-water-pct'.

    • KVS - Paxos Stability - 'dun all' and 'undun all' command behavior to reform into a single cluster; send PREPARE COMMIT and CONFIRM messages only to the succession list, to avoid non-cluster members (and dead nodes) from getting into the succession list; Ensure all nodes in the succession list are alive.

    • KVS - Fixed as_hashmap constructor to handle 0 capacity correctly. Fixes in as_list - toString and set methods.

    • LDT - LMAP fix for Overwrite; AER-2948 - Fixed LDT Type Fail;AER-2952 - Added LMAP exists() function. LDT Updates: Improved LLIST Delete handling, improved SubRec handling.LDT Control structure check consolidation.

    • LDT - Fix LDT delete crash.

    • LDT - AER-3040 - Improve LDT sizing through use of configurator; default to no compact-list so inserts of large elements do not fail.

    • SCAN - Scan performance improvement - use a bigger initial bufbuilder size. AER-2971 - Improvement in scan error return codes.

    • INSTALL - Change asinstall to use 'Uvh' instead of 'ivh'.

    • MAKE - Added cleangit Makefile target to remove all none git tracked files.

    • CLI - AER-2862 - Resolved intermittent CLI error; Fix parsing of -d (digest) parameter.

    • AQL - Support 64-bit integers; AER-2929 - Fix Json rendering crash; AER_2664 - Fix show-bins formatting; AER-2784 - generic fix for invalid commands.

    • AQL - AER-2927 - Add AQL support to display keys coming back for records.

    • ASADMIN - AER-2768 - Fixed issue with 'citrusleaf_stat' references.

    • Backup/Restore - AER-2719 AER-2691 for key storage.

  • 3.3.22
    Release Date: October 31 2014

    Maintenance release.

    Features

    • TOOL - New asadm tool (beta).

    Fixes

    • TOOL - AER-2920 - Rename asadmin to asadm to avoid installation conflict on Amazon EC2 (Amazon Linux OS).

  • 3.3.21
    Release Date: October 14 2014

    Maintenance release.

    Features

    • KVS - AER-2758 - Added 'cold-start-empty' configuration boolean to ignore reading data from raw devices.

    • LDT - llist.update_all() function.

    • AQL - AER-2772 - Allow aql to set fail_on_cluster_change_policy for scans.

    • TOOL - New asadmin tool (beta).

    Fixes

    • KVS - AER-2826 - Minor logging changes in paxos, heartbeat.

    • KVS - Enhanced hashmap implementation.

    • KVS - Better logging around the defrag generation mismatch and related occurrences.

    • KVS - Fix badly formed transaction message with bad namespace length.

    • KVS - AER-2769 - Fix memory accounting - the overhead of the as_bin_space struct is no longer included if there are no bins.

    • KVS - AER-2728 - Treat generation 0 consistently.

    • LDT - Fix record type reset to allow warning-free subrecord delete.

    • LDT - Respond 'record not found' as protocol error 2. Respond 'element not found' as protocol error 125.

    • SINDEX - AER-2842 - Fix for crash where multiple queries share same trid.

    • SINDEX - AER-2802 - Fix possible crash on index removals.

    • SINDEX - AER-2778 - Range queries return less results than expected for keys with > 32 elements.

    • SINDEX - AER-2748 - Improve write performance on system w/ sindex - Maintain a binid_has_sindex lookup.

    • UDF - Log warning when UDF called with more than 20 arguments.

    • UDF - AER-2872 - Fix crash on scan and query record UDF in duplicate resolution - jobType not saved.

    • UDF - AER-2787 - UDF-list calls may potentially fail all info calls on a node.

    • UDF - Fix potential crash due to uninitialized set name for internal query transaction. Improve performance by reducing context lock scope.

    • SCAN - AER-2382 - Fixed scan job ref-counting. Fix possible causing excess response sent to client.

  • 3.3.19
    Release Date: September 9 2014

    Install script renamed to asinstall to avoid potential conflicts with other install scripts.

    MESH - Allow multiple seed addresses in network section.

    Storage Write Durability Enhancements.

    Other bug fixes.

    Features

    • KVS - AER-2654 - mesh - allow multiple seed addresses in network section ('mesh-seed-address-port 192.168.1.215 3002').

    • KVS - AER-2504 - Added 'fsync-max-sec' namespace storage configuration to specify fsync interval (default=0, never fsync). Add related storage-benchmark histogram.

    • KVS - Added 'enable-osync' namespace storage configuration to set O_SYNC for raw devices.

    • KVS - Added 'flush-max-ms' namespace storage configuration to flush inactive in-memory write buffer (swb) to device (default=1000ms, 0 means never flush).

    • UDF - AER-1487 - bin iteration in udf - add record.bin_names() function.

    • UDF - Lua API - Adding map.remove().

    • LDT - AER-2727 - add LLIST Update() function.

    Fixes

    • KVS - AER-2662 - Maintain Paxos Succession List in Descending Sorted Order.

    • KVS - AER-2663 - Fix incorrect node 'dead' state due to node-local blip.

    • KVS - AER-847 - Better error handling - added errors for no/unknown namespace (20) and bin name too long or exceeding quota (21).

    • SINDEX - AER-2110 - Making query threads detachable.

    • SINDEX - AER 2715 - Update sindex histogram correctly.

    • UDF - AER-1549 - udf-list reads from system metadata instead of from directory. Restrict max UDF content length to 1MB.

    • UDF - AER-2712 - Fix crash when UDF executes on a record which does not exists.

    • LDT - Stability fixes.

    • INFO - AER-2340, AER-2339 - Info service prints only when service is running; check for external-address validity.

    • INSTALL - Rename installer script to 'asinstall' to not shadow system command 'install'.

    • MAKE - Change Makefile to take argument for optimization level.

  • 3.3.17
    Release Date: August 26 2014

    New defrag algorithm with simplified configuration and tuning.

    New packaging and simple install script provided in the tar ball, simply run 'sudo ./install'.

    Features

    • KVS - Queue based defrag algorithm.

    • UDF - AER-2278 support dropping of stored-key via UDF

    • UDF - Enhance byte-array access interface to support both little-endian and big-endian arrays; add bytes.get_var_int().

    • INSTALL - generate check-sum for tgz's.

    Fixes

    • KVS - mesh stability fixes - AER-2617, AER-2626, AER-435, AER-943.

    • KVS - Storage space check bugfix when storage under min-avail-pct - check against free wblock queue.

    • KVS - AER-2657 - performance enhancement - removing redundant memmove calls in FABRIC system

    • KVS - AER-2579 - histogram accuracy cleanup (nanoseconds).

    • KVS - AER-2652 - Key storage - for 2.0 C clients, do not incorrectly save key on proxy requests.

    • KVS - AER-2588 (non-master log line) update.

    • KVS - Fixed rare cf_crash() when process fail to fork.

    • KVS - as_hashmap 'NULL' map Parameter Checks.

    • KVS - Fixed `get-config` info command to work for namespaces with names longer than nine characters.

    • UDF - AER-2695, AER-2639, AER-2656 - fix udf storage sizing.

    • UDF - AER-2678 - use as_nil to represent nil Lua stack values.

    • LDT - Improve Search mechanism in LLIST; Fix Set/Get capacity api calls in LMAP, LSET, LLIST; Improve lstack management of capacity settings; AER-2647 & AER-2648, AER-2655 memory leak fix due to reference counts.

    • LDT - stability fixes - add validate() function. log minimization.

    • SINDEX - AER-2682 - fix rare record miss on sindex rebuilding during node restart for SSD configuration.

    • RPM - init script killproc change.

    • INSTALL - Add installation script for easy install.

  • 3.3.12
    Release Date: July 24 2014

    UDF and LDT features, bug fixes.

    New Dependencies for tools package: python-devel, pip, and gcc. Further details under the server installation instructions.

    Features

    • LDT - Server Support for Range query for LargeList.

    • UDF - AER-2545 - Ability to set TTL in via UDF.

    Fixes

    • KVS - AER-2218 Ability to dynamically read network interface name.

    • KVS - AER-2588 Fix assertion crash seen in rare cluster integrity situation.

    • SINDEX - Fix gc histograms to only output once.

    • SINDEX - AER-2602 - Fix for possible crash in write_delete_local code path when records have secondary index.

    • SINDEX - Garbage collector performance enhancement, counter fix; query microbenchmarks.

    • SINDEX - AER-2578 - Possible orphaned sindex entry on prole writes.

    • UDF - AER-2601 - Fix for hidden flag in bins.

    • UDF - AER-1549 - udf-list reads from system metadata instead of from directory.

    • UDF - AER-2541 - AER-2444 - AER-2550 Stability bug fixes.

    • LDT - AER-2557 - Fix crash for LDT on data-on-disk configuration.

    • RPM - AER-2493 enhance rhel init script to accommodate rhel7.

  • 3.3.9
    Release Date: July 15 2014

    Fix for single-bin configuration memory stomp causing server crash.

    Known Issues

    • ascli tool - crash on query-kill/query-list/scan-kill/scan-list calls.

    Fixes

    • KVS AER-2563 - single-bin, data-in-memory bugfix - bin initialization no longer writes past end of allocated enclosing as_index structure.

  • 3.3.8
    Release Date: July 9 2014

    Known Issues

    • In single-bin configuration, memory stomp causing server crash.
    • ascli tool - crash on query-kill/query-list/scan-kill/scan-list calls.

    Features

    • KVS - Adding 'cache-read-pct' in namespace stats.

    Fixes

    • KVS - log edition & build on SIGABRT.

    • KVS - AER-2531 - Fix rare timing related crash on startup, seen on REL7.

    • KVS - Fixed storage-engine-memory paxos bug introduced in 3.3.5.

    • KVS - AER-2469 AER-2508 stability fixes - log format fix; better error message when arena stage allocation fails.

    • KVS - AER-2485 - expand command-line help and usage text.

    • UDF - AER-2551 - fix crash caused by no arguments passed in.

    • UDF - Fix missed generation increment for UDF with updates.

    • UDF - AER-2534 - Fix registration of .so UDF modules.

    • UDF - AER-2175 - Fix bug which causes UDF transactions to never timeout on server side.

    • UDF - AER-2277 & AER-2278 - key-storage feature - support key storage and checking via UDF operations.

    • UDF - AER-2434 - delay commit to storage of aerospike:update until UDF finished. Enhance the parameter and validation check for udf_record/udf_aerospike.

    • QUERY - Support aggregation error propagation to client.

    • QUERY - AER-2431 - replica bin deletion bugfix for records with sindex.

    • LDT - stability bug fixes.

    • LDT - AER-2463 - Return hidden bin type as AS_PARTICLE_TYPE_NULL when return to client. Other stability fixes.

    • AQL - AER-2436, AER-2456, AER-2402, AER-2410, AER-2533.

    • AQL - AER-2507 AER-2269 - Bug-fix for db operations using integer keys. Stability fixes.

    • BACKUP - Added support for PHP,ERLANG,LUA type blob backup/restore.

    • DEB - AER-2483 - fix gui install of ubuntu12.

    • RPM - Fix conflict of tool & aerospike.

    • ASMON - AER-2341 - Use master-objects stat in Namespace and display object count as numbers with comma as 1000 separator.

  • 3.3.5
    Release Date: June 9 2014

    This release enables unlimited cluster and storage capacity in Aerospike Server Community Edition.

    Features

    • Remove cluster size and storage limitation in community build.

    • KVS - AER-307 - Enable drive add/replace ‘in-place’ without re-initializing existing drives.

    Fixes

    • UDF - Stability fixes for user-defined-function. enhancement to gc heuristic. histogram fix.

    • KVS - AER-2384 - swb to not have a full 1meg wasted size when wblock is only 128kb.

    • KVS - AER-2301 - Removal for migration assert for Repl Factor of 3.

    • KVS - AER-2171 - Fix for fail single-bin write transactions that contain more than one write op.

    • KVS - AER-2316 - Batch performance optimization.

    • SINDEX - stability fixes for sindex. AER-2383 - sindex bin performance issue. AER-2392 fix rare deadlock of sindex GC w/ journal_apply.

  • 3.2.9
    Release Date: May 12 2014

    This release brings some significant performance enhancements and the ability to store the key with each record as well as enalbing key collision check on a per transaction basis.

    Features

    • KVS - AER-1881 - Key Storage Ability to store key with the record and enable key collision check on a per transaction basis.

    • KVS - AER-2264 - Consistency enhancements during transient partition state.

    • KVS - Enhanced handling of duplicate bin updates within same transaction.

    • KVS - Re-organize structure to make it more cacheline friendly and reduce structure memzero overhead at the time of initialization.

    • KVS - Performance enhancement: minimize thread context switching for data in memory config.

    • KVS - Performance enhancement: allow read transactions to proceed ahead of write transactions.

    • KVS - Network performance enhancement: don't send unnecessary LDT info (rec_props) in migration.

    Fixes

    • KVS - Fix histogram and stat collection for the fire and forget option

    • KVS - Fix crash seen on cold start eviction introduced in 3.2.8.

    • UDF - AER-2087 - Fix as_nil datatype in UDF.

    • UDF - Fix lua map delete.

    • UTIL - AER-2268 - Fix job name on a job query.

    • STAT - AER-2263 & AER-2270 - Fix stat_read_req stat (caused migrations to sometimes not complete).

    • AQL - AER-2094 - Fix for sending record-timeout settings in client-calls via aql.

    • AQL - Fix crash when inserting more than 4 bins in one command.

  • 3.2.3
    Release Date: April 10 2014

    This release has some miscellaneous other minor enhancements and bug fixes.

    Features

    • KVS - AER-2097 - allow -1 in config file (or info) for default-ttl, to mean 'never expire'. (Also means it's allowed for max-ttl to mean 'there's no max-ttl'.)

    • KVS - Allowing the time-unit syntax (s, m, h, or d) on default-ttl and max-ttl via info.

    Fixes

    • UDF - Handle case, where user sends no timeout value in the UDF timer code.

    • KVS - AER-2044 and more - Renamed stat_storage_queue_full to err_storage_queue_full, and removed stat_storage_queue_delay, along with the actual delay. Made max-write-cache actually dynamically configurable. Streamlined the check for write queue too deep, with appropriate renaming. Return new error code AS_PROTO_RESULT_FAIL_DEVICE_OVERLOAD (18) when write queue is too deep, instead of the misleading out-of-space error code.

    • KVS - AER-2125 - Pull record locks at shutdown to prevent partially completed write operations.

    • KVS - AER-1682, AER-1704 - applying a storage "floor" and checks to make sure a local write has enough storage space to succeed, or fails without affecting existing record (ACID).

    • KVS - Streamlined write sizing so total flat size is stored and not recalculated. Sizing check code is rearranged for easy removal eventually.

    • SINDEX - Minor formatting for sindex scan messages.

    • SINDEX - Changing the display of integer type sindex from "INT UNSIGNED" to "INT SIGNED" in asinfo -v sindex command.

    • SINDEX - Fixing fan-out of sindex btree to a fix values.

    • UDF - Add udf_context while executing the udf.

    • TOOLS - AER-2201 - Resolved issue that prevented tools package to be installed.

    • TOOLS - Use select() based implementation to determine socket availability instead of epoll.

    • ASMONITOR - AER-2141 - Add -n option in asmonitor to display IP addresses.

    • ASMONITOR - AER-2146 - Add node name to asinfo outputs.

    • ASMONITOR - AER-1948 - Fix crash when running pmap.

    • ASCOLLECTINFO - AER-1855 - Offline state handling.

    • ASGRAPHITE - AER-2103 - Resolved clgraphite crash when graphite server is not running.

    • ASGRAPHITE - AER-2098 - Move all non int values to int.

  • 3.2.0
    Release Date: March 19 2014

    This release addresses the issue with disk of size greater then 512G introduced in 3.1.3. It also improves the memory management and adds the ability to dynamically change the number of migrate threads to speed up migrations.

    Features

    • KVS - AER-1524 - Optimized Memory Management - Data Locality to minimize fragmentation in Data-in-memory deployment.

    • KVS - ASMalloc - Aerospike Memory Tracker.

    • KVS - AER-1748 - Add ability to dynamically change the number of migrate xmit threads. asinfo -v 'config-set:context=service;migrate-threads=<NumThreads>' The permissible range for the number of migrate xmit threads is 0..100 inclusive.

    • KVS - AER-2029 - time values in config file may now be expressed in units of seconds, minutes, hours, or days (add s, m, h, or d).

    Fixes

    • STORAGE - AER-1965 - 128b disk storage - Fixed unintended implicit typecast (bug affected drives > 512G).

    • SINDEX - AER-2092 - Sindex - Prevent crashes due to memory stomping when deleting a SIndex.

    • SINDEX - AER_2018 - Counter for garbage in sindex encountered through query. 2. AER-1396: Support range query for negative values.

    • SINDEX - AER-1688 - source code organization - sindex tree into aerospike-server; removal of zmalloc & sds; removal of unused functionality.

    • KVS - AER-1996 - Moved histogram creation even earlier, so cf_crash on mis-configured tracking histogram doesn't force cold start.

    • KVS - AER-2035 - set-name mismatch related cleanup.

    • KVS - Fixed memory sizing to account for as_bin_space's 2 bytes.

    • KVS - Add protection against receive migrates getting stuck at non-zero when the sender is at zero.

    • KVS - Fix Proxy Crash before TSVC Transaction Queues Are Initialized.

    • KVS - Optimized de/serialization of list/map data type.

    • KVS - Make write_local()'s record size check rigorous.

    • SMD - Properly initialize thread attributes before creating the SMD thread.

    • STAT - renamed 'write-rq' to 'ongoing-write-rq'.

    • STAT - AER-1985 - Removed duplicate stats in clinfo -v namespace/<namespace_name>

    • CONFIG - transaction-max-ms default to 1000 so no config is needed. changed defrag-startup-minimum default to 10. Changed fabric-workers (threads) default to 16. Changed nsup-queue-hwm/lwm/escape defaults to 500/1/10.

    • UDF - AER-2042 - accessing uninitialized record index when executing not-found UDF record.

    • UDF - Unprotected file reads causes weird corruption causing system to hang. Proper lock around file_read call.

    • UDF - Statically linking lua & crypto.

    • LDT - list fix crash in list.take().

    • LDT - Fix the string to digest conversion function for Large Data Type.

    • NET - Fix for properly handling 'address any' in heartbeat section.

    • AQL - Info - print trid correctly for high values for jobs.

    • AQL - Fix the trailing comma in json output.

    • AQL - AER-1535 - Fix for integer-type data via aql.

    • AQL - AER-1953 - Fix for displaying result of 'show-bins' in the single-bin case, instead of crashing.

    • AQL - negative trid bug.

    • BACKUP/RESTORE - AER-2036 - #fixed Support infinite TTL(-1) for backup and restore as per recent client change.

    • BACKUP - Minor fix for number of objects print while given wrong namespace.

    • SCRIPT - AER-2060 - #comment prompt to continue instead of exit in case a file doesn't exist in fixownership.py

  • 3.1.14
    Release Date: February 25 2014

    Features

    • KVS - Repurposed stat_zero_bin_records to count records deleted because last bin was deleted.

    • KVS - AER-1875 - Added 'non-expirable-objects' to get the number of not expirable objects per namespace.

    • KVS - AER-1846 #comment removed hardcoded pidfile usage, using --name instead (Debian only).

    • *KVS - Don't store 4 bytes of vinfo per record if we're not using vinfo.

    • KVS - AER-1819 Deprecated 'empty writes' statistic.

    • KVS - In write_local(), consolidated fail-out code, fixed set-ID assignment failure code, improved order of checks.

    • KVS - Support asinfo -v get-config, without ':'.

    • KVS - AER-1985 Fix for namespace duplicate statistics.

    • KVS - AER 1885- Increase the default size of post-write queue. Benefits XDR and hot keys.

    • KVS - Fix NPE seen on aggregation path for stream ending.

    • KVS - AER-1943 - Fix for properly handling 'address any' in heartbeat section.

    • SINDEX - AER-1891 - Separate queues for short running and long running query jobs.

    • SINDEX - AER-1927 - Secondary Index - Use the correct accounted value of new and old bin value for sindex update while freeing the bins up.

    • SINDEX - AER-1890 secondary index accounting - query_queue_full was added twice in query_fail.

    • SINDEX - AER-1799 - Adding new error codes for secondary index operations.

    • SINDEX - Fix AER-1812 secondary index building memory stat fix.

    • SINDEX - Fix the default value to make sure accounting while increasing the query_threads.

    • SINDEX - Bug in 'alc_arr_shrink()' for sindex shrinking.

    • SINDEX - query abort gets counted twice.

    • SINDEX - Adding a log message for sindex creation and deletion requests coming via SMD.

    • UDF - AER-1884 Fix accidental use of freed object (success value from Lua call).

    • UDF - updated to latest common and mod_lua.

    • UDF - AER-1864 UDF registration - Remove lock inside verify_environment. Put read lock round file_read call inside udf_cask.

    • LDT - Storage saving - LDT rec-prop if record is not LDT! This should (eventually) recover 10 storage bytes.

    • LDT - Fix the string to digest conversion for LDT.

    Fixes

    • ASMONITOR - AER-1660 - Fix asmonitor on Debian 7 (set locale - Debian).

    • AQL - AER-1591 - Fix for unsupported execute query to return error.

    • AQL - AER-1860 - Fix for not being able to create/query secondary indices with leading numeric value.

    • AQL - AER-1496 - Fix for AQL segfault when non-existent filename is passed-in.

    • AQL - Changing help syntax for udf module registration.

    • AQL - AER-1929 BUG: strtol glib function loses data when converting a uint64 value to int64.

    • AQL - AER-1958 - Only go to one node for sindex creation and deletion, and let SMD propagate.

  • 3.1.10
    Release Date: February 12 2014

    Features

    • KVS - AER-923 - Allow records to be set to NO EXPIRE via sending -1 from client.

    Fixes

    • KVS - AER-896 - Print all dynamic configuration changes in log file.

    • KVS - AER-961 AER-1851- Added 'CREATE_OR_REPLACE' proto flag to completely replace existing records (therefore avoiding reading the existing record during the write). Fixed for data-in-memory namespaces.

    • KVS - AER-1374 - Stop writes if disk available percent is less than min-avail-pct (default is 5). Storage stop-write now only based on available-percent, not disk-bytes used.

    • KVS - AER-1456 - Support persisting configuration parameters specific to a secondary index in the configuration file.

    • KVS - AER-1553 : Allow dynamic setting of memory-size to accept short form (e.g 12G).

    • KVS - AER-1645 - Master and replica object counts are now included in namespace info.

    • KVS - AER-1677 - Only start info ticker and info-port after secondary indexes are fully loaded.

    • KVS - AER-1741 - Replica writes now bypass stop-writes.

    • KVS - AER-1750 - Info call- Split the network context in network.info and network.hearbeat in get-config as in set-config.

    • KVS - AER-1773 - Change Debian init scripts to look for default pid file location. Change logrotate script to look for pid file in default location.

    • KVS - AER-1799 - Adding pre-checks for SI creation and deletion info calls.

    • KVS - AER-1826 - Fix partition state change crash seen on Debian7.

    • KVS - AER-1885 - Increase the default size of post-write queue. Benefits XDR and hot keys.

    • KVS - AER-1925 - Fix info calls (remove duplicate 'available_pct', missing ';').

    • SINDEX - AER-1752 - Optimization - skip secondary index building if index belongs to a set with zero records.

    • SINDEX - AER-1816 - Fix premature cluster formation before secondary index re-building finished. Caused by presents of data-in-memory namespaces in addition to SSD namespaces with secondary indexes.

    • SINDEX - AER-1889 - bug - failure to load sindex due to incorrectly looking up setname of the sindex, introduced in AER-1752.

    • SINDEX - AER-1927 / AER-1896 - Use the correct accounted value of new and old bin value for sindex update while freeing the bins up.

    • UDF - AER-1485 - Correctly return Aggregation UDF error back to the calling client.

    • CONFIG - AER-1546 - get-config should understand context like namespace,service,network,xdr etc.

    • GRAPHITE - AER-1330 - Enhancements to graphite tool.

    • AQL - AER-1488 - Adding checks to catch udf register/show/remove errors in aql.

    • AQL - AER-1697 - Fix for string-name length in aql/asql.

    • AQL - AER-1685 / AER-1653 - Fix for intermittent AQL connectivity failures.

    • SCRIPT - AER-1539 - enhancements to fixownership.py script for migrating system from root user to non-root user.

    • BACKUP - AER-1734 - Removed the 'concurrent' flag set by backup tool in scan parameters as it scans each node on its own.

    • ASMONITOR - Issue on debian: if the language pack supporting the system locales is not installed, asmonitor will fail. As a workaround until this issue is addressed, ensure that the language packs supporting your system locales are installed. You can check your locale values using: $ env | grep LC You can then configure the missing locale using 'sudo dpkg-reconfigure locales' and then install the required language pack as per your locale. For more details on locale, see https://wiki.debian.org/Locale .

  • 3.1.3
    Release Date: January 2 2014

    128 Byte storage enhancement. Recover up to 75% of your persistent storage (for integer records). There is a known issue for SSD with sizes greater then 512 GB. Also, downgrading to 3.0.X requires disks to be zeroised.

    This release also adds support for running as a non-root user.

    Fixes

    • KVS - When ‘any’ is set as heartbeat address, list on all the interfaces. (Earlier behavior was to listen only on the non-loopback IP of the machine.)

    • KVS - AER-1644 – fix touch operations with data-in-index set to true.

    • KVS - AER-1556 – changed owner of /var/log/aerospike for rpm/deb packages.

    • KVS - Automate cold start speedup by saving eviction depth. Save write-block-size for sanity check during startup.

    • KVS - Return meta data of the record (ttl, gen) for single key-get with NOBINDATA flag.

    • KVS - AER-1670 – Make asd start-able with non-privileged user.

    • KVS - AER-1382 – First log file is created as root for non-root asd run.

    • KVS - AER-1594 – Fix msgpack unpack of map failure.

    • KVS - AER-1714 - Resolve server crash when new node joins a cluster.

    • SINDEX - Sindex ticker tscan_get_scan_type() related changes.

    • SINDEX - Addition of si-memory for boot-populate-all from ns stats, removal of elapsed-time from ticker.

    • SCRIPT - AER-1539 - Script for fixing permissions for non root operation.