What's new

6.0.2 (60005) - 2023/12/27

Server

  • [Attachments] do not throw a concurrency exception on a partial update with valid expected change vector
  • [Backups] fixed issue with restoring subscriptions when snapshot with incrementals is used
  • [Backups] support for Direct Upload for Azure
  • [Backups] added the ability to continue exporting of documents when corrupted data is encountered
  • [Backups] avoid downloading Snapshot file twice in some cases
  • [Corax] fixed issue with index entries existence after deleting all documents
  • [Corax] when primitive is being used we need to change sorting guarantees dynamically
  • [Cluster] fixed issue with high CPU usage when watcher is waiting for a leader to come up
  • [Cluster] allow to promote rehab node
  • [Cluster] stability improvements when node is moved into rehab and grace period kicks in
  • [Compare Exchange] write result of each cluster command attempt on its own context to avoid using disposed context during failover
  • [Compression] fixed 'End of Central Directory record could not be found' on creation of recovery dictionaries
  • [Compression] fixed issue with using non-compressed schema for a compressed document and the other way around, that could happen if compression is changed in a midle of merged transaction
  • [Compression] fixed issue with missing compression dictionary
  • [Configuration] switched default value of 'Http.AllowResponseCompressionOverHttps' to true
  • [ETL] changed order of elements of Transactional ID used by Kafka ETL producer for easier ACL configuration
  • [ETL] allow to define optional Cloud Event attributes in Queue ETL
  • [ETL] fixed 'ArgumentOutOfRangeException' for 'GetOngoingTaskInfoOperation' when OngoingTaskType is QueueSink
  • [HTTP] added support for zstd compression
  • [Indexes] start tombstone cleaner only after indexes are initialized to avoid cleaning tombstones that were not processed by indexes
  • [Indexes] handle nested reduce result of a reduce key properly
  • [Indexes] properly handle dates stored as JsString in JavaScript Map-Reduce indexes to avoid lowercasing them
  • [Power BI] skip getting unchecked property value for document which does not have the property
  • [Querying] fixed possible NRE when highlighting is used in Corax
  • [Revisions] fixed issue with enforce revisions configuration throwing 'InvalidOperationException' on a collection that does not exist anymore
  • [Revisions] added the ability to adopt orphaned revisions
  • [Revisions] fixed fetching revisions from revision bin, introduced a breaking change due to old API being unusable
  • [Revisions] properly handle out of date revisions when they are not ordered by date and enforce revision configuration is being used
  • [Sharding] properly handling shard removals
  • [Sharding] properly handling disabled database in sharded subscription
  • [SNMP] added request per second (5s rate)
  • [Subscriptions] fixed issue with concurrent connections not being cleaned up properly
  • [Subscriptions] fixed invalid JSON returned from Subscriptions test when include is used
  • [System] added file locker to prevent initializing system store concurrently
  • [Time Series] fixed aggregation with time zone offsets
  • [Unused Database IDs] added server-wide validation
  • [.NET] updated to .NET 7.0.14

Client API

  • [Bulk Insert] fixed heartbeats implementation
  • [Changes] introduced a 15s timeout to connect to WS to avoid infinite hangs in some cases when there are network issues
  • [HTTP] added support for zstd compression
  • [Indexes] handle C# reserved keywords correctly
  • [Querying] throwing an exception when streaming document collection query with includes
  • [Session] fixed possible AVE in WhatChangedFor
  • fixed issue with failover not grabbing the topology from all of the does, which could result in using old topology
  • fixed issue on .NET Framework with DecimalHelper missing field when reflection is used
  • simplified speed check algorithm to perform tests once per minute

Studio

  • [Indexes] added the ability to sort indexes by creation time
  • [Patching] added the ability to disable max statements count
  • added CSRF protection
  • various fixes and styling improvements

6.0.1 (60003) - 2023/11/14

Breaking changes

  • [Backups] compression algorithm was changes from gzip/deflate to zstd, which might introduce some backward compatibility concerns. Please read the 'Backward compatibility' section in this article to get more information.

Server

  • [Backups] switched to zstd compression algorithm for all backup types and exports. More info here
  • [Backups] added 'Direct Upload' mode. More info here
  • [Cluster] fixed issue with single-node cluster setting it's commands version to 0
  • [Configuration] added configuration option 'Backup.Compression.Algorithm' was introduced (Zstd by default)
  • [Configuration] added configuration option 'Backup.Compression.Level' was introduced (Fastest by default)
  • [Configuration] added configuration option 'Backup.Snapshot.Compression.Algorithm' was introduced (Zstd by default)
  • [Configuration] added configuration option 'Backup.Snapshot.Compression.Level' was introduced (Fastest by default)
  • [Configuration] added configuration option 'Export.Compression.Algorithm' was introduced (Zstd by default)
  • [Configuration] added configuration option 'Export.Compression.Level' was introduced (Fastest by default)
  • [Corax] fixed issues in internal structures that could result in an indexing error or crash due to Access Violation Exception
  • [Corax] fixed highlighting on queries with projections
  • [Corax] fixed TotalResults in order by queries with paging
  • [Corax] fixed queries using ContainsAll
  • [Corax] fixed crash on ARM
  • [Corax] fixed infinite loop on ARM
  • [Corax] fixed facet queries
  • [Corax] fixed storage report for Corax indexes
  • [Corax] fixed JS projections
  • [ETL] fixed error handling and TransactionalId generation for Kafka ETL
  • [ETL] fixed issue with ETL not entering fallback mode when cluster is unstable, resulting in sending the same batch again
  • [ETL] fixed secured channel detection for RabbitMQ and Kafka ETLs
  • [ETL] upgraded Elasticsearch Client to version 8
  • [Expiration] fixed issue with editing expiration/refresh date causing loop and high CPU usage
  • [HTTP] switched inter-server communication from HTTP/1.1 to HTTP/2 protocol
  • [HTTPS] switched to 'SslStreamCertificateContext' to improve SSL authentication on Linux
  • [Indexes] added support for equality comparers for floats and decimals in static indexes
  • [Indexes] throwing an exception when unrecognized indexing option is set in index configuration
  • [Licensing] fixed issue with force update of expired license not returning unsuccessful state to the user
  • [Licensing] properly detect revision compression when switching a license to Community
  • [Replication] validate if certificate has write permissions
  • [Replication] fixed issue with attachment streams existence for documents when conflicts are being solved manually
  • [Replication] fixed issue with deletion of non-replicated tombstones
  • [Replication] fixed issue with missing revision tombstones, because revision polices are being applied
  • [Sharding] fixed issue with toggling subscription state for sharded database
  • [Voron] fixed possible AVE when doing background flushes
  • [Voron] fixed AVE during compaction on x86 or when we surpass MaxScratchBufferSize
  • [.NET] updated to .NET 7.0.13

Client API

  • [Compatibility] fixed FHIR compatibility
  • [HTTP] switched Gzip compression mode to 'Fastest' from 'Optimal'
  • [Indexes] fixed issue with 'SearchEngineType' not being taken into account when index inherits from 'AbstractJavaScriptIndexCreationTask' and 'AbstractMultiMapIndexCreationTask'
  • [Querying] fixed issue with missing parenthesis when combining 'Where' and 'Any' clauses when querying using LINQ
  • [Querying] fixed query hash calculation for empty string parameters
  • [Session] added 'WhatChangedFor'

Studio

  • [Querying] added the ability to set Projection Behavior when querying
  • [Kafka] fixed issue with setting Kafka Connection String with plain certificate

6.0.0 (60002) - 2023/10/02

Features

  • [Corax] new search & indexing engine. More here
  • [Sharding] added 'sharding' feature. More here
  • [Queue Sinks] added Kafka and RabbitMQ sink. More here
  • [Data Archival] added 'data archival' feature. More here

Upgrading from previous versions

  • 4.x and 5.x licenses will not work with 6.x products and need to be converted via dedicated tool available here. After conversion license will continue working with previous versions of the product, but can be also used with 6.x ones.
  • please refer to our Server migration guide before proceeding with Server update and check our list of Server breaking changes available here and Client API breaking changes available here

Server

  • [Backups] switched FTP backup implementation to use 'FluentFTP'
  • [Configuration] changed default 'Indexing.OrderByTicksAutomaticallyWhenDatesAreInvolved' value to 'true'
  • [ETL] OLAP ETL uses latest Parquet.Net package
  • [ETL] removed load error tolerance
  • [Graph API] removed support
  • [Indexes] new auto indexes will detect DateOnly and TimeOnly automatically
  • [Indexes] added the ability to 'test index'. More here
  • [JavaScript] updated Jint to newest version
  • [Monitoring] added OIDs to track certificate expiration and usage
  • [Querying] when two boolean queries are merged in Lucene, boosting should be taken into account properly to avoid merging queries with different boost value
  • [Voron] performance improvements

Client API

  • [Compare Exchange] added support for creating an array as a value in 'PutCompareExchangeValueOperation'
  • [Compare Exchange] compare exchange includes should not override already tracked compare exchange values in session to match behavior of regular entities
  • [Conventions] HttpVersion was switched to 2.0
  • [Conventions] removed 'UseCompression' and introduced 'UseHttpCompression' and 'UseHttpDecompression'
  • [Conventions] introduced 'DisposeCertificate' with default value set to 'true' to help users mitigate the X509Certificate2 leak. More info here
  • [Database] introduced 'DatabaseRecordBuilder' for more fluent database record creation
  • [Facets] removed FacetOptions from RangeFacets
  • [Graph API] removed support
  • [Patching] JSON Patch will use conventions when serializing operations
  • [Session] private fields no longer will be picked when projecting from type
  • [Session] taking into account 'PropertyNameConverter' when querying and determining field names
  • [Session] when a document has an embedded object with 'Id' property we will detect that this is not root object to avoid generating 'id(doc)' method there for projection
  • [Session] no tracking session will throw if any includes are used
  • removed obsoletes and marked a lot of types as sealed and internal
  • changed a lot of count and paging related properties and fields from int32 to int64

Studio

  • [Dashboard] removed Server dashboard
  • [Design] refreshed L&F

Test Driver

  • added 'PreConfigureDatabase' method

Other

  • [Containers] docker will use non-root user. More info and migration guide here