What's new
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]
addedRefresh(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]
AddedgetRevisionsCount()
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 forcount()
,key()
andsum()
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
5.4.100 (54027) - 2023/01/09
Server
[Backup]
Fixed issue with a backup status after changing the type of a backup[Backup]
Changed the order in which we perform the snapshot backup - first the indexes then the documents[Backup]
Fixed issue with calculating the space required for snapshot backup if indexes were excluded[Backup]
Fixed memory usage during backup with time series[Configuration]
AddedIndexing.MinimumTotalSizeOfJournalsToRunFlushAndSyncWhenReplacingSideBySideIndexInMb
[Configuration]
AddedHttp.KeepAlivePingTimeoutInSec
andHttp.KeepAlivePingTimeoutInSec
[Corax]
Query execution performance improvements[Corax]
Support ticks in date queries[Corax]
Introduced index-level boosting[Cluster]
Fixed the format of atomic guard values used by Cluster Transactions and block using them via the session[Cluster]
Improved handling of a database shutdown[Debug]
Added info regarding the GC operation to/admin/memory/gc
handler[ETL]
Added ability to enable compatibility mode when sending documents to Elasticsearch[ETL]
Fixed handling of scripts containinggetMetadata()
and delete behavior functions[ETL]
Fixed high unmanaged memory usage when filtering out docs during ETL[Indexing]
Fixed handling of Distinct() with mixed values of string and LazyStringValue types[Indexing]
Improved handling of replacement of side-by-side index by waiting for journals to be flushed[Indexing]
Fixing unhandled case in the index suggestions merger[Indexing]
Fixing potential problems with JS or multi map-reduce indexes not preserving the order of hashing of reduce key values[Logging]
Enhancements in the cluster logging to improve logs readability[Logging]
Added schema upgrades progress to the init log[Logging]
Added ability to get internal Microsoft logs (in particular Kestrel logs)[Logging]
Added details to the PutIndexCommand logging[Monitoring]
Fixed the issue that average request time stays on last value if traffic moves to an another node[Patching]
Reduced JsString allocations in patching[Performance]
Improved performance of putting a document[Performance]
Improved performance of deletion of a document[Performance]
Improved performance of scenario with document writes getting ConcurrenyException in the merged transaction[PostgreSQL]
Fixed handling of fields with large values[PostgreSQL]
Better schema generation if first item has null values[Querying]
Fixed regression issue that we stopped detecting enums as server known type during indexing[Querying]
FixingWaitForNonStaleResults
for Time Series and Counters[Revisions]
Revert revision per collection[Replication]
Fixed very high memory usage when replicating a big transaction and using encryption[Replication]
Ensure replication is working from a node in rehabilitation[Smuggler]
Added ability to import just one collection[Subscriptions]
Subscription worder will continue to retry onDatabaseDisabledException
andAllNodesTopologyDownException
[TimeSeries]
Improved memory usage when importing .ravendump with high number of time series to an encrypted database[TimeSeries]
Fixed clone document with a rollup time series[.NET]
Updated to .NET 7.0.1
Client API
- [Session] Making sure that the HiLo number we got is used with the server node tag it came from to avoid duplicate ids
- [Indexing] Prevent transforming additional method into extended method in index definition rewriter
- Added AggressivelyCacheForAync to avoid sync usage in async manner
Studio
- Fixed visibility of time series requests on studio dashboard
- Allow to cleanup tombstones from the studio
- Fixed showing of guids in related documents list
- Endpoint
/databases
became lighter to improve performance of databases view
5.4.5 (54018) - 2022/11/21
Server
[Attachments]
prevent saving attachments inside a batch for documents with server-side generated IDs[Backup]
optimized cluster transaction restore performance[Backup]
added the ability to exclude indexes for Snapshot backup[Backup]
after restore database will be automatically loaded to apply the journals[Backup]
using 'Backup.TempPath' for one time backups[Backup]
optimized memory during restore/import of Time Series to an encrypted database[Batch]
fixed issue with waiting for indexes not working when batch is a cluster transaction[Corax]
added support for Range facets[Cluster]
fixed possibility of Cluster Transaction application hanging after Database is being initialized[Cluster]
introduced dedicated commands for processing client/studio/settings configurations to avoid using database record updates all the time, which need much more processing than other commands[Certificates]
allow to start the server with expired certificate to allow certificate refresh to take place[ETL]
added support for providing SQL provider specific parameter types in SQL ETL scripts[Indexes]
added support for file-scoped namespace declarations in additional sources[Indexes]
fixed issue with optimize hanging during index compaction[Licensing]
fixed issue throwing a 'LicenseLimitException' when asserting PostgreSQL license limit, even if license has this feature enabled[Multi Get]
fixed issue with multi-get requests not respecting client timeout[PostgreSQL]
disposing documents transaction properly after handling query[Querying]
fixed IndexOutOfBoundsException when skip is greater than number of results in index after Distinct is used[Querying]
expose @spatial metadata for JavaScript projections[Replication]
delay replication on missing attachments[Voron]
do not change valid pages if the page checksum or number is invalid[.NET]
updated to .NET 6.0.11
Client API
[Bulk Insert]
throw NotSupportedException on attempt to insert Incremental Time Series[Events]
invoke 'OnAfterConversionToEntity' event after entity has been tracked so methods like 'GetMatadataFor' can be used inside the event[Querying]
added support for case-sensitive string comparisons in LINQ[Querying]
fixed issue with SELECT clause containing unnecessary aliases for methods[Session]
fixed possible NRE when updating compare exchange metadata in the session[Session]
allow incrementing Time Series multiple times in the same session[Session]
added Typed Incremental Time Series API[Subscriptions]
forbid opening more than one session per each subscription batch
Studio
[Cluster Dashboard]
added average request time per database[Index Merge Suggestions]
added view[Querying]
removed dynamic fields from RQL code assistance[Thread Info]
added websockets for live updates