What's new

5.4.105 (54058) - 2023/06/20

Server

  • [Backups] setting 'Exec' and 'Arguments' in 'GetBackupConfigurationScript' now requires Operator security clearance or higher
  • [Configuration] added 'Memory.GC.LargeObjectHeapCompactionThresholdPercentage' configuration option
  • [Configuration] added 'Indexing.Lucene.ReaderTermsIndexDivisor' configuration option
  • [Documents] fixed issue with 'page size to big' notification not showing all necessary IDs that were requested
  • [ETL] fixed issue with Raven ETL failing to send document that has timeseries and attachments
  • [Indexing] fixed issue with EarlyOutOfMemoryException not being threated as out of memory exception in indexing for encrypted databases
  • [Indexing] fixed issue with Auto indexes with Spatial fields not reading Spatial options properly on database load
  • [Linux] support for cgroups v2
  • [Memory] compacting LOH when its size exceeds 25% of total memory
  • [Monitoring] exposed LOH size after last garbage collection in SNMP monitoring with following suffix '1.6.11.x.16.3' where 'x' is a GCKind
  • [Patching] increased performance of patching by avoiding cloning args each time
  • [Querying] fixed possible AVE issue when during query execution low memory event was triggered
  • [Querying] fixed issue with boost not being applied when QueryClauseCache is enabled
  • [Querying] fixed invalid size unit in 'page size too big' performance hint
  • [Querying] fixed issue with query parameters not being send when exporting query results to CSV
  • [Querying] decreased the memory footprint when querying on an encrypted database
  • [Querying] support for int64 results in collection queries
  • [Replication] fixed edge case of an attachments conflict on a cluster wide transaction document
  • [Replication] fixed Hub-Sink issues with attachment and tombstone processing
  • [Subscriptions] fixed connection task leak possible when a lot of reconnections are happening
  • [Tombstones] displaying a notification when some of the tombstone subscribers are turned disabled causing tombstone removal to stop
  • [Voron] added flushing time to slow write notification
  • [Voron] fixed issue with Voron leaving a lot of 0 length scratch files behind if there is no disk space
  • [Voron] added thread ID and name to all read transactions for easier debugging
  • [Voron] decreased memory footprint for encrypted database when generating storage report
  • [.NET] updated to .NET 7.0.7

Client API

  • [Querying] fixed issue with boost not being applied to appropriate subclause when subclauses are nested

Studio

  • [Documents] display that document was saved by cluster transaction
  • [Import] fixed issue with opening 'From SQL' tab in the import view
  • [Traffic Watch] allow to pass specific client certificate thumbprints in filters
  • [Traffic Watch] will include query timings when opened

5.4.104 (54049) - 2023/05/12

Server

  • [Backups] fixed issue with restore not taking into account the 'Backup.TempPath' configuration option
  • [Backups] fixed backup status for offline and not modified database
  • [Backups] fixed issue with delaying backup not appropriately decreasing the semaphore for max number of concurrent backups
  • [Backups] can cancel now Backup during Retention policy execution
  • [Backups] fixed issue with the Delay date not being updated properly after we delay a backup
  • [Configuration] added 'Indexing.NuGetAllowPreleasePackages' configuration option
  • [Configuration] added 'Cluster.MaxClusterTransactionBatchSize' configuration option
  • [Cluster] fixed issue with 'ClusterTransactionIdBase64' and 'DatabaseTopologyIdBase64' being set to null after 'HardResetToNewCluster' is executed
  • [Configuration] fixed issue with identity parts separator not getting the default value when client configuration gets disabled
  • [ETL] added MySqlConnector support for SQL ETL and Import from SQL
  • [Indexes] added the ability to use prerelease NuGet packages in indexes when 'Indexing.NuGetAllowPreleasePackages' configuration is set to true
  • [JavaScript] decreased number of allocations when patching arrays
  • [JavaScript] only inject parameters into JavaScript engine that are required by the function
  • [Logging] fixed possible issue with Microsoft Logs bein disabled, yet still getting written
  • [Logging] added all backup, ETL, connection string configuration changes to the audit log
  • [Migration] added option to migrate non-public schemas
  • [Replication] decreased the memory footprint for replication process by early releasing memory of the replicated items
  • [Replication] disabling external replication should not allow deletion of tombstones
  • [Subscriptions] fixed issue with subscriptions not getting appropriate value when 'LastDocument' is set as change vector and the last document comes from external replication
  • [.NET] updated to .NET 7.0.5

Client API

  • [JSON] added nested generic types support to 'DefaultRavenSerializationBinder'
  • [HTTP] fixed a race condition when spawning a node health check and simultaneously timeout and topology update occurs
  • [HTTP] fixed HTTP Cache possible memory leak
  • [RQL] fixed issue with using 'RavenQUery.Raw' without 'select new' and query ignoring the raw content
  • [RQL] fixed issue with alias not being appended to 'OrderBy' clause when 'DocumentQuery' is used

Studio

  • [Debug] added additional options for collection of Debug information
  • [Client Configuration] allow to set both 'use session context' and 'read balance behavior'
  • [Cluster] added memory information explanations
  • [Database] added the ability to restart a database
  • [Documents] fixed issue with downloading huge document as text, instead of JSON

5.4.103 (54038) - 2023/03/30

Server

  • [Let's Encrypt] fixed issue with retrieving a certificate due to compatibility problem with upcoming Let's Encrypt API changes

5.4.102 (54037) - 2023/03/27

Server

  • [Backups] fixed possible desync of backup status between nodes
  • [Backups] fixed issue with saving a server-wide backup when any of the database is idle
  • [Backups] during Restore we should not hold read transaction (held by atomic guards) for a long time to decrease scratch file size
  • [Backups] fixed potential NRE when importing old dump file without Indexes History
  • [Changes API] created optimized channel for aggressive cache usage
  • [Configuration] added 'Security.WellKnownIssuers.Admin' configuration
  • [Debug] added the ability to collect debug package only for server or per database
  • [ETL] added stop reason to OLAP ETL statistics
  • [ETL] fixed issue with disabling an ETL task when in fallback mode
  • [ETL] fixed 'Failed to parse' issue when registering behavior function in a script engine when script contains GlobalObject
  • [Indexes] fixed regression and using a different approach to fix potential problems with JS or multi map-reduce indexes not preserving the order of hashing of reduce key values
  • [Indexes] fixed regression with proper detection of dynamic fields in JavaScript indexes
  • [Indexes] added certificate info to index history view
  • [Indexes] added support for .NET 7 'TimeOnly' increased precision
  • [Indexes] fixed issue with extraction of collection name for more index types
  • [Logging] added the ability to enable Kestrel logs
  • [Memory] releasing allocated compressed value when deleting a document with a lot of revisions
  • [Memory] added Zswap and Zswapped to memory info reader on Linux due to 'top' displaying only first 15 chars
  • [Memory] fixed possible memory leak when storage compaction is being used
  • [Querying] fixed issue with timings not working when metadata comes from query metadata cache
  • [Querying] fixed issue with accessing a disposed object when (id) when 'load' is used in RQL and value is used during projection more than once
  • [Querying] fixed internal cache issue which could result in returning invalid query results for certain query types
  • [Replication] when entire Time Series is being deleted, we should not update the document's metadata to avoid creating a conflict on the document
  • [Replication] when document with Time Series is being deleted, we should create a DeletedRange to prevent possible inconsistency between Time Series on database nodes
  • [Setup] added Ubuntu 22.04 DEB package
  • [Threading] using shorter thread names on Linux
  • [.NET] updated to 7.0.4

Client API

  • [Conventions] added 'CreateHttpClient' and 'HttpClientType' conventions
  • [Changes API] optimized changes API for aggressive cache usage (requires both server and client update)
  • [JSON] added support for .NET 7 'TimeOnly' increased precision
  • [JSON] added 'DefaultRavenSerializationBinder' which will throw for known .NET RCE Gadgets when they are used in '$type' field and deserialization needs to use value from this field to find a type
  • [Querying] fixed issue with generation of JS projection when '.ToDictionary' is used in LINQ select
  • [Querying] fixed regression that did not allow to select after project into
  • [Session] added Refresh(IEnumerable<T> entities) overload
  • [Subscriptions] fixed possible memory leak in subscription worker when we fail to process incoming batch

Studio

  • [Backups] sending appropriate value when Delay is executed
  • [Dashboard] fixed issue with graphs not displaying time when hovered
  • [Replication] disabled sink to hub replication in the UI when server is unsecured
  • [Memory] exposed total SWAP and SWAP used in the dashboard

Other

  • [Docker] added Windows LTSC 2022 docker images

5.4.101 (54032) - 2023/02/13

Server

  • [Backup] Added ability to cancel and delay server-wide backups by Operator
  • [Certificates] Using UTC time when validating the certificate for developer license
  • [Changes API] Added the timeout for sending a message and clearing messages in the queue when we're in low memory
  • [Cluster] Fixed the maintenance of the order of nodes in a database group after a node gets online
  • [Cluster] Using TCP compression for the cluster communication
  • [Cluster] Fixed negotiation boundaries based on the negotiation PrevLogIndex
  • [Configuration] Marking 'Logs.Microsoft.ConfigurationPath' as read only so it won't attempt to create a file in the default location
  • [Corax] Fixed querying with order by
  • [Corax] Memory usage and performance improvements
  • [Debug] Fixed serialization of GC dump output
  • [Debug] Fixed Debug Package created by for the whole cluster
  • [ETL] Added getRevisionsCount() method available during execution of an ETL script
  • [HTTP] Fixed HTTP response compression when performing lazy load
  • [Indexing] Fixed edge cases in the Index Merger
  • [Indexing] Fixed loading multiple attachments using LoadAttachments function with the usage of Select
  • [JavaScript] Added support for spread operator JS indexes and Patching
  • [Import] Added alerts when skipping configuration for a conflict solver, time series or revisions during the import because they already exist
  • [Import] Fixed import of a CSV file with empty column names
  • [Memory] Fixed an issue with allocating less than allocation unit
  • [Memory] Purging the Lucene's field cache for order by when we are in low memory state
  • [Memory] Fixed calculation of allocated memory in internal allocators
  • [Memory] Added defragmentation mechanism to internal allocators to deal with specific memory allocation patterns
  • [Performance] Improved Smuggler and Patching performance when handling documents with complex nested objects
  • [Querying] Optimized order by queries when ordering by field which is a date
  • [Querying] Added support for count(), key() and sum() methods in JavaScript projections when using dynamic group by queries
  • [Querying] Fixed a bug where only identity RQL projection would work on document loaded from reference existing only in the index
  • [Subscriptions] Sending noop ACK cluster command once per state
  • [Smuggler] Added ability to import / export history of indexes
  • [Time Series] Improved memory usage when processing large number of time series during ETL and indexing
  • [Time Series] Fixed potential AccessViolationException on restoring time series from a backup file (regression introduced in 5.4.100)
  • [Time Series] Improved memory usage during import of time series
  • [.NET] Updated to .NET 7.0.2

Client

  • [Cluster Transactions] Fixed throwing ClusterTransactionConcurrencyException after the failover when using cluster-wide transactions
  • [Querying] Fixed 'declared function' chopped by IAsyncDocumentQueryBase.ToQueryable
  • [Querying] Fixed comparison of field names for projections. We need to do it in case sensitive manner
  • [Querying] Added AsAsyncEnumerable to RavenQueryableExtensions
  • [Querying] Fixed direct Projection of Array from document
  • [Serialization] Prevented ISerializable support by default in the serializer
  • [Subscriptions] Fixed an issue that metadata was not tracked in the subscription session
  • [Time Series] Deleting time series entry should affect the cache

Studio

  • Added on/off switch to disable index optimize during compact operation
  • Fixed column name on Index Errors view