What's new

4.1.5 (41013) - 2019/04/15

Server

  • [Backups] fixed calculation if incremental backup should have been started when only Compare Exchange and/or Identities were changed
  • [Cluster] stability improvements
  • [Cluster] fixed possibility of database hanging in 'pending for deletion' progress
  • [Cluster] prevent adding node to a cluster when leader is initialized with port 0 (random)
  • [Documents] better validation for document ID, counter & attachment name sizes
  • [ETL] fixed failover in ETL that could occur when node was no relevant for this operation
  • [ETL] fixed the possibility of ETL hanging when too many counters were replicated at once
  • [Indexing] fixed possible NRE when defining Output Collection in JavaScript indexes
  • [Indexing] better index name validation
  • [Indexing] added support for Count() method, previously only Count property was supported
  • [Indexing] optimize querying, by reusing and refreshing the IndexReader, not opening a new one after each indexing batch
  • [Indexing] filtering-out terms that do not have any matching documents anymore
  • [Indexing] fixed issue with switching back index to normal operation from low-memory mode
  • [JavaScript] fixed possibility of non-disposing the blittable JSON objects, when patching script was throwing an exception
  • [Subscriptions] limited the maximum send batch size to 32MB on x64 and 4MB on x86 machines
  • [Subscriptions] fixed the possibility of an invalid Subscription state in non-leader nodes
  • [Replication] fixed Counter replication discrepancies
  • [Replication] fixed missing Attachment handling in Replication that could case endless repeats of replicationbatches in certain cases
  • [RQL] support for 'exact' in 'startsWith' and 'endsWith'
  • [Voron] fixed possible 'UnauthorizedAccessException' that could happen during disposal or deletion of a database of an index
  • [.NET Core] updated to .NET Core 2.1.10

Client API

  • [Compare Exchange] correctly escape characters in URLs
  • [LINQ] taking into account 'PropertyNameAttribute' from JSON.NET when converting LINQ to RQL
  • [Projections] fixed issue with projecting array length to custom projection class
  • [Projections] fixed issue with projecting identity of sub-collection object
  • [Projections] properly handling counter names with spaces
  • [Projections] fixed issue with projections failing when there are multiple loads with nested sibling lists
  • [Querying] support for 'exact' in 'StartsWith' and 'EndsWith'
  • [Session] state of Session will be cleared only after successful SaveChanges operation
  • [Subscriptions] fixed issue with retrieving subscription information via 'GetOngoingTaskInfoOperation'
  • fixed possible StackOverflowException that could occur rarely during Database deletion when Client tried to switch to a different node

Studio

  • [Indexing] added 'LowerCaseWhitespaceAnalyzer' to the list of analyzers
  • [Storage] added Storage Report for Server Store
  • reduced CPU usage needed for 'Server Dashboard View'
  • fixed memory leak in 'Server Dashboard View'
  • fixed caching issue with Studio files

4.1.5-patch-41012 - 2019/03/15

Server

  • [Backup] Fixed possible NRE if last backup status was created in older version
  • [Backup] Fixed restore operation so it won't create new change vectors
  • [Backup] Fixed restore of backup including subscriptions
  • [Cluster] Stability improvements
  • [Configuration] Added Storage.SkipChecksumOnRecovery option
  • [Data Subscriptions] Fixed respecting of MaxBatchSize option
  • [Data Subscriptions] Fixed possible AVE on running subscription when database is being shut down
  • [Indexing] Fixed possible deadlock during indexing replacement
  • [Indexing] Fixed deletion of artificial documents created by map-reduce indexes
  • [Revisions] Fixed consistency of revision replication
  • [Replication] Fixed possible AVE on attachment replication
  • [Replication] Fixed concurrent access to context in incoming replication handler
  • [Replication] Fixed memory leak when replicating attachments
  • [Replication] Improved handling of dealing with large incoming replication batches
  • [Transaction Replay] Fixed possible NRE
  • [Voron] Reduced initial storage size when running on x86
  • [Voron] Fixed usage of encrypted db when running on x86
  • [Voron] Fixed handling of global indexes usage which could result in AVE or even heap corruption
  • [.NET Core] Updated to .NET Core 2.1.9

Client

  • [Operations] Added overload to GetOngoingTaskInfoOperation allowing to get task info by name
  • [Querying] Fixed projections with the usage of multiple let statements
  • [Querying] Fixed usage of Select in Include for empty lists
  • [Querying] Allow to define boost 0 from the client API

Embedded

  • [Embedded] Added copying missing .so and .dylib files
  • [Embedded] Added ServerDirectory option to allow to point to a server directory

Studio

  • Layout improvements

4.1.4 (41010) - 2019/02/13

Server

  • [Cluster] Fixed logging of exceptions
  • [Compaction] Fixed compaction on 32 bits
  • [Compare Exchange] Deleting compare exchange entries on a database deletion
  • [Indexing] Fixed edge case in data compression of map-reduce indexes
  • [Indexing] Added support for the usage of Normalize() method on string values
  • [Indexing] Fixed indexing of deleted documents
  • [Replication] Fixed database change vector update if there are conflicts
  • [Replication] Fixed handling of conflicted revisions
  • [Replication] Fixed possible AccessViolationException when replicating huge batch
  • [Replication] Fixed replication of revisions
  • [Setup Wizard] Fixed continuation of cluster setup from a ZIP file
  • [Smuggler] Fixed possible NRE during import of tombstones
  • [Smuggler]] Fixed import if only revisions are loaded
  • [.NET Core] Updated to .NET Core 2.1.8

Tools

  • [Voron Recovery] Disabled data file syncing during the recovery

Studio

  • Added view for Transaction Record / Replay feature

4.1.4-patch-41009 - 2019/02/01

Server

  • [Cluster] Stability improvements
  • [Changes API] Support for failover
  • [CLI] Fixed infinite loop in CLI under certain conditions
  • [Debug] Fixed threads CPU usage calculation
  • [ETL] Fixed ETL from encrypted databases is not ignored if AllowEtlOnNonEncryptedChannel is set
  • [ETL] Changed defaults for the following settings: ETL.ExtractAndTransformTimeoutInSec - 30 sec, ETL.MaxNumberOfExtractedDocuments - 8192, ETL.MaxNumberOfExtractedItems - 8192
  • [Indexing] Fixing comparison of two enums in an indexing function
  • [Indexing] Fixed possible races in indexing replacement mechanism
  • [Indexing] Fixed error handling for disk full and out of memory errors
  • [Indexing] Fixed NRE when accessing Id or AsJson of a loaded document
  • [Replication] Fixed attachment change vector on replication
  • [Revisions] Fixed number of revisions after database restore
  • [Revisions] Fixed resolved document and revisions behavior
  • [SNMP] Added entry for total number of indexing errors in database
  • [Voron] Fixed the recovery process on database startup that could cause data corruption and checksum mismatch errors
  • [Voron] Fixed detection if compression buffers needs to be resized
  • [Voron] Fixed update of large values in the same transaction
  • [Voron] Schema updated to version 23
  • [.NET Core] Updated to .NET Core 2.1.7

Experimental

  • [Cluster Transactions] Fixed NRE when putting new counter after cluster transaction
  • [Cluster Transactions] Fixed reapplying cluster transaction commands
  • [Counters] Fixing database change vector update after updating a counter
  • [Counters] Fixed error in delete counter replication

Tools

  • [Voron Recovery] Fixed scenario that applying journals on recovery enlarges data file
  • [Voron Recovery] Added IgnoreInvalidJournalErrors option

Client

  • [Querying] Fixed queries for map-reduce indexes using projection and load
  • [Querying] Marked QueryStatistics.ResultSize and QueryResult.ResultSize as obsolete
  • [Querying] Fixed NRE instead of throwing IndexDoesNotExistException for lazy queries if an index doesn't exist
  • [Session] Fixed order of disposing blittables after calling SaveChanges that resulted in NRE
  • [Session] Fixed loading of a document with the usage of .Include if it was already loaded
  • [Smuggler] Fixed error handling when import operation fails before we send the request or in the middle of it to avoid hanging
  • Increased number of allowed connections when running on full .net framework (from 2 to 10,000)

Studio

  • [Querying] Fixed inifinite loop for queries using distinct
  • [Cluster] Fixed "Voting in progress" message visibility
  • [Backup] Fixed restoring a backup into an encrypted database
  • [Setup Wizard] Let's Encrypt option isn't available on MacOS

4.1.4-patch-41008 - 2019/01/07

Server

  • [Backup] Fixed backup of indexes, identities and compare exchange values during incremental backup
  • [Backup] Fixed issue with stopping the backup when FTP backup is in progress
  • [Configuration] Changed default value of TransactionMerger.MaxTimeToWaitForPreviousTxInMs from 1000 to 0 which will enables auto-tuning
  • [Configuration] Added Notifications.FilterOut option that gives the ability to filter-out the notifications server-side
  • [Configuration] Added Monitoring.Cpu.Exec and Monitoring.Cpu.Exec.Arguments options
  • [Configuration] Added DataDir.EnforcePath
  • [Configuration] Added Storage.SyncJournalsCountThreshold
  • [Compaction] Fixing database compaction if Storage.TempPath config was set
  • [Cluster] Making sure disk full error will result in proper client failover
  • [Cluster] Stability improvements, fixed error handling
  • [Cluster] Making sure AuthorizationException isn't handled as unexpected error
  • [Cluster Transactions] Properly updating the database change vector
  • [CPU] Added the ability to execute a custom script that will override OS metrics
  • [ETL] Subscribing to document and counter changes only if there is any ETL process defined
  • [Indexing] Fixing possible access violation exception in map-reduce indexes when getting exception in unexpected phase
  • [Indexing] Fixed usage of load in JavaScript indexes
  • [Indexing] Dedicated error handling of disk full error
  • [Indexing] Improved performance of map-reduce indexes
  • [Indexing] Map-Reduce will not store implicit 'null' values anymore
  • [Indexing] Using correct analyzer for dynamic fields ('CreateField') when Search or Exact is used
  • [Indexing] Memory utilization adjustments
  • [Indexing] Support for 'Enumerable.Zip'
  • [Lucene] Memory optimizations
  • [Memory] Memory utilization enhancements and performance improvements
  • [Migration] Checking access to the data path when migrating from legacy data files
  • [Migration] Added support for PostgreSQL and Oracle
  • [Patching] Fixed issues with patching nested objects that could occur due to invalid nested object hash code calculation
  • [Querying] Fixed error converting value "NULL_VALUE" to type nullable type
  • [Querying] Fixed queries using distinct, skip and projections
  • [Querying] Export CSV will export the 'raw index entries'
  • [Querying] Exporting to CSV will now take into account the stored fields
  • [Querying] Explanations will take Map-Reduce hash key if no group key is specified, and will check if group key is not stored in Lucene before attempting to extract it from the result
  • [Querying] Support for phrases in search
  • [Querying] Added '@index-score' to query results for Map-Reduce index
  • [Revisions] Import will not generate new revisions (unless Revisions are enabled)
  • [RQL] Support for parameters in declared RQL functions
  • [Storage] Added dedicated 'SchemaErrorException' that will be thrown on storage schema mismatch
  • [Storage] Added the ability to enforace database path to a specified in configuration directory
  • [Storage Report] Fixed allocated sizes showing NaN
  • [Storage Report] Fixed possible NRE when generating storage report
  • [Traffic Watch] Fixed possible high CPU when using Traffic Watch
  • [Voron] Fixed invalid page release after revisions bin deletion and documents deletions
  • [Voron] Fixed exception handling during creation of a new db to prevent getting errors when starting the db again
  • [Voron] Added checksum validation of all modified pages after we completed the recovery to ensure we'll throw early if we have corrupted state
  • [Voron] Fixed updating of in-memory state of journal page table after failure during a transaction commit
  • [Voron] Improved ownership handling of the lock used by flushing / syncing operations to improve the sync performance
  • [Voron] Improved the speed of recovery process on a db restart after large transactions
  • [Voron] Throwing early on attempt to use an errored transaction
  • [Voron] Better memory utilization for transaction headers
  • Fixed creation of a document tombstone that could result in ConcurrencyException when using optimistic concurrency in a cluster
  • Fixed possible out of memory when there is very high rate of requests
  • Fixed NRE when there is a conflict on a document in the @empty collection
  • Fixed database disposal which could result in locking db.lock file and prevent from starting the db again

Experimental

  • [Counters] improved counters batch performance
  • [Counters] Fixed revision creation for conflicted counters

Client

  • [Changes API] Fixed UnobservedTask
  • [Querying] Support for projections with nullable types
  • [Querying] Added the support for '.OrderBy' and '.OrderByDescending' methods when projection is done
  • [Querying] Fixed projections using Id field on map-reduce indexes
  • [Querying] Add overloads supporting ContainsAll and ContainsAny on typed enumerable fields
  • [Querying] Better support of projections using dictionaries
  • [Querying] Fixed possible cast issue when executing 'ToQueryable'
  • [Querying] 'ToQueryable' will not create artificial projection
  • [Querying] Updated Lambda2JS to 3.1.2 (fixes issues with projecting enum with not equal operator)
  • [Subscriptions] Fixed disposal of the request executor in SubscriptionWorker
  • [Subscriptions] Making sure subscriptions won't track projection results
  • [Session] fixed issue with loading multiple documents via ID when all IDs length is greater than 1024
  • Fixed deserialization errors on getting progress or result of operations

Studio

  • [Dashboard] Added option to sort columns
  • [Setup Wizard] Added more explanations
  • [Certificates] displaying certificate renewal date
  • [Configuration] Added the ability to configure default replication factor via Studio Configuration view
  • [Indexing Performance] optimized speed of rendering and memory consumption
  • [Setup] fixed domain name character validation regex
  • Memory optimizations on various views that are showing large amounts of data (e.g. indexing performance, IO stats)
  • Fixed detection of the newest Chrome
  • Add thread CPU usage view