[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
[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
[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