What's new

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

4.1.3 (41007) - 2018/11/19

Server

  • [Cluster] Fixed unexpected ConcurrencyException when using optimistic concurrency with deletions
  • [Cluster] Fixed possible high CPU issue when cluster loses the leader
  • [Configuration] Renamed Storage.OnCreateDirectory options to Storage.OnDirectoryInitialize
  • [Debug] Added more details to Debug Package
  • [ETL] Improved validation of added ETL tasks
  • [Indexing] Fixed indexing of large terms when using collation analyzer
  • [Indexing] Fixed index replacement handling
  • [Indexing] Better handling of EarlyOutOfMemoryException in indexing process
  • [Indexing] Improved memory allocation detection in indexing process
  • [Indexing] Fixed disposal of temp files created during indexing
  • [Logging] Disabled logging warning when reducing the size of compression buffers file when db is idle
  • [Patching] Clearing script runners cache when running in low memory
  • [Querying] Fixed not contains queries on empty collections
  • [Querying] Fixed in and between queries to take into account if index does not have 'exact' set on field
  • [Querying] Fixed loading of empty stored fields in projections
  • [Querying] Removed optimization of sort only queries
  • [Subscriptions] Protocol version detection to properly work against 4.0 version of the client
  • [Traffic Watch] Better tracking of failed queries
  • [Smuggler] Fixed @flags metadata when migrating from another database but skipping revisions or counters
  • [Smuggler] Fixed export of large counter values
  • [Voron] Fixed condition allowing to flushing when we a database is idle
  • [Voron] Fixed cleanup of recycled scratch buffers only when there is no open read transaction that is still using it
  • [Smuggler] Added the ability to filter out attachments or counters when doing smuggler import or export
  • [.NET Core] Updated to .NET Core 2.1.6

Client

  • [Cache] Fixed aggressive caching for POST requests
  • [Patching] Added BatchPatchCommandData command
  • [Projections] Fixed JS projections with dates
  • [Smuggler] Fixed returning progress of operations

Studio

  • [Connection Strings] Fixed detection of connection string can be removed
  • [Notifications] Delete by collection will display details in notification panel
  • [Setup Wizard] Setup Wizard was failing when we were not creating a new cluster but Studio Environment was set

4.1.3-patch-41006 - 2018/11/05

Server

  • [Cluster] node can be added to cluster only if both nodes can establish a connection to each other
  • [Compaction] Map-Reduce indexes cannot be compacted any longer because Map-Reduce mechanism relies on data format and position
  • [Compaction] index compaction can be properly stopped when database is shutting down or user cancels the operation
  • [Configuration] added Storage.OnCreateDirectory.Exec,Storage.OnCreateDirectory.Exec.ArgumentsandStorage.OnCreateDirectory.Exec.TimeoutInSec
  • [Configuration] added Indexing.TransactionSizeLimitInMb,Indexing.ScratchSpaceLimitInMb,Indexing.GlobalScratchSpaceLimitInMb and Indexing.MaxTimeToWaitAfterFlushAndSyncWhenExceedingScratchSpaceLimit
  • [Conflicts] fixed exception that could occur in suggest conflict resolution endpoint related to the invalid array detection
  • [Disk] fixed disk space calculation for symbolic links
  • [Embedded] support for old csproj format
  • [JSON] fixed Blittable JSON hash code calculation
  • [JSON] fixed escape char handling
  • [Indexing] better memory handling
  • [Indexing] better error handling
  • [Indexing] fixed collection name detection when WhereEntityIs is used
  • [Indexing] added the ability to limit the amount of scratch space that is used in indexing (locally and globally)
  • [Indexing] fixed issue with map-reduce not handling IDs with culture-specific characters properly
  • [Linux] fixed temporary file deletion issue
  • [Memory] better memory handling
  • [Migration] added 'SkipServerCertificateValidation' option
  • [Migration] added 'TransformScript' option
  • [SQL ETL] retying to open connection few times and properly disposing it
  • [Traffic Watch] better handling for failed queries
  • [Voron] added the ability to execute user-defined script before voron directory is created

Client

  • [Conventions] added FindProjectionPropertyNameForIndex convention
  • [Projections] fixed the issue with projecting single array field
  • [Request Executor] fixed possible NRE in timer inside Request Executor
  • [Serializer] fixed issue with using the serializer by multiple threads at once

Studio

  • [Cluster] added 'Test Connection' button to test if both nodes can establish a proper connection between each other
  • [Documents] clone with take into account attachments and counters from now on
  • [Storage Report] recyclable journals are counted as temporary files
  • [SQL ETL] added the ability to test deletion
  • better error handling

4.1.3-patch-41005 - 2018/10/22

Server

  • [Backup] fixed issue with sending backups to S3 eu-west-1
  • [Backup] backup restore operation will use proper inherited paths during execution
  • [Cluster] stability improvements
  • [Compaction] fixed issues with compaction crashing the Studio due to large amount of notifications sent at once
  • [Encryption] on database deletion secret key will be removed as well
  • [JSON] optimized JSON equals() implementation
  • [Memory] better memory management
  • [Memory] better memory management on x86
  • [Querying] proper support for Count when doing a collection query with starts with
  • [Querying] proper support for using comments inside 'update' and 'select' in RQL
  • [Querying] better invalid alias detection in RQL queries
  • [Notifications] fixed possible NRE during Notification storage initialization sequence
  • [Voron] fixed tree rebalacing on compressed pages, issue could result in map-reduce indexing error
  • [Voron] ensuring that disposed scratch files that are in recyclable area are removed on database dispose

Client

  • [Compare Exchange] identity properties should not be stripped when compare exchange is used
  • [Memory] fixed memory leak that could occur due to invalid memory fragment size calculation
  • [Suggestions] fixed issue wit using suggestions in async session
  • [Querying] fixed issue when OfType is used in projection and the identity property is fetched from wrong base type
  • [Querying] fixed issue with invalid RQL generation when Where+Any is used on a primitive type collection

Studio

  • [Backup] updated the list of S3 regions
  • [Custom Columns] custom columns order will be saved in local storage
  • [Traffic Watch] will display errors as errors
  • various fixes and stability improvements

4.1.2 (41004) - 2018/10/15

Server

  • [Backups] added the ability to skip indexes importing during creation database from backup
  • [Certificates] better certificate handling
  • [Configuration] new 'Storage.PrefetchBatchSizeInKb' and 'Storage.PrefetchResetThresholdInGb' configuration option
  • [Cluster] stability improvements
  • [CPU] fixed high CPU usage during idle state
  • [Embedded] on start command line arguments are cloned to avoid adding internal arguments to user defined options
  • [Embedded] in ASP.NET the 'AppContext.BaseDirectory' is not poiting to 'bin' folder, because of that if server file is not found in that location, also 'bin' will be checked
  • [ETL] properly handling multiple ETL scripts
  • [ETL] better detection for empty transformations
  • [ETL] better SQL ETL database connection handling
  • [ETL] added 'deleteDocumentsBehavior' method for generic deletion handling
  • [Indexing] added 'CreateField' that contains all variety of options for advanced usage
  • [Indexing] when 'default field options' are defined then 'default field values' will not be removed per each field for proper inheritance handling
  • [Indexing] fixed possible IndexOutOfRange in 'LastIndexOf' and 'LastIndexOfAny' string extensions in indexing functions
  • [Indexing] support for grouping by nested field values
  • [Indexing] fixed possible map-reduce error due to unhandled case in the reduce phase
  • [Indexing] fixed the possibility of skipping documents during indexing when in low memory condition and references are changed in meanwhile
  • [Linux] retry on EINVAL pwrite fail if cifs/nfs mount
  • [Memory] adjustments in memory utilization and management
  • [Patching] fixed issue with parsing and patching stored indexes values
  • [Patching] fixed null propagation on array methods
  • [Querying] fixed issues with sort-only queries not returning proper number of results or returning duplicates
  • [Querying] using 'group by' on an index query will result in an error
  • [Querying] support for 'fuzzy'
  • [Querying] support for 'proximity'
  • [Storage] better prefetching behavior
  • [Traffic Watch] added request body content
  • [Transactions] support for transaction recording
  • [.NET Core] updated to 2.1.5

Experimental

  • [Cluster Transactions] fixed issue with executing transaction on a database that was created in version 4.0.x
  • [JavaScript Indexes] added 'CreateField' that contains all variety of options for advanced usage

Client

  • [JSON] fixed change detection when original value was an array and new one is an object with '$type' property
  • [Operations] not setting 'DocumentStore.Database' will no longer cause DeleteByQueryOperation to throw
  • [Patching] 'session.Advanced.Increment' will generate a patch that checks if the original value is 'null' before concatenating the string
  • [Projections] support for a predicate in LINQ Count
  • [Projections] fixed Min/Max behavior on filtered empty collections
  • [Projections] ensure 'null' coalescing has parenthesis
  • [Smuggler] fixed issues in smuggler when no default database is set in 'DocumentStore'
  • [Store] storing 'new object()' should not set any collection, it should go to '@empty' one

Studio

  • various performance and stability fixes
  • layout fixes