What's new

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

4.2.6 (42028) - 2019/12/09

Server

  • [AuditLog] Avoid throwing ObjectDisposed during audit logging if the socket was closed
  • [Backup] Fixed issue that an idle database wakes up but doesn't run backup
  • [Indexing] Fixed error logging if there was an error in the referenced document
  • [Indexing] Fixed saving of reduce documents to OutputToReduceCollection (System.FormatException: Bad variable size int)
  • [Replication] Handled a conflict should take into account the unused databases
  • [SNMP]Fixed database startup load due to exceptions thrown by SNMP watcher
  • [Subscriptions] Handled passive nodes during subscription connection
  • [Subscriptions] Improved mechanism to move between nodes in case we don't know what the responsible node should be
  • [Subscriptions] Added timeout when there is compare exchange subscription substitution concurrency to prevent a partial live lock
  • [Subscriptions] Fixed double dispose resulting in unexpected signaling of ConnectionInUse
  • Fixed versions of dependency DLLs
  • Updated to .NET Core 2.2.8

Client

  • Added XMLdocs to the NuGet pckaged
  • Disabled MaxIdleTime of ServicePoint

4.2.5 (42027) - 2019/11/25

Server

  • [Backup] Backup task will delete the .in-progress file when it fails
  • [Backup] Avaliable space validation before the backup
  • [Cluster] Fixed node kicked out of the cluster if the we have election timeout mismatch
  • [Cluster] Added ability to specify topology priority order
  • [Configuration] Increased default value of Databases.ConcurrentLoadTimeoutInSec setting from 10 to 60 seconds
  • [Indexing] Added ability to define pattern for reference documents of OutputToCollection docs generated by map-reduce indexes
  • [Indexing / Voron] Fixed unhandled case of leafs compression which resulted in map-reduce indexing error
  • [JSON] Fixed memory overlap on ID slice creation, when we have two or more control characters in a row
  • [Replication] Fixed replication looping when having faulty replication configuration with two replication channels from the same source to the same destination
  • [Revisions] Allow to define separate conflict revision configuration
  • [Stats] Exposed IO metrics for the system storage

Client

  • [Index Definition] Fixed needless usage of ToDictionary() for simple calls
  • [Index Definition] Fixed missing int cast on method call arguments
  • [Operations] Synchronization of database name validation between Client API and server side
  • [Operations] Added ConfigureRevisionsForConflictsOperation
  • [Projections] Added support for nullable DateTime in projection
  • [Projections] Fixed JsConverter strip 'Value' or 'Key' from dictionary entity
  • [Projections] Fixed unhandled case of projection with SelectFields
  • [Session] Fixed entities loading during OnBeforeStoreEvent
  • [Session] Propertly converting dictionary stored in metadata
  • [Session] Added active async tasks tracking and throwing on session dispose if there are any

Studio

  • [Stats] Added IO metrics view for the system storage