What's new

4.2.103 (42046) - 2020/05/25

Server

  • [Backup] after imporintg backups with counters the IDs of the document should not be lowercased
  • [Backup] support for Amazon AWS Cape Town as a backup destination
  • [Backup] support for Cloud restore from Microsoft Azure
  • [Backup] support for importing legacy identities (from 3.x)
  • [Backup] added support for SAS tokens in Microsoft Azure backups
  • [Backup] properly reschedule backup even when backup task failed to create
  • [ETL] always send 'DELETE' command when script is not empty
  • [Indexing] allow to disable or stop the indexing when Server is out of CPU credits
  • [Indexing] support for setting FieldStorage.No and FieldIndexing.No in Map-Reduce to allow storing the results of Map-Reduce without the ability to search on them (can speed up the indexing process for complex fields that are not used for searching)
  • [Indexing] better behavior when encountered out of disk space exception
  • [Indexing] support for creating indexes with 'Enumerable.Range' in SelectMany
  • [Indexing] decreased number of writes done by Output Reduce to Collection
  • [Indexing] Output Reduce To Collection will now batch output documents instead of writing them in one go
  • [Indexing] performance optimizations
  • [Querying] Lucene should return same score for same document in the query result
  • [Querying] performance optimizations for dynamic query matcher and lucene queries
  • [Memory] memory utilization tweaks and adjustments both for non and encrypted databases
  • [Memory] fixed memory leak and high GC caused by excessive number of non-disposed cancellation tokens
  • [Memory] fixed managed buffer leak in JSON parsing
  • [Monitoring] added WellKnownAdminCertificates endpoint to SNMP
  • [Monitoring] added Number of Assigned CPU cores endpoint to SNMP
  • [Monitoring] added Number of Machine CPU cores endpoint to SNMP
  • [Monitoring] added Max Number of License CPU cores endpoint to SNMP
  • [Monitoring] added Number of Utilized License CPU cores endpoint to SNMP
  • [Monitoring] added Number of Currently Running Backups endpoint to SNMP
  • [Monitoring] added Max Number of Backups that can Run Concurrently endpoint to SNMP
  • [.NET Core] updated to 3.1.4

Client API

  • [Bulk Insert] properly detect 'Raven-Clr-Type' for dynamic objects
  • [Conventions] added 'MaxContextSizeToKeep'
  • [HTTP] set default connection limit to int.MaxValue
  • [HTTP] properly detect the topology and client configuration needs to be updated to avoid excessive topology and client configuration updates
  • [Operations] added 'GetDetailedCollectionStatisticsOperation'
  • [Operations] return 'null' value for Ids that are 'null' in 'GetCountersOperation' and 'GetDocumentsCommand'

4.2.102 (42040) - 2020/04/15

Server

  • [Attachments] ability to re-run batch with attachments
  • [Backups] support for Smuggler imports with TimeSeries (will be skipped)
  • [Backups] fixed possible NRE when last etag is requested but no status yet was computed
  • [Backups] full backup will include Tombstones from now on
  • [Bulk Insert] fixed performance degradation after .NET Core 3.1 introduction
  • [Certificates] ensure that serial number is always exactly 20 bytes of length
  • [Counters] fixed issue with detecting if counters are part of a batch when a property has same length, which could cause Cluster-Wide Transaction issues
  • [Configuration] added 'Migration.MigratorPath'
  • [Configuration] added 'Storage.IoMetricsCleanupIntervalInHrs'
  • [Docker] updated Ubuntu base image
  • [ETL] properly handling configuration validation on ETL update
  • [Facets] fixed 'ArgumentNullException' when RangedFacet with DisplayName is used
  • [HTTP] setting 'HttpProtocols' to 'Http1' automatically on Windows Server 2012 R2
  • [Indexing] fixed issue with not using 'AdditionalSources' during index metadata construction
  • [Indexing] reduced number of Bloom filters on 32-bit systems
  • [Indexing] JavaScript indexes should not index implicit null values
  • [Memory] fixed Linux memory detection
  • [Migration] support for migration from v5.x
  • [Migration] support for 1-way 2.x/3.x replication
  • [Notifications] added DocumentStore misuse notifications (requires 'SendApplicationIdentifier' to be set to 'true')
  • [Service] setting LimitMEMLOCK to infinity on Linux
  • [Storage] keeping I/O stats only for last 24 hours
  • [.NET Core] updated to 3.1.3

Client API

  • [Bulk Insert] fixed issue with serialization that could occur when custom serializer is used
  • [Cluster] restoring preferred node if broadcast was used to execute the operation
  • [Conventions] added 'SendApplicationIdentifier' convention
  • [Conventions] added 'FindClrTypeNameForDynamic' convention
  • [Events] added 'OnTopologyUpdated' event to DocumentStore
  • [Events] exposed conversion events in IDocumentStore
  • [Indexes] proper detection of string constants in 'LoadDocument' when 'AbstractIndexCreationTask' is used
  • [Projections] should not set Identity Property when projection takes place
  • [Querying] extracting Document Identifier via built-in 'id()' method during projection
  • [Querying] exposed OrderByDistance with roundFactor
  • [Serialization] support for 'Size' serialization
  • [Serialization] fixed issue with serialization of an object with property set to 'Enumerable.Empty' introduced after .NET Core 3.1 switch
  • [Smuggler] fixed 'Connection closed before reaching end of stream' issue that could happen during Import on full .NET framework

Studio

  • [Admin Logs] added the ability to switch 'Logs Mode'
  • [Admin Logs] added copy log message button
  • [Backups] ability to provide custom S3 hostname
  • [Backups] ability to specify CSV import options
  • [Compare Exchange] fixed issue with retrieving Compare Exchange value when key needs encoding
  • [Documents] fixed issue with previewing documents when number of compressed bytes and number of chars is different
  • [Documents] display numer of items in array and properties in object
  • [Indexes] fixed issue with detecting 'output map to reduce' in JavaScript indexes
  • [Indexes] fixed issue with detecting dirty state on Save Index button when 'Create References to Results Collection' is changed
  • [ETL] exposed HTTP Request Timeout in RavenDB ETL
  • [HTTP] validating if non-secured URL is not used with Certificate
  • [Setup] added dialog for 'secured' flow with prompt to confirm that certificate was downloaded and installed

Embedded

  • fixed issue with using Embedded after .NET Core 3.1 introduction

4.2.101 (42038) - 2020/03/03

Who should upgrade

Customers hosting Server on Windows 2012 R2 or older should disable HTTP/2 support by setting 'Http.Protocols' configuration option to 'Http1'.

Server

  • [Configuration] added 'Http.Protocols' configuration options that allows to specify supported HTTP protocols by the server

4.2.100 (42036) - 2020/03/02

Server

  • [Backup] added progress when restoring a huge file to indicate that restore is actually taking place
  • [Backup] number of concurrent backups is set by default to number of licenses cores / 2 or to Backup.MaxNumberOfConcurrentBackups value
  • [Backup] reduce memory pressure when export is being done
  • [Backup] overdue backups when switched to a different node should have 1 minute delay to wait if the original node will recover or not
  • [Certificates] disabled downloading the CRL file
  • [Certificates] fixed issue with replacting the certificate when it has a password
  • [Configuration] added Indexing.ErrorIndexStartupBehavior
  • [Configuration] added Memory.MaxContextSizeToKeepInMb
  • [Configuration] added Cluster.TimeBeforeRotatingPreferredNodeInSec
  • [Configuration] added Security.TlsCipherSuites
  • [Configuration] added Security.Certificate.Validation.Exec, Security.Certificate.Validation.Exec.Arguments and Security.Certificate.Validation.Exec.TimeoutInSec
  • [Cluster] fixed possible timeout when leader received same command twice
  • [Cluster] when follower ambassador is being closed, set proper disconnected reason
  • [Cluster] Compare Exchange tombstone cleanup should continue executing if there is more work to be done instead of waiting for next execution
  • [Cluster] database should not be places as preffered note when it is still loading
  • [Cluster] fixed possible deadlock in remote connection that could happen during server shutdown
  • [Debug] added /admin/debug/dump
  • [Debug] added /admin/debug/gcdump
  • [Expiration] use same date among all batches during expired documents cleanup
  • [Expiration] cleaner will correctly continue removing the expired documents if there is more to delete instead of waiting for next execution
  • [Indexing] enhanced validation for pattern for reduce output documents
  • [Indexing] better behavior when updating pattern for reduce output documents
  • [Indexing] added the ability to specify pattern for reduce output documents collection name
  • [Indexing] support for using multiple string interpolations in the PatternForOutputReduceToCollectionReferences expression
  • [Indexing] fixed issue with JavaScript indexes not respecting Indexing.MaxStepsForScript configuration option in some cases
  • [Indexing] proper field options inheritance from default field options in JavaScript indexes
  • [Indexing] proper behavior when arrays are being indexed in JavaScript indexes
  • [Indexing] properly handle out of disk space errors when this happens during Lucene write
  • [Indexing] properly flatten the arrays when converting to Lucene
  • [Indexing] avoid NRE in JavaScript index when converting output to BlittableJSON
  • [Indexing] avoid possibility of infinite indexing batch loop when we have LoadDocument
  • [HTTP] added support for HTTP/2
  • [Licensing] updated EULA
  • [Logging] moved behavior from per thread to per processor core
  • [Major][Memory] Revamped memory management from per thread model to per processor core model
  • [Memory] fixed a possibility that available memory would result in a negative number
  • [Memory] replaced ThreadLocal with LightweightThreadLocal to reduce the GC pressure
  • [Memory] decreased allocationg when using XXHash64Context and XXHash32Context
  • [Memory] large contexts are being disposed right away instead of being kept in the pool
  • [Memory] on low memory dispose contexts that were created in previous generations of the pool
  • [Memory] on low memory release unused threads from the pool
  • [Memory] on low memory clear indexed terms cache
  • [Monitoring] when instance was never accessed SNMP endpoint for last non-cluster admin access time will return max value
  • [Monitoring] time since oldest backup endpoint in SNMP will use the same algorithm for calculation as Databases View in Studio
  • [PAL] added better detection for out of memory and out of disk space in Windows
  • [Querying] fixed possible NRE when exporting to CSV query results from map-reduce index
  • [Querying] correctly calculating index etag when reference collections are used
  • [Querying] fixed possible NRE when doing a dynamic query and retrieved index would be removed after picking it
  • [Querying] support for projecting from a document that contains $type and $values fields
  • [Querying] support for projecting from a document that contains $type and $value fields
  • [Querying] fixed NRE when projecting from Compare Exchange using JavaScript projections
  • [Querying] do not apply query optimization when outer query has boost defined
  • [Replication] fixed conflict status detection when we have unused database IDs
  • [Revisions] putting revision tombstones only once to avoid possible endless replication loop
  • [Revisions] prevent from creating a duplicated revision when incoming revision and the document are the same, but change vector contains unused database ID and resolved flag
  • [Tombstones] cleaner should execute operations in batches to reduce memory pressure
  • [Subscriptions] added the ability to use properties from @metadata that need to be escaped in the query
  • [Security] added TLS 1.3 support
  • [Major][.NET Core] updated to .NET Core 3.1.2
  • fixed possible Etag overflow on change vector merge

Client API

  • [Conventions] added HttpVersion convention
  • [Indexing] added the ability to specify collection name manually in LoadDocument
  • [Session] NoTracking session should not throw when document does not exist on the server
  • [Operations] added DocumentStore.Maintenance.Server.ForNode method
  • [Querying] always quoting collection names

Embedded

  • added RestartServerAsync method
  • added ServerProcessExited event

Studio

  • [Documents] added the ability to copy change vector and document ID
  • [Export] added missing configuration options
  • [Indexing] fixed issue with saving an index with map when bracket access is being used in the function
  • [Indexing] check for duplicate fields when saving an index
  • [Patching] ability to define query options when patching
  • [Security] properly disable sections of the Studio according to the security clearance
  • various fixes and stability improvements

4.2.8 (42034) - 2020/01/21

Server

  • [Cluster] various stability improvements
  • [Cluster] fixed possible socket leaks in FollowerAmbassador and CandidateAmbassador
  • [Cluster] large snapshot installation will be done via file from now on to not hold the connection and avoid encountering read timeout
  • [Backup] fixed possible memory leak during export that could cause decreased speed of export
  • [Backup] fixed a possibility of creating duplicate backups
  • [Backup] fixed possible failure when doing snapshot and incremental backup when encryption is set
  • [Backup] optimized restoring from Google Storage process
  • [Backup] added support for backup retention policy on Azure
  • [Indexing] fixed updates of Reference documents when OutputReduceToCollection is set
  • [Indexing] OutputReduceToCollection should not create new side-by-side instances after server restart
  • [Indexing] processing speed will include side-by-side indexes and only when index is running
  • [Indexing] separating MapReferenceSuccesses in statistics from MapSuccesses
  • [Indexing] handling nested null propagation operators and null conditional access
  • [Migration] added a support for case sensitive collations
  • [Monitoring] added server certificate expiration endpoint to SNMP
  • [Monitoring] added time since oldest backup endpoint to SNMP
  • [Monitoring] added the ability to disable time window checks that are problematic for some monitoring software
  • [Patching] exposing @change-vector in metadata
  • [Replication] preventing double dispose of replication handler which could cause a replication to stop completely in some cases
  • [Replication] fixed possibility for a deadlock of Replication by Tombstone Cleaner

Client API

  • [Commands] added support for Broadcasting along with 'FirstBroadcastAttemptTimeout' and 'SecondBroadcastAttemptTimeout' conventions
  • [Conventions] added 'HttpVersion' convention with HTTP/1.1 as a default
  • [Operations] handling properly server down when waiting for an operation
  • [Projections] support for IDictionary in JavaScript projections
  • [Projections] added support from projecting from a dictionary when dictionary key has a comma inside
  • [Projections] support for projecting null array
  • [Querying] fixed issue with creating a query on Id field when OrderBy is used
  • [Session] Load should not throw when 'NoTracking' is enabled and document does not exist on the server
  • [Subscriptions] added ToSubscriptionCreationOptions that allows to convert from generic to non-generic subscription

Studio

  • [Database] added the ability to modify database record
  • [Documents] fixed issue with adding same attachment which would not trigger popup window
  • [Indexing] allow to filter indexes that has errors

Tools

  • [Recovery] better error handling when recovering encrypted storage without encryption key