What's new

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

4.2.5-patch-42026 - 2019/11/13

Server

  • [Backup] Making sure S3 client won't be downloading entire stream
  • [Backup] Allowing a user to choose the compression level for a Snaphost backup
  • [Backup] Restore from backup was not respecting "Disable ongoing tasks after restore"
  • [Backup] Support restoring from a legacy backup
  • [Cluster] Stability improvements
  • [Cluster] Fixed race condition between methods that rely on LastDatabaseRecordIndex
  • [Cluster] Fixed case when removing and re-adding a node to the cluster
  • [CLI] Added threadsInfo to the command options
  • [Certificates] Support for ACME V2
  • [Certificates] Fixed LastAuthorizedNonClusterAdminRequestTime calculation
  • [Debug] Improved Debug Package
  • [ETL] Task status reporting fixes. Improved logging.
  • [Indexing] Support for side-by-side indexing of map-reduce indexes with OutputReduceToCollection
  • [Indexing] Better memory management for map-reduce indexes with OutputReduceToCollection
  • [Linux] Fixed CPU usage calculation
  • [Linux] Fixed high CPU usage of the Low memory notification thread
  • [Logging]When out of disk space, don't attempt to log.
  • [Patching] Preserving the order of properties after a patch
  • [Querying] Fixed query etag calculation when counters are included or cmpxng was used
  • [Querying] Added support of oreding by spatial.distance() for auto indexes
  • [Querying] Fixed querying with the usage of in operator and querying list is bigger than 1024
  • [Querying] Support not exists() for dynamic queries
  • [Querying] Improved field options detection of dynamic queries
  • [Querying] Fixed projection uses wrong alias for result of function
  • [Querying] Fixed facet intersection algorithm calculation
  • [Revisions] Fixed Enforce revision configuration option when there were tombstones
  • [Replication] Fixed handling of replication attempting to talk to an idle database
  • [Replication] Enhanced handling of Enforcing configuration
  • [Subscriptions] Enhanced logging
  • [Subscriptions] Fixed subscription race condition between awaiting for a free connection to waiting to different node
  • [Subscriptions] Fixed race between subscription connection disposal and returning an answer to the client
  • [SNMP] Improved memory allocations
  • [SNMP] Added /monitoring/snmp/bulk endpoint
  • [Voron] Use UTF8 for Linux and Unicode for windows on PAL

Studio

  • [Backup] Fixed visibility of backup configuration with encryption
  • [Notifications] Enhancements for huge documents notifications
  • [Patching] Fixed error when doing a test patch
  • [Restore] Fixed restore operation didn't not set proper Processed value
  • Added option to filter import and export of artificial documents

Client

  • [JSON] Added support for more basic types as metadata value
  • [JSON] Simplify JSON when serializing a command
  • [JSON] TrySimplifyJson assign the right type to derived properties
  • [Projections] Fixed NRE in NullableSupport
  • [Querying] Support negated Any statement in Linq
  • Improved validation of provided node URLs
  • Can use operations with selected node tag even if DisableTopologyUpdates is true

4.2.4 (42021) - 2019/10/14

Server

  • [Backup] fixed issue with detecting if backup is encrypted
  • [Backup] fixed issue with creating an encrypted backup regardless of explictly stating in Studio that the backup should not be encrypted
  • [Backup] improved handling of huge backup files during Google Cloud restore
  • [Configuration] added 'Indexing.IndexMissingFieldsAsNull'
  • [Cluster] upgrading a Watcher node from 4.1 to 4.2 should not throw NotSupportedException
  • [Expiration & Refresh] reduced memory footprint during Expiration cleanup or Refreshing documents
  • [Indexing] added the ability to index missing fields as null
  • [Indexing] properly handling out of memory exeptions that were raised during index writer creation
  • [Linux] fixed Thread CPU usage calculation
  • [Logging] reduced number of log entries when we are in low memory
  • [Memory] reduced memory footprint for streaming and backup operations on 32-bit systems or in encrypted databases
  • [Querying] negative paging parameters (Start, PageSize, Offset, Limit) will throw
  • [RQL] fixed string literal parsing when it ends with backslash
  • [SQL Import] fixed Schema discovery when importing from MySQL

Client API

  • [Events] added 'OnFailedRequest' to 'DocumentStore', marked old 'FailedRequest' from 'RequestExecutor' as obsolete
  • [JSON] avoid calling 'DeserializeEntityFromBlittable' when query return type is 'BlittableJsonReaderObject'

Studio

  • [Backup] fixed NRE during folder discovery for Amazon S3 restore
  • [Backup] displaying full path for local backups instead of relative one
  • [Backup] fixed restore source detection when restoring from Amazon S3, Microsoft Azure and Google Cloud
  • [Backup] properly detecting restore points from Google Cloud
  • [Backup] properly detecting database names in restore points when we have nested folders
  • [Backup] properly detecting number of files to restore when we have nested folders
  • [Documents] no longer displaying 'RevisionCreated' in the Documents view
  • [Databases] added support for arrow handling in 'Databases Dropdown'
  • [Refresh] exposed refresh date in 'Documents' view
  • [Revisions] added Enforce Configuration button
  • [Themes] fixed styling

4.2.4-patch-42020 - 2019/09/27

Server

  • [Backup] Using dedicated threads for backup operations
  • [Backup] Allowing to restore a backup from cloud storage
  • [Backup] Server wide backup wont' wake up idle databases
  • [Backup] Fixed error handling when we fail to delete files on S3 when running retention policy
  • [Blittable] Fixed handling of escape characters
  • [Blittable] Fixed disposal of arrays nested in JSON
  • [Cluster] Fixed deletion of a node that is a part of an encrypted database group
  • [Cluster] Unloading idle databases when running in cluster
  • [Cluster] Don't choose node as responsible once if it is about to be deleted from database group
  • [Cluster] Fixed error in ClusterMaintenanceSupervisor caused by getting multiple reports in network buffer
  • [Docker] Improved memory consumption monitoring
  • [Encryption] Fixed support for huge transactions (>int.MaxValue) in encrypted databases
  • [Indexing] Moving JavaScript index compilation cache from static level to database level
  • [Indexing] Fixed index creation referencing metadata for collection names with dashes
  • [Indexing] Fixed error handling of OOM exception when logging another error
  • [Indexing] Fixed cleanup of tombstones which wasn't processed by multi map or map-reduce index
  • [Indexing] Fixed index progress for an index with LoadDocument
  • [Licensing] Removed SNMP warning after license activation
  • [Memory] Improved memory calculations when running in Docker
  • [Patching] Fixed debug actions logging for put, load and delete
  • [Querying] Fixed the order of extraction of JS projected fields - from index first then from a document
  • [Querying] Fixed fixed JS projection behavior when we have dynamic fields in index (always check index fields in that case)
  • [Querying] Fixed NULL_VALUE and EMPTY_STRING behavior for JS projections to match the non-JS ones
  • [Querying] Fixed JS projections of stored string field with value that 'looks' like a large number
  • [Replication] Fixed issue where specific document with attachment insertion pattern cause replication of many items in a single batch
  • [Revisions] Allowing to enforce revision configuration
  • [SNMP] Using unique engine ID when SNMPv3 AuthPriv is used
  • [SNMP] Fixed Allocated Memory on Linux
  • [SNMP] Fixed Public TCP Url OID
  • [SNMP] Exposed LastAuthorizedNonClusterAdminRequestTime
  • [Subscriptions] Fixed tight looping when having subscription configured for revisions but there is no revision in database
  • [Smuggler] Prevent Access Violation when importing legacy counters
  • [Smuggler] Fixing memory leaks during import
  • [Voron] Fixed compatibility of 64 bits database that are used from 32 bits systems
  • [Voron] Added functionality that will skip transaction during journal reading which has integrity issues but was already synced

  • Updated .NET Core to version 2.2.7

Client

  • [RequestExecutor] Creating new HttpClient if SocketException was encountered
  • [RequestExecutor] Fixing possible race condition when we update topology during command failover
  • [Querying] Fixed missing Id to id() translation in Where with exact overload
  • [Loading] Fixed Load with Include for dictionaries
  • [JSON] Avoid simplifying the property if it's a JObject, JArray and JValue

Studio

  • Basic support for formatting of JavaScript indexes
  • Exposing Refresh feature

4.2.3 (42018) - 2019/08/26

Server

  • [Backup] backups will be delayed when in low-memory state to avoid putting even more pressure on the server
  • [Backup] backups will be executed on a non-primary node in database group to avoid putting pressure in the node that handles traffic
  • [Configuration] added Backup.LowMemoryBackupDelayInMin and Server.CpuCredits.ExhaustionBackupDelayInMin
  • [Configuration] added Server.CpuCredits.Exec, Server.CpuCredits.Exec.Arguments, Server.CpuCredits.Exec.SyncIntervalInMin and Server.CpuCredits.Exec.TimeoutInSec
  • [Configuration] added Monitoring.Snmp.AuthenticationProtocol, Monitoring.Snmp.AuthenticationUser, Monitoring.Snmp.AuthenticationPassword, Monitoring.Snmp.PrivacyProtocol, Monitoring.Snmp.PrivacyPassword and Monitoring.Snmp.SupportedVersions
  • [Counters] stabilization and improvements in replication regarding the transaction boundaries
  • [Cluster] stability improvements
  • [Cluster] promoting and demoting node should be a ClusterAdmin, not Operator operation
  • [Debug] added '/admin/cpu-credits' and '/debug/cpu-credits' endpoints
  • [Endpoints] added '/admin/stats'
  • [Endpoints] SNMP monitoring endpoints now require Operator permissions instead of ClusterAdmin
  • [Expiration] fixed possible leaks of tasks when a lot of databases is being unloaded or deleted
  • [Expiration] fixed the possibility of a situation where cleaner would be executed more often than the configured value
  • [Indexing] fixed the possibility to encounter stale indexes when node was added to a cluster database group
  • [Indexing] output of map-reduce indexing functions should not use the same property accessor cache, because it might not contain necessary group by fields needed
  • [Indexing] better handling of dictionaries in indexing functions
  • [Indexing] added 'id' and 'getMetadata' functions to JavaScript indexes
  • [Indexing] properly handling negation on double
  • [Licensing] fixed a corner case when "Let's Encrypt" certificate would not auto-renew itself even if license allows that
  • [Memory] x86 memory optimizations and AVE fixes
  • [Memory] fixed few detected memory leaks and adjusted couple memory usages to reduce the memory footprint
  • [Monitoring] added SNMP v3 AuthPriv support
  • [Monitoring] added new endpoints that return server storage disk information (OID: 1.3.6.1.4.1.45751.1.1.1.10.1-4) and an indication if server is running under low memory flag (OID: 1.3.6.1.4.1.45751.1.1.1.6.2)
  • [Operations] wrapping background task in a separate task to avoid any delays in retuning the operation ID to the client
  • [PAL] added EBADF to EFBIG and EINVAL when pwrite instead of fallocate for supporting aufs
  • [Querying] fixed issue with returning results when query is done on decimal 0 value
  • [Querying] reduced the CPU footprint when performing heavy faceted search
  • [RQL] detecting properly artificial projection e.g. 'from Orders as o select o'
  • [Subscriptions] will use proper batch size on x86 systems
  • [Subscriptions] subscriptions for specific collections should do case insensitive comparison in case when documents have a different casing of collection names
  • [Voron] fixed "attempted to delete value but it wasn't in index" bug
  • [Voron] fixed "tried to released page X but couldn't find it in the allocation section" bug that could occur on 32-bit systems
  • [Voron] reducing the sizes of journals, logs and scratches on x86 systems
  • [Voron] fixed corner case where "SearchPageFor" could skip values

Client API

  • [Changes API] fixed possible connection leak due to invalid connection hash calculation
  • [Indexes] added 'System.Text.RegularExpressions' to a list of well-known server-side assemblies, so parameters from methods like 'Regex.IsMatch' will not be converted to strings
  • [Patching] proper handling when session.Advanced.Patch is used on a collection, will not duplicate records in collection after SaveChanges
  • [Session] invoking 'Evict' will release additional internal structures to reduce memory footprint
  • [Subscriptions] opening a session will skip tracking revisions if this is a subscription that retrieves revisions

Studio

  • [Backup] added an ability to set Retention Policy when backup is being configured
  • [Backup] added UI for configuring Server-wide Backup
  • [Backup] restoring from Cloud will show details about the source of restore
  • [Dashboard] added System storage to the storage section
  • [StackTraces] various improvements
  • Delete by Query should display a progress popup when executed
  • styling improvements

Other

  • [Test] TestDriver now correctly adjusts automatic database names when 'GetDocumentStore' is executed from constructor and not from method