What's new
5.4.113 (54101) - 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[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 middle 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[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[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[SNMP]
added request per second (5s rate)[Subscriptions]
fixed issue with concurrent connections not being cleaned up properly[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
Client API
[Changes]
introduced a 15s timeout to connect to WS to avoid infinite hangs in some cases when there are network issues[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
[Patching]
added the ability to disable max statements count- added CSRF protection
5.4.112 (54092) - 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)[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[HTTP]
switched inter-server communication from HTTP/1.1 to HTTP/2 protocol[HTTPS]
switched to 'SslStreamCertificateContext' to improve SSL authentication performance on Linux[Indexes]
added support for equality comparers for floats and decimals in static indexes[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[Subscriptions]
fixed possible NRE when processing concurrent subscriptions with criteria[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'[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
5.4.111 (54083) - 2023/10/03
Server
[ETL]
fixed change detection in Queue ETL[ETL]
better handling of cancellation tokens during 'InitTransactions' call[ETL]
disposing producer on a failed 'InitTransactions' call[Indexes]
fixed issue with enabling auto indexes after they were disabled cluster wide[Revisions]
fixed possible NRE when enforcing revision configuration on tombstones[Subscriptions]
memory optimizations while processing subscription documents[.NET]
updated to .NET 7.0.11
Studio
[Migrations]
allow 'srv' in mongo connection string
5.4.110 (54077) - 2023/09/12
Server
[Backup]
fixed issue with aborting One-Time backup not killing the operation[Backup]
fixed edge case where backup would not failover properly if no successful backups are done[Backup]
fixed edge case where backup status would not be updated if database is idle[Backup]
blocked deletion of database if restore is in progress[Configuration]
added 'Http.Http2.MaxStreamsPerConnection' and set it to unlimited value[Cluster]
fixed issue with HIGH CPU when there is a single node cluster[Cluster]
dedicated thread for cluster transaction execution[Documents]
fixed issue with huge documents not showing the ID of the document in some case[Indexes]
added support for 'default(DateTime)'[Linux]
detecting running close to OS limits (notification and SNMP endpoint)[Querying]
projections will return '@id' property for simple projections with loaded documents returned[Querying]
decreased memory usage when streaming compressed documents[Replication]
decrease memory used when large number of compressed documents/revisions is skipped[Revisions]
removed the need to decompress the revision when training a compression dictionary[Revisions]
fixed various cases when revisions are being created or purged[Revisions]
added ability to enforce configuration for specified collections only[Revisions]
changed default number of conflicted revisions from unlimited to 1024 and added a notification if we exceed that number[Subscriptions]
decreased the cluster pressure for ACK commands[Subscriptions]
fixed issue with removing database would not clear all of the subscription states[.NET]
updated to .NET 7.0.10
Client API
[Bulk Insert]
will send heartbeats to keep operation alive (requires server update as well)[HTTP]
properly taking into account if node is in Rehab when failover is happening[Operations]
fixed issue with 'WaitForCompletion' hanging when operation is aborted but additional task is not[Session]
fixed issue with metadata properties starting with '@' got cleared after 'SaveChanges'[Session]
fetch atomic guard of a missing document in cluster transaction to avoid desync of atomic guards (requires server update)[Querying]
allow Proximity search 0
Studio
[Backup]
removed the ability to delay one-time backup[Backup]
added copy button to restore log
5.4.109 (54071) - 2023/08/01
Server
[Attachments]
when 'WaitForIndexesAfterSaveChanges' is used - attachments and their parent document collections are taken into account[Backups]
support for 'Refresh' in Smuggler[Backups]
Smuggler now skips Counters, Time Series, etc when parent document is being skipped via TransformScript[Backups]
file name and counters are added to restore progress[Cluster]
fixed issue with compare exchange tombstones not being cleaned when replication factor is less than number of nodes in the cluster[Cluster]
sending early to the Client API that topology (Cluster and Database) needs to be updated[Configuration]
setting 'Databases.MaxIdleTimeInSec' can now also be set per database[Connection Strings]
validating factory name before connection string is added[Import]
added ability to add reference key to embedded object[Indexes]
optimized Bloom Filter performance and indexing time of the first indexing batch[Indexes]
fixed issue with Counter indexes not indexing counter group when batch is being canceled due to low memory[Indexes]
optimized memory (managed and unmanaged) allocations in Lucene[Indexes]
added support for more expression types in Index Cleanup[Linux]
fixed cgroup parsing issue on newer Ubuntu[Monitoring]
added Prometheus integration[Operations]
avoid using HttpContext.RequestAborted cancellation token for background operations - it is being reused by the ASP.NET and can cause early operation cancellation[Querying]
fixed issue with projection function returning incorrect document ID and ability to project transitive dependencies[Querying]
decreased the amount of cached loaded documents to 16k when projection is used[Querying]
support for surrogate characters in alphanumerical sorting[Revisions]
fixed issue with forced revision not marking a document with HasRevisions flag and replication of such documents[TCP]
correctly detect using which address (internal or external) connection should be made[Tombstones]
better notification when tombstones cleaner is getting stuck because of a disabled background task[Voron]
fixed possible AVE in DecompressionBuffersPool.GetPage[.NET]
updated to .NET 7.0.9
Client
[HiLo]
exposed 'GenerateDocumentIdAsync' in 'IHiLoIdGenerator'[HTTP]
fixed possible NRE in NodeSelector when FastestNode mode is used[HTTP]
avoid leaking HTTP request when speed test is being performed when FastestNode is used[Indexes]
fixed issue with generation of index with nested dictionaries[Operations]
added 'Kill' and 'KillAsync'[Session]
ability to pass HighlightingOptions via DocumentQuery