What's new

5.1.13 (51043) - 2021/12/21

Server

  • [Cluster] idle indexes should not be taken into account when calculating promotable state
  • [Compare Exchange] fixed possible NRE when 'AddOrUpdateCompareExchangeCommand' is executed due to possibility of early context release
  • [Configuration] added 'Indexing.TimeSinceLastQueryAfterWhichDeepCleanupCanBeExecutedInMin' configuration option
  • [Configuration] added 'Indexing.IndexStartupBehavior' configuration option
  • [Backup] fixed issue with testing AWS credentials when custom URL is used
  • [Backup] fixed issue with rescheduling backup when during processing it is being moved to another node
  • [Backup] added 'ForcePathStyle' option to S3 settings
  • [ETL] fixed possibility of infinite loop in ETL (backported from 5.2)
  • [ETL] fixed issue with removing node from database to early when deletion status is still set to 'no'
  • [Indexing] early stop reference processing if server is under memory pressure
  • [Indexing] fixed issue with retrying 'OutputReduceToCollectionCommand' in transaction merger which could result in not deleting relevant documents
  • [Querying] fixed issue with calculating total number of results when using collection query on a non-existent property
  • [Replication] fixed issue with calculating properly HasRevisions flag when replicating document delete
  • [Replication] revision configuration should create revision bin for documents deleted by replication
  • [Transactions] fixed issue with re-running some of the commands when merging fails and they need to be executed once again one by one
  • [Voron] using 'mmap' instead of 'posix_memalign' when allocating 4KB aligned memory for encryption buffers to avoid memory fragmentation
  • [.NET] updated to .NET 5.0.13

Client API

  • [Querying] caching index metadata to increase query building process performance
  • [Querying] caching query parameter names to increase query build process performance

Other

  • [Docker] added the ability to override server URL via RAVEN_ServerUrl environment variable

5.1.12 (51042) - 2021/11/15

Server

  • [Backup] do not cancel running backup even if task was moved to another node
  • [Cluster] fixed issue with Cluster might accepting commands from higher version than the current one when doing mixed version clusters
  • [Cluster] properly snapshot compare exchange with expiration
  • [Counters] remove leading whitespace from Counter Values Change Vector
  • [Counters] prevent from generating invalid Change Vector that starts with comma
  • [ETL] properly validate if number of transform scripts is greater than 0
  • [ETL] properly handling casing mismatch between table name and table definition
  • [ETL] state should be tracked per database ID instead of node tag to avoid progress miscalculations when node is being removed and re-added
  • [Import] handle compare exchange values incrementally when doing an import from v4.x
  • [Import] properly handle revisions when doing an import with time series
  • [Indexes] validate if index was created using our database and not copied from a different one
  • [Indexes] properly handle cancellation when doing flush and sync to avoid generating index error
  • [Monitoring] exposed MemInfo (linux) to SNMP
  • [Monitoring] exposed number of faulted databases to SNMP
  • [Querying] fixed issue with collection size limitation when using 'Not In' clause and the possibility to return invalid results
  • [Replication] do not stop replication when replicating a document with a changed collection and there is a conflict already
  • [Replication] properly handling Tombstones for legacy 3.x replication
  • [Replication] properly setting HasAttachment, HasCounters flag in reverted revision documents
  • [Transactions] properly handling Change Vector when TxMerger executes transactions one by one to avoid returning invalid Change Vector
  • [Voron] fixed invalid handling of journals created based on recyclable ones during the storage recovery on startup
  • [Voron] fixed 'Collection was modified; enumeration operation may not execute.' when generating a storage report
  • [.NET] updated to .NET Core 5.0.12

Client API

  • [Session] support for selecting metadata in single call expressions
  • [Operations] fixed issue with using TypeNameHandling.None by user and deserialization of Operations
  • [Operations] fixed issue with contacting server when using server-wide operations and node is a watcher

Studio

  • [Licenses] display connectivity to api.ravendb.net
  • [Licenses] show force update license on all license types
  • [Notifications] added total documents size for page size is too big performance hint
  • [Threads] added the ability to view a stack trace of a single thread

5.1.11 (51040) - 2021/09/29

Server

  • [Backups] fixed issue with restoring snapshots that were 2GB+ because of limitations of ZipArchive in .NET
  • [Backups] fixed issue with Azure client having issues with staging large blocks
  • [Backups] fixed progress update in AWS S3 and AWS Glacier clients
  • [Backups] fixed issue with restoring snapshot backups containing compression recovery files
  • [Cluster] decrease the amount of locks taken by cluster to avoid contention
  • [Cluster] check for topology changes also on server-wide requests resulting in faster topology change discovery by Client APIs
  • [Configuration] added 'Backup.UploadTimeoutInMin'
  • [Indexes] fixed possible storage corruption in indexes that are using Suggestions
  • [Indexes] fixed issue when modyfying 'PatternReferencesCollectionName' in map-reduce indexes could create conflicts during replication
  • [Indexes] fixed issue with using 'IfEntityIs'
  • [Indexes] fixed NRE when database compaction is executed - could happen if auto indexes were merged
  • [Indexes] prevent database from unloading because of idleness during index compaction
  • [Linux] set 'TasksMax' to infinity in 'ravendb.service' file
  • [Memory] fixed memory leak that could occur in Databases cache when a lot of databases is being added and deleted
  • [Monitoring] exposed writes and data written per second in SNMP for server and per database
  • [Monitoring] exposed average request duration for server
  • [Querying] better exception when page size is negative
  • [Querying] fixed issue with 'Not In' not support more than 128 items
  • [Replication] fixed issue that could cause replication problem if a revision of a conflict between document and document deletion occurs
  • [Subscriptions] do not send includes in every subscription batch when the list of them is empty
  • [Revisions] properly set etag when revision bin entry is created to avoid issues with ordering and therefore retrieving the revisions bin entries
  • [Voron] immediate process exit on catastrophic failure in server store to avoid running with invalid state

Client API

  • [Session] using 'Evict' method should release memory immediately to release memory pressure as soon as possible
  • [Operations] fixed issue with deserialization of 'IOperationResult' when 'TypeNameHandling.None' is set in conventions
  • [Operations] fixed possible NRE when waiting for smuggler operation if it was completed before the wait was called

Embedded

  • added support for + in ServerOptions.FrameworkVersion for Patch number with default set to 5.0.10+

Tools

  • [rvn] proper 'CTRL+D' and 'EOF' handling

Docker

  • added support for $RAVEN_DATABASE parameter which creates given database on a first run
  • added support for 'arm64' docker image

5.1.10 (51038) - 2021/08/16

Server

  • [Backups] moved to official Azure, AWS S3 and AWS Glacier clients
  • [Concurrency] fixed possibility of loosing a document tombstone when optimistic concurrency 'put' is done after 'delete'
  • [Configuration] added 'Storage.DiscardVirtualMemory' option
  • [Encryption] fixed issue with removing encrypted node with wrong key
  • [Indexing] decreased CPU pressure by scheduling indexing cleanup only when it is needed
  • [Indexing] avoid creating index writer if no results were generated
  • [Indexing] handle properly OperationCancelledException and ObjectDisposedException when querying an index that is being replaced at the same time
  • [Indexing] handle 'SelectMany' in nested dictionary properly in indexing functions
  • [Indexing] fixed select value from collection in indexing function while using 'FirstOrDefault' method
  • [JavaScript] releasing memory earlier in Jint engine to reduce the memory footprint
  • [Monitoring] added endpoints to monitor number of indexes, stale indexes and indexing performance in all loaded databases
  • [Querying] when projecting from a document that does not exist already, we should skip that document
  • [Replication] when replication failovers it should check destination change vector and start from there, not from scratch
  • [Revisions] enforcing revision configuration should also take into account document tombstones
  • [Revisions] added 'MaximumRevisionsToDeleteUponDocumentUpdate' option
  • [Voron] fixed issue with recursive write lock acquisitions when removing inactive scratches
  • [Voron] fixed possibility of accessing disposed pager of 'compression.buffers'
  • [Voron] fixed int.MaxValue overflow in 'AdjustPagesRequiredFor32Bits' when running on 32-bits
  • [.NET] updated to 5.0.8

Client API

  • [Querying] fixed issue with using 'Group' as a property name in includes
  • [Operations] added 'GetDatabaseSettingsOperation' and 'PutDatabaseSettingsOperation'
  • [Session] method Attachmnts.GetNames should return correct number of attachments after deletion
  • [Session] properly detect changes in documents containing Unicode characters
  • [Session] fixed cache issue when using MultiGet
  • [Subscriptions] added 'Disabled' to 'SubscriptionCreationOptions'

Studio

  • [Performance Hints] added Total Documents Size to paging performance hint
  • [Replication] added number of replicated counters to Replication Stats Graph
  • [Storage] added grouping of the data in the graph if number of items is excessive

Tools

  • [Debug] added ability to save traffic watch

5.1.9 (51035) - 2021/07/01

Server

  • [Backups] restore of compare exchange should consider compare exchange tombstones and clean them
  • [Certificates] consider all of the certificates that match pinning hash to allow the connections after replacement
  • [Cluster] fixed issue with huge Raft commands impacting stability of the cluster
  • [Cluster] fixed issue with cluster transaction processing hang when server is restarted immediately after such a transaction occurs
  • [Cluster] added compare exchange statistics to detailed database stats endpoint
  • [Configuration] added 'Storage.MaxNumberOfRecyclableJournals'
  • [Indexes] added support for ThenBy and ThenByDescending
  • [Indexes] fixed possibility of a deadlock when max number of concurrent indexing processes is set
  • [Indexes] fixed index instance leak when database record change is being handled but database is being unloaded at the same time
  • [Indexes] fixed issue with GroupBy not returning appropriate results in Time Series indexes
  • [Indexes] fixed possible 'ArgumentOutOfRangeException' in index storage
  • [Indexes] added support for ISO-8601 datetime format
  • [Licensing] try to activate license from environment variable or path when we fail to do it online
  • [Memory] try to reuse large segments from the memory allocator (possible memory leak when doing long operations like backups or export)
  • [Monitoring] added ability to define secondary user for SNMP v3
  • [Replication] fixed possibility of replication killing server when database is being deleted at the same time
  • [Replication] fixed possibility of replication with missing attachments went into endless loop state
  • [Replication] fixed possible endless loop caused by not handling attachment stream files properly when destination database in encrypted
  • [Replication] fixed possible NRE when Documents DeleteRevision flag was not stripped properly
  • [Replication] fixed possible NRE when disposing connections of a disposed database
  • [Queries] fixed issue with delete or patch by query timing out when a lot of document IDs needs to be gathered
  • [TCP] added support for cancellation tokens to abort the connections immediately if needed
  • [Time Series] added tombstone statistics to detailed database stats endpoint
  • [Time Series] properly process tombstones if all documents collection is present
  • [Voron] limiting number of recyclable journals to 32 by default
  • [Voron] fixed case where a newly created read transaction could get an already disposed pager state of a scratch file
  • [Utils] fixed issue with DisposeAsync not preventing double dispose in certain situations
  • [.NET] updated to .NET 5.0.7

Client API

  • [Bulk Insert] fixed possible hang and avoid multi-threaded access to context
  • [JSON] properly clearing internal JsonReader state to avoid hitting MaxDepth exception

Studio

  • [Certificates] show single entry in the Certificates view when client is using Server certificate to connect
  • [Migration] fixed issue with Advanced menu not opening
  • [Querying] added support for enclosing the previous statments in clauses
  • [Setup] display unsupported browser warning if needed
  • [Subscriptions] fixed possibility of Studio hanging in the Edit Subscriptiion View
  • [Traffic Watch] properly display type for Bulk Docs