RavenDB

Released: Jul 23, 2020

Updates in v5.0.x

v5.0.6 (Build 500209)

Updated Dec 1, 2020

Features

  • Server
    • [Querying] increased performance and decreased memory usage of collection queries with where clauses for operations (e.g. patching by collection or deleting by collection).

Fixes

  • Server
    • [Compression] fixed possible data corruption that could manifest when compression is used.
    • [Encryption] fixed memory leak that occurred when encryption was used.
  • Client API
    • [Querying] fixed NRE that could occur during streaming of query results.

v5.0.5 (Build 50019)

Updated Nov 16, 2020

Features

  • Server
    • [Microsoft .NET Core] updated to 3.1.10.
  • Studio
    • [Backups] allows you to export revisions even when revision configuration is disabled.

Fixes

  • Server
    • [Querying] fixed endless query issue when optimized IN is done against more than 128 items inside the IN operator.
    • [Threading] fixed race condition in background workers that could occur under high memory conditions that could result in background task not ending.
    • [Storage] fixed possible NRE in decompression buffers that could occur under low disk space conditions.
  • Client API
    • [Querying] fixed possible infinite recursion that could occur during query hash calculation.
    • [Querying] fixed issue with hashing parameter of type 'Type'.
  • Studio
    • [About] disabled renew license button when user does not have sufficient privileges.
    • [Ongoing Tasks] fixed dirty flag behavior.

v5.0.4 (Build 50017)

Updated Nov 10, 2020

Features

  • Server
    • [Backup] allow to export and import revisions without a configuration set.
    • [Configuration] added 'Server.ThreadPool.MinWorkerThreads' and 'Server.ThreadPool.MinCompletionPortThreads'.
    • [Configuration] added 'Server.ThreadPool.MaxWorkerThreads' and 'Server.ThreadPool.MaxCompletionPortThreads'.
    • [Configuration] added 'Storage.Encrypted.DisableBuffersPooling'.
    • [Configuration] added 'PerformanceHints.Memory.MinSwapSizeInMb'.
    • [Configuration] added 'Indexing.Metrics.Enabled'.
    • [Client Configuration] reduced number of Client API updates.
    • [Encryption] switched encryption buffers pool to per core model and avoid over allocating.
    • [Indexing] properly handle output reduce to collection for Time Series and Counter indexes.
    • [JSON] better handling of property caches to decrease the amount of memory used.
    • [Monitoring] added TCP connections OID to SNMP.
    • [Performance] added minimum SWAP size performance hint.
    • [Querying] increased performance of queries containing excessive number of parameters in 'in' clause.
    • [Querying] added 'addTimeSeriesNames' parameter.
    • [Querying] allow to boost of complex queries.
    • [Patching] using appropriate context when patching on counters.
    • [RQL] support for using 'search' on 'id()'.
    • [Replication] preserve the order of replicated items when destination has revisions configuration.
    • [Schema] bumped Documents Schema to '50002'.
    • [Subscriptions] added support for @all_docs subscription with revisions.
    • [Threading] increased default number of Thread Pool min threads to 4xCPU on x64 and 2xCPU on x86.
    • [Time Series] added 'yyyy-MM-ddTHH:mm:ss.fffZ' time format support.
    • [Voron] optimized memory utilization for very large amount of voron environments.
    • [Microsoft .NET Core] updated to 3.1.9.
  • Client API
    • [Certificates] added 'EditClientCertificateOperation'.
    • [HTTP] using lighter endpoint to perform health checks.
    • [Querying] allow to boost of complex queries.
    • Added 'AsyncHelpers.UseTaskAwaiterWhenNoSynchronizationContextIsAvailable' option.
  • Studio
    • [Traffic Watch] added the ability to easily copy, paste and execute Traffic Watch queries with parameters.

Fixes

  • Server
    • [Backup] fixed issue with backups not starting after being moved by the cluster.
    • [Backup] fixed NRE when exporting only Subscriptions.
    • [Indexing] fixed issues with creating WKT bases spatial fields in JavaScript indexes.
    • [Replication] fixed issue with Pull Replication sinks going offline when there is work to be done still.
    • [Replication] fixed issues that could occur when Time Series were being send by replication - leaving the replication hanging.
    • [Subscriptions] fixed issue with handling null tokens in where clauses.
    • [Time Series] fixed issue with grouping process taking into account lowest time series date instead of first data point from the query.
    • [Time Series] fixed issue with rollups not being created.
  • Client API
    • [Querying] properly calculate hash for complex objects in query parameters (e.g. when facet options are used).
    • [Session] properly handle already included docs when Lazy Loading is used.
    • [Subscriptions] fixed issue with translating identity property in strongly-typed projections.
    • [Time Series] fixed issue with parsing group by in LINQ queries when grouping by constant.
  • Studio
    • [Compaction] fixed UI issues when compacting only documents.
    • [Database Record] fixed issues with editing database record that contains nested fields.
    • [Support] display proper support plan when running on RavenDB Cloud.

v5.0.3 (Build 50011)

Updated Sep 28, 2020

Features

  • Server
    • [ARM] added support for Linux ARM64.
    • [Backups] exposed FTP upload details.
    • [Backups] reduced amount of work needed for restoring a snapshot.
    • [Backups] reduced memory footprint when exporting a database.
    • [Batching] does not throw when 'WaitForReplicationAfterSaveChanges' is requested but 'throwOnTimeout' is set to 'false'.
    • [Cluster] added 15 second timeout for 'GetRemoteTaskTopologyCommand', 'GetTcpInfoForRemoteTaskCommand', 'GetDatabaseTopologyCommand ' and 'GetTcpInfoCommand'.
    • [Compare Exchange] compare exchange tombstones properly take into account the state of the backups.
    • [Configuration] added 'License.DisableAutoUpdate' and 'License.DisableLicenseSupportCheck'.
    • [Counters] removes unused Database Ids upon counter splitting.
    • [Indexing] Lucene.dll is now signed.
    • [JavaScript] updated Jint.
    • [JSON] parsing decimal value from Blittable JSON should be culture invariant.
    • [JSON] improved hash calculation to reduce the collisions and increase performance.
    • [Licensing] allows starting server with expired license, when new license is added in the configuration.
    • [Querying] does not delete surpassed auto-index when the new one is not up to date.
    • [Storage] improved handling of special characters in collection names.
    • [Subscriptions] adds support for @all_docs.
    • [Subscriptions] adds support for 'in' inside 'where' clause.
    • [TimeSeries] enhanced TimeSeries conflict resolution.
    • [TimeSeries] skips dead segments when doing full backup to reduce amount of work during the restore.
    • [.NET Core] updated to 3.1.8.
  • Client API
    • [Conventions] added ShouldIgnoreEntityChanges.
    • [Operations] exposed 'GetCompareExchangeValuesOperation(string[] keys)' ctor.
    • [Events] exposed 'OnBeforeConversionToDocument', 'OnAfterConversionToDocument', 'OnBeforeConversionToEntity' and 'OnAfterConversionToEntity' in session.
    • [Events] added OnBeforeRequest and OnSucceedRequest events.
    • [Querying] added support for aggresive caching in lazy queries.
    • [Session] added registering known missing Ids on Load.
    • [Session] now properly updates documents' CV in session state after storing an attachment.
    • [Session] Lazy Query correctly invokes OnBeforeQuery.
  • Studio
    • [Database Record] added the toggle to show/hide empty values.
    • [Documents] copes 'TimeSeries' when cloning a document.

Fixes

  • Server
    • [Backups] fixed issue with updating server-wide backup name that could result in creating a new backup task instead of updating existing one.
    • [Backups] fixed possible deadlock scenario in backup runner.
    • [Counters] fixed issue with conflict between new and deleted counter.
    • [Counters] fixed issue with splitting counters containing unicode characters.
    • [Counters] fixed possible overflow issue in distributed counters.
    • [Indexing] fixed possible missing documents in OutputReduceToCollection when there is a duplicate key hash.
    • [Indexing] fixed serialization of projected decimal fields.
    • [Indexing] fixed performance regression for fanout indexes with 'LoadDocument'.
    • [JavaScript] fixed possible NRE in EsprimaVisitor.
    • [Migration] fixed issue with migration of revisions without a document for 3.x.
    • [Querying] fixed issue with killing faceted query - in some cases it could take longer than expected.
    • [Storage] fixed possible NRE that could happen during storage report generation if journal was disposed meanwhile.
    • [Subscriptions] fixed issue with @all_docs subscription not responding to updated documents.
  • Client API
    • [TimeSeries] fixed possible NRE when using 'ForDatabase' in 'TimeSeriesOperations'.
  • Studio
    • [Querying] fixed issue with deleting by query from Studio.
    • various fixes and style enhancements.

v5.0.2 (Build 50009)

Updated Aug 17, 2020

Features

  • Server
    • [Configuration] added 'Server.AdminChannel.Disable'.
    • [Configuration] added 'Server.LogsStream.Disable'.
    • [Configuration] added 'Indexing.ManagedAllocationsBatchSizeLimitInMb'.
    • [Debug] added '/databases/*/admin/configuration/settings' to Debug Package.
    • [Encryption] performance improvements for encrypted databases.
    • [Expiration] allow usage of expiration and refresh at the same time.
    • [Indexing] indexing batch will stop if managed allocations are exceeding threshold defined in configuration
      'Indexing.ManagedAllocationsBatchSizeLimitInMb' (2048 by default).
    • [Patching] added 'timeseries.getStats'.
    • [Querying] avoid infinite loop when 'WaitForIndexesAfterSaveChanges' is used without throwing on timeout.
    • [Replication] added 'RegisterBytesSent' and 'RegisterBytesReceived' to replication statistics.
    • [Revisions] when document is being deleted and it has revisions, but revision configuration was deleted, then we should remove the revisions.
    • [Time Series] throw 'not supported exception' when using 'milliseconds' in first/last.
    • [.NET Core] updated to 3.1.7.
  • Client API
    • [Conventions] added 'IgnoreByRefMembers' and 'IgnoreUnsafeMembers'.
    • [Patching] added support for nullable in strongly-typed patching.
    • [Patching] added support for LINQ in strongly-typed patching.
    • [Querying] added 'string.Compare' support.
    • [Revisions] added 'ForceRevisionCreationFor' to async API.
    • [Serialization] proper handling of 'by-ref' and 'pointer' fields and properties.
  • Studio
    • [Patching] display test information for Counters and Time Series.
    • [Querying] always quote index name when requesting terms.
    • [Time Series] display rollup values in a table.

Fixes

  • Server
    • [Backup] fixed race condition between finishing and setting a new backup.
    • [Backup] fixed issue with restoration of encrypted backups sometimes timing out.
    • [Backup] fixed NRE that could occur when restoring backups using Azure.
    • [Graph API] fixed out of memory when executing recursive graph query on a large graph.
    • [Graph API] fixed 'transaction already opened' when computing etag on a query after data was changed.
    • [Indexing] fixed issue with indexing compare exchange references after they were changed but their etag is lower than last etag of a collection of a mapping function when they were used.
    • [Indexing] fixed possible 'VoronUnrecoverableErrorException' when Map-Reduce index is used.
    • [Indexing] fixed possible 'IndexOutOfRangeException' when Lucene commit is too big.
    • [Replication] fixed issue with attachment stream being deleted when not all revisions with that attachment were replicated.
    • [Subscriptions] fixed issue with subscription not always reconnecting due to race condition.
    • [Time Series] fixed 'ArgumentException' when using 'group by X milliseconds' in Time Series query.
  • Client API
    • [Counters] fixed NRE when retrieving a counter that does not exist.
    • [Indexes] fixed issue with setting a priority in 'AbstractIndexCreationTask'.
    • [Querying] fixed 'reference scope' error when filtering and projecting sub-collection.
    • [Subscriptions] fixed issue with subscription not always reconnecting due to race condition.
  • Test Driver
    • fixed issue with deleting some temporary directories when database is running in memory.

v5.0.1 (Build 50008)

Updated Aug 5, 2020

Fixes

  • Server
    • [Indexing] fixed issue with possible referenced document (LoadDocument) miscalculation that could result in indexing not triggering properly when referenced documents were changed in some situations.

v5.0.0 (Build 50005)

Updated Jul 23, 2020

Features

  • Features
    • [Time Series] added feature. Documentation.
    • [Documents Compression] added feature (Experimental).
  • Other
    • [Compare Exchange] added support for loading compare exchange values as references in indexes.
    • [Compare Exchange] support for expiration of values.
    • [Identities] ability to set identity parts separator on the server-side.
    • [Indexes] added 'TryConvert' to static indexes.
    • [Indexes] automatic DateTime detection during indexing and query optimization around that.
    • [Indexes] added support for static Counter indexes.
    • [Indexes] added support for static Time Series indexes.
    • [Patching] updated Jint with support for 'let' and 'const'.
    • [Querying] support for multiple operations on facets.
    • [Subscriptions] support for including Counters.
    Client API
    • [Attachments] support for multi-get.
    • [Bulk Insert] support for Attachments.
    • [Bulk Insert] support for Counters.
    • [Bulk Insert] support for Time Series.
    • [Compare Exchange] added lazy methods.
    • [Load Balancing] added load balance behavior support.
    • [Patching] added support for Dictionaries in Session.Advanced.Patch.
    • [Subscriptions] added methods for updating the Subscriptions.
    • [Serialization] added abstract layer over serialization. Migration.
    • [Serialization] improved JSON serialization performance.
    Studio
    • [Database Settings] added support.
    • [Indexing] ability to clear index errors.
    • [Time Series] added support for plotting.