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