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.3 5.1 5.0 4.2 4.1 4.0 3.5 3.0 2.5

What's new

5.2.4 (52016) - 2021/11/15

Server

  • [Backup] do not cancel running backup even if task was moved to another node
  • [Backup] fixed issue with restoring Snapshot backup when compare exchange values exist
  • [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
  • [ETL] allow to pass SQL table name with a schema in the script
  • [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
  • [Indexes] fixed issue with throttled indexes getting stuck sometimes
  • [Indexes] added the ability to turn off the size limit check when requesting for index entries
  • [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
  • [Querying] properly handle NULL_VALUE when using alphanumeric sorting
  • [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
  • [Replication] fixed issue with negotiating replication protocol version
  • [Transactions] properly handling Change Vector when TxMerger executes transactions one by one to avoid returning invalid Change Vector
  • [TCP] properly dispose Ping connections to avoid having a lot of CLOSED_WAIT sockets
  • [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

  • [Document Store] exposed 'HiLoIdGenerator'
  • [Session] support for selecting metadata in single call expressions
  • [Session] support for nested projections when using LINQ
  • [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

  • [Admin Logs] clearing admin logs when they are paused should not start them
  • [Compare Exchange] display Raft Index
  • [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
  • [OLAP ETL] fixed issue with opening Test Area
  • [Patching] provide number of affected documents before executing patch
  • [Querying] fixed issue with providing query parameters as inline JSON
  • [Threads] added the ability to view a stack trace of a single thread
  • [Threads] added the ability to filter by thread Id

5.2.3 (52012) - 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'
  • [Configuration] added 'Security.Certificate.Validation.KeyUsages'
  • [Encryption] decreased memory footprint when generating storage report with attachments on an encrypted database
  • [Indexes] fixed possible storage corruption in indexes that are using Suggestions
  • [Indexes] fixed issue when modifying '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
  • [Indexes] 'ErrorIndexStartupBehavior.ResetAndRestart' will also try to reset the Faulty indexes
  • [Indexes] index will create a Studio performance hint notifications when substantial amount of LoadDocument & LoadCompareExchangeValue calls per single reference item exists
  • [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

Studio

  • [Certificates] added the ability to generate client certificate with expiration date in days instead of months
  • [Certificates] allow Operators to enter Custom Analyzers & Sorters views
  • [ETL] added the ability to edit script name
  • [Indexes] fixed NRE when navigating to a non-existing index
  • [Indexes] more detailed index change history
  • [Ongoing Tasks] added the ability to create ongoing task as disabled
  • [Querying] fixed issue with Spatial queries not showing 'Map view'

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.2.2 (52003) - 2021/08/16

Server

  • [Backups] moved to official Azure, AWS S3 and AWS Glacier clients
  • [Backups] on export avoid ArgumentNullException because of lack of ClusterTransactionId which was added in 5.2
  • [Bulk Insert] added 'SkipOverwriteIfUnchanged' support
  • [Certificates] added support for 'PBEwithHmacSHA-256 encrypted certificates'
  • [Concurrency] fixed possibility of loosing a document tombstone when optimistic concurrency 'put' is done after 'delete'
  • [Configuration] added 'Storage.DiscardVirtualMemory' option
  • [Compression] added the ability to compress all collections without specifying their name individually
  • [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
  • [Indexing] method 'LoadDocument' should return null for null IDs
  • [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
  • [Querying] fixed issue with paging on unbounded set when 'StartsWith' on 'id()' is used
  • [Querying] support for loading multiple values from Lucene document when doing a projection
  • [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
  • [RQL] added support for parameters starting with a number e.g. $1
  • [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
  • [Windows] server will take into account Job memory limits when amount of resources available is calculated
  • [.NET] updated to 5.0.8

Client API

  • [Bulk Insert] added 'SkipOverwriteIfUnchanged' option
  • [Indexing] fixed issue with generated index definition from LINQ when generic arguments are used
  • [Querying] fixed issue with using 'Group' as a property name in includes
  • [Querying] fixed missing alias when doing a secondary level includes
  • [Operations] added 'GetDatabaseSettingsOperation' and 'PutDatabaseSettingsOperation'
  • [Revisions] added the ability to include revisions by date and Change Vector
  • [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

  • [Ongoing Tasks] will keep their state (Disabled/Enabled) on save instead of becoming enabled
  • [Performance Hints] added Total Documents Size to paging performance hint
  • [Querying] correctly display number of documents when delete by collection is executed
  • [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
  • [Traffic Watch] added response size
  • do not align text in all of the notifications to center
  • fixed issue with setting LoadBalanceBehavior

Tools

  • [Debug] added ability to save traffic watch

5.2.1 (52001) - 2021/07/01

Server

  • [Configuration] added 'Storage.MaxNumberOfRecyclableJournals'
  • [ETL] in case of a upload failure in OLAP ETL try to cleanup after yourself in the remote destinations
  • [Indexes] fixed regression in Lucene that could cause 'ArgumentException' with ' Illegal offset size' message
  • [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
  • [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
  • [Utils] fixed issue with DisposeAsync not preventing double dispose in certain situations

Client API

  • [Bulk Insert] fixed possible hang and avoid multi-threaded access to context
  • [Session] better exception when null is passed to TimeSeriesFor
  • [Session] fixed 'ArgumentNullException' when storing an empty string on full .NET application
  • [Session] return null when Load is used and empty string is passed to match the behavior when null string is passed
  • [JSON] properly clearing internal JsonReader state to avoid hitting MaxDepth exception
  • [Querying] added support for enclosing the previous statements in clauses

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
  • [Subscriptions] fixed possibility of Studio hanging in the Edit Subscriptiion View
  • [Subscriptions] fixed issue with displaying Test area in the Edit Subscriptiion View

5.2.0 (52000) - 2021/06/21

Features

  • [Certificates] added read-only certificates. Documentation
  • [Cluster] added support for atomic cluster transactions (enabled by default)
  • [Databases] added the ability to prevent deletes (with ignore or immediate error on delete)
  • [ETL] added OLAP ETL support. Documentation
  • [Indexes] added rolling index deployment. Documentation
  • [Indexes] added the ability to define custom analyzer directly in Studio without the need of creating a custom DLL (database and server-wide). Documentation
  • [Indexes] up to 30% improvement in performance when doing spatial indexing
  • [Indexes] added the ability to throttle indexing
  • [Indexes] exposed index history in Studio. Documentation
  • [Monitoring] added monitoring endpoints, Telegraf plugin and Grafana template. Documentation
  • [Querying] added the ability to define custom sorters server-wide
  • [Querying] up to 20% improvement in performance when doing spatial queries
  • [Querying] added the ability to display spatial data on map in Studio. Documentation
  • [Studio] added Cluster Dashboard. Documentation

Server

  • [Backups] do not put empty string to RemoteFolderName when creating server-wide backup
  • [Certificates] fixed issue with replacing a certificate using pinning hash
  • [Cluster] large raft commands should not cause cluster timeouts and cause unnecessary elections
  • [Configuration] added 'License.DisableAutoUpdateFromApi' configuration option
  • [Indexes] added support for ISO-8601 datetime format
  • [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 deadlock that could happen when max number of concurrent indexes is being set
  • [JavaScript] updated Jint to latest version
  • [JSON] optimized blittable JSON parsing
  • [Querying] queries that happen during index replacement should properly react to the OperationCanceledException as well, this exception can happen at Voron storage level when storage of an old index is being disposed
  • [Querying] fixed possible NRE that could happen when queries are being executed and we are skipping results
  • [Replication] fixed possible NRE when Documents DeleteRevision flag was not stripped properly
  • [Replication] fixed possible endless loop when we have missing attachments, but batch size is limiting the batch
  • [Replication] fixed possible endless loop caused by not handling attachment stream files properly when destination database in encrypted
  • [Voron] fixing case where a newly created read transaction could get an already disposed pager state of a scratch file
  • [.NET] updated to 5.0.7

Client API

  • [Querying] added LongCount and LongCountAsync to the queries
  • [Session] fixed issue with including typed Time Series
  • [Time Series] added function evaluation support for group by expressions

Studio

  • added view for removing change vector entries of a database
  • sample data now includes spatial data
  • refreshed warning message displayed when database is being deleted
  • refresh server uptime properly on the dashboard
  • setup should show incompatible browser notification