NoSQL Database Documentation

We hereby welcome you into the RavenDB Documentation.
Feel free to explore the sizeable world of our premier NoSQL database.

Contribute to RavenDB documentation Become part of the community! Contribute to documentation.
5.2 5.0 4.2 4.1 4.0 3.5 3.0 2.5

What's new

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

5.1.8 (51027) - 2021/05/26

Server

  • [Backups] fixed issue with executing Backup Retention policies on Azure
  • [Backups] allow to restore a document when collection was changed in the same incremental backup
  • [Backups] fixed possible memory leak during import when a lot of compare exchange values are being imported
  • [Backups] fixed issue with editing server-wide backup tasks that could cause those tasks to hang
  • [Databases] before deleting a database a database path intersection is checked with other databases
  • [Debug] fixed issue with capturing stacktraces for entire cluster
  • [Debug] fixed start date of a cloned transaction in /admin/debug/txinfo endpoint
  • [Databases] fixed NRE that could happen if database was created with Client Configuration set
  • [Indexes] release temporary files on low memory to reduce the memory pressure further
  • [Indexes] fixed a race between creating a new auto index and deleting the superseded one
  • [Indexes] fixed usage of concurrent indexes semaphore to avoid NRE
  • [Indexes] fixed issue with using ThenBy and ThenByDescending in indexes
  • [Indexes] fixed issue with using Enumerable.Range in indexes
  • [Indexes] added support for FindIndex and FindLastIndex methods in indexes
  • [Indexes] when updating NuGet package in index to a newer version no longer restart of server is required
  • [Indexes] support for native DLLs from NuGet
  • [Indexes] fixed null string concatenation behavior in indexing - now it matched C# one
  • [Querying] fixed possibility of sending an invalid JSON when returning facet results
  • [Querying] fixed possibility of NRE when projecting same document multiple times during streaming
  • [Querying] decreased memory usage when executing Distinct queries
  • [Replication] fixed memory allocation when handling tombstones as a conflicts resolutions
  • [Replication] fixed NRE on refresh of document that was added in cluster transaction
  • [Voron] making sure that we will not remove currently used scratch buffer file from the list of active scratches during transaction rollback
  • [Voron] making the acquirement and usage of a pager state more robust to avoid accessing already disposed pager which could result in AVE
  • [Voron] preventing a racy access and dispose of a scratch file between the storage cleanup and creation of a new transaction
  • [Voron] fixing the case that after the import of a database we didn't flush all journals if there was no activity on a database what resulted in large number of scratch files
  • [Voron] using a correct pager state when prefetching segments
  • [.NET] updated to .NET 5.0.6

Client API

  • [Events] added OnSessionDisposing event
  • [Events] fixed issue with OnBeforeQuery event not being invoked when streaming
  • [JSON] internal enumerable converters need to take into account that a custom converter could have been supplied by the user
  • [Session] fixed caching when Lazy is used
  • [Session] properly incrementing number of requests when attachments and revisions are used
  • [Session] added load revisions lazily implementation
  • [Session] added AddOrPatch and AddOrIncrement methods
  • [Subscriptions] fixed possibility of context leak when processing subscriptions and error has occurred
  • [Smuggler] fixed possibility to context leaking during Import
  • [Querying] added support for aggregation queries when raw query is used

Studio

  • [Indexes] expose index wait time on performance graph when max number of concurrent indexes is set
  • [Indexes] fixed issue with indexes getting unselected when progress is being updated
  • [Indexes] fixed issue with displaying tooltips on performance graph
  • [IO Stats] fixed issue with importing I/O stats from the debug package
  • [Refresh] fixed issue with updating the refresh frequency
  • [Traffic Watch] display also seconds in request time
  • [Traffic Watch] added TCP connections

5.1.7 (51024) - 2021/04/23

Server

  • [Indexes] fixed issue where index replacement, therefore index update, could cause index to become paused
  • [Indexes] fixed possible deadlock in indexing that could occur when 'Indexing.MaxNumberOfConcurrentlyRunningIndexes' is used
  • [TCP] gently closing TCP TestConnection and TCP Ping to avoid moving into CLOSE_WAIT state

5.1.6 (51023) - 2021/04/13

Server

  • [Backup] Fixed the restore of tombstones from a backup
  • [Cluster] Added endpoint to remove entry from Raft log
  • [Configuration] Added Indexing.MaxNumberOfConcurrentlyRunningIndexes configuration option (default: null - no limit)
  • [Configuration] Increased dafault value for Indexing.Encrypted.TransactionSizeLimitInMb configuration option depending on the amount of available memory:
    • <= 1GB of RAM or running in 32bits - 96MB
    • <= 4GB of RAM - 128MB
    • <= 16GB of RAM - 256MB
    • <= 64GB of RAM - 512MB
    • > 64GB of RAM - 1024MB
  • [Configuration] Added Http.AllowSynchronousIO configuration option (default: false)
  • [Indexing] Fixed the behavior of recreating indexing writer upon every commit
  • [Indexing] Fixed handling for ERROR_COMMITMENT_LIMIT to treat is as OutOfMemory
  • [Indexing] Reduce amount of IO needed to deal with temporary files
  • [Indexing] Added ability to limit number of concurrently running indexes to reduce the memory and IO usage (Indexing.MaxNumberOfConcurrentlyRunningIndexes)
  • [Indexing] Fixed invalid memory allocation in Lucene
  • [Indexing] Added cluster-wide disable index
  • [Indexing] Reduced logging lever of errors related to using Nuget DLLs in indexes
  • [Indexing] Normalize new line characters when comparing additional sources
  • [Fixed] Fixed the issue that we skip documents without checking if we need to check for CanContinueBatch which resulted in OutOfMemory error
  • [Querying] Better exception on invalid JS Date
  • [Querying] Ensured that query execution is stopped if a HTTP request is aborted
  • [Querying] Streaming on index that does not exist should throw proper exception instead of NRE
  • [Querying] Fixed NRE when using a search query with Boost on term containing only quotes
  • [SNMP] Exposed number of disabled, encrypted and current node databases
  • [SNMP] Exposed GC memory info
  • [Server] Disabling Kestrel's AllowSynchronousIO and making the handling of requests fully async. Added Http.AllowSynchronousIO to allow user to control it explicitly.
  • [SQL ETL] Added handling for conversion of GUID to UUID when loading records to PostgreSQL
  • [Time Series] Fixed append of an entry with DateTime.MinValue
  • [Time Series] Avoid throwing an exception when timeseries name isn't a string
  • [Time Series] Added support for quering time series with quoted name
  • [Tombstones] Added endpoints allowing to force cleanup of tombstones and check the cleanup state
  • [Voron] Fixed unhandled case in page splitting of compressed pages. This applies to map-reduce indexes and could result in "Encountered empty page which isn't a root" error.
  • [Voron] Ensured that we report an alert if an error happened during the flush of data and we recreate the backgroud task
  • [Voron] Fixed unreleased allocations in scratch buffers which made that scratch files were never cleaned up
  • [.NET Core] Updated to 5.0.5

Client

  • [Changes API] Fixed detection for database creation/deletion while already suscribed
  • [Session] Consider the index referenced collections on WaitForIndexesAfterSaveChanges
  • [Conventions] Added WaitForIndexesAfterSaveChangesTimeout, WaitForReplicationAfterSaveChangesTimeout and WaitForNonStaleResultsTimeout conventions (default: 15 seconds)
  • [Performance] Optimized TryGetServerVersion
  • Fixed NRE in CachingJsonConverter
  • Added Lazy version of ConditionalLoad
  • IAsyncDocumentSession.StreamAsync method forcedly cast IAsyncDocumentQuery<T> to concreate AsyncDocumentQuery<T> class implementation

Embedded

  • Added support for wildcards (x) in the ServerOptions.FrameworkVersion

Studio

  • [Querying] Added id() field to the list of index terms

5.1.5 (51018) - 2021/03/01

Server

  • [Backups] fixed issue with deleting multiple blobs on Azure when retention policy is executed
  • [Backups] fixed issue with executing retention policy on Azure when remote folder name is empty
  • [Backups] fixed the ability to test credentials on server-wide backups
  • [Certificates] set DisableCertificateDownloads to true when building a certificate chain
  • [Cluster] fixed issue with excessive topology updates from the Client API
  • [Cluster] do not move loading idle database to rehab
  • [Compression] fixed issue with compressed flag not being added when number of overflow pages is exactly the same after compression
  • [Debug] fixed issue with retrieving thread names in Threads View for some of the threads
  • [Encryption] fixed 'unable to decrypt page' error
  • [Encryption] fixed recovery process on encrypted storage which could cause data corruption
  • [Graph API] do not return duplicate edges for Graph Visualizer
  • [Indexes] memory optimizations in Lucene
  • [Indexes] fixed race condition between removing or replacing an index and starting or stopping all of the indexes
  • [Indexes] changing additional sources should affect index etag which is used to calculate query results caching etag
  • [Indexes] expected exceptions should not generate an index error
  • [Indexes] decreased the cost of retrieving the data from index stats endpoint
  • [Indexes] fixed issue with disposing cached field items immediately - some of the readers could be already in use
  • [Indexes] when document collection does not match the specified collection in LoadDocument then null should be returned
  • [Indexes] index definition comparison should be newline-insensitive
  • [Monitoring] exposed SWAP usage on Windows in SNMP
  • [Monitoring] added managed memory, unmanaged memory, encryption buffers memory in use and encryption buffers memory in pool to SNMP
  • [Patching] fixed issue with delete script not deleting all of the documents in some cases
  • [Patching] fixed memory leak when patching a large collection on a compressed database
  • [Querying] fixed possible NRE when projecting with streaming full documents
  • [Replication] fixed NRE that could happen if there are 2 tombstones with identical ID but different collection
  • [Replication] fixed NRE that could happen if we are deleting the database
  • [Replication] properly clone replication items to avoid using memory not owned by the replication process which could result in AccessViolationException
  • [Revisions] fixed issue with creating a revision when only Resolved flag was present in deleted document
  • [Revisions] properly set flags during putting deleted revision from a cluster transaction
  • [Subscriptions] fixed NRE in subscriptions when including counters that do not exist in the document
  • [.NET] updated to 5.0.3

Client API

  • [Operations] added 'GetRevisionsOperation'
  • [Querying] wrap next binary expression after negation in sub clauses
  • [Session] fixed issue with lazily load documents not using aggressive cache properly
  • [Subscriptions] fixed ObjectDisposedException that could occur when disposing subscription worker multiple times
  • [Subscriptions] fixed JavaScript translation for Id property and Load, allow to use member init
  • [Subscriptions] do not redirect to node with failures

Studio

  • [Backup] added 'Content-Type' header so browsers like Firefox can then recognize file name properly of exported database
  • [Databases] do not show document and index counts on databases that do not belong to the current node (remote)
  • [Indexes] fixed issue with Indexing performance view not loading correctly when cmpxchg are used in index