What's new

4.0.5 (40045) - 2018/06/12

Server

  • [Cluster] stability improvements
  • [Cluster] compatibility with 4.1
  • [Cluster] fixed a possible high CPU issue on follower nodes caused by to WebSocket bug in .NET Core
  • [Cluster] fixed creation of a database directory on not relevant nodes
  • [Debug Package] server-wide package will filter-out disabled databases
  • [Indexing] fixed Auto-Index name when group by array is used
  • [Indexing] fixed a bug when we would not extend the GroupBy fields properly
  • [Indexing] fixed detection of idle indexes when running in cluster
  • [Indexing] fixed indexing of null values in arrays
  • [Indexing] fixed creation and matching of auto map-reduce indexes with different array grouping strategies
  • [Indexing] fixed changing the state of an idle index if starts to answer to queries
  • [Indexing] fixed edge case for detection of idle indexes
  • [JSON] fixed JSON parsing when string property size is exactly 32766
  • [Logging] fixed a race condition in the logging
  • [Memory] memory utilization improvements
  • [Querying] collection queries will handle distinct properly
  • [Querying] collection queries will no longer handle order by random, query will go to Lucene
  • [Querying] order by random queries will not be cached on the client
  • [Querying] properly caching parameterless queries
  • [Querying] improved Auto-Index matching on dynamic queries, avoiding a situation when empty index can be taken instead of a better one when querying by ID
  • [Querying] fixed NRE that could happen when cmpxchg was used without putting any values prior
  • [RQL] Handling NOT as a unary expression - fixes 'in' restriction for empty list when not operators present
  • [SQL ETL] fixed fallback and error notification dismiss
  • Preventing from unloading idle db if there are any active operations on a database
  • Ensuring an unique name of a temp export file for the offline migration
  • Fixed issues with running a server when custom temporary path is specified
  • Server will throw a better exception when there is a 'major' version mismatch between Client API and Server

Client

  • [Changes API] ForDocumentsOfType is marked as obsolete and not working
  • [Changes API] Fixed event leak in DatabaseConnectionState
  • [Conventions] added PropertyNameConverter
  • [Conventions] added RegisterQueryValueConverter that returns objects instead of string, marked string converter as obsolete
  • [Headers] will send major.minor.patch.build in Raven-Client-Version header from now on
  • [Includes] Include with two generics will create prefixed includes
  • [Indexes] fixed issues with creating indexes that contain nullable enums and SaveEnumsAsIntegers is turned on
  • [Operations] fixed issues on Linux to receive the status of the operation
  • [Projections] fixed single field projections
  • [Querying] queries using greater than / less than for value types will exclude nulls
  • [Subscriptions] will assert if store is initialized before subscription is opened
  • [Subscriptions] support for using constant fields in subscription typed definition
  • fixed serialization / deserialization of entities if using CamelCasePropertyNamesContractResolver
  • fixed possible deadlock when disposing document store if using Changes API

Studio

  • [About] new design
  • various performance and stability fixes
  • layout fixes

4.0.4-patch-40038 - 2018/05/18

Server

  • [Attachments] updating @last-modified of a parent document on each attachment change
  • [Configuration] added 'Security.DisableHttpsRedirection' configuration option
  • [Cluster] stability improvements
  • [CSV] better error handling
  • [Indexing] fixed possible duplicate reference to complex property in Map-Reduce indexes
  • [Indexing] fixed incorrect array indexing conversion to long instead of int
  • [Indexing] index by name lookup should be case sensitive for auto-indexes and case insensitive for static ones
  • [Indexing] better handling of map-reduce errors
  • [HTTP] when HTTPS is configured on port 443 then by default server will bind to 80 also and redirect all traffic to 443
  • [Licensing] better handling when server does not have connection to api.ravendb.net
  • [Linux] preventing NRE that could happen in HDD swapping detection code
  • [Logs] better logging
  • [OngoingTasks] ensure uniqueness for tasks
  • [Patching] added declared functions support
  • [Replication] stability improvements
  • [Revisions] properly decrementing count of revisions when revision is being deleted using a RevisionTombstone
  • [Querying] added support for leading wildcard when lucene() is used
  • [Querying] added alias support to facets in RQL
  • [Querying] fixed support for exact when exact is set via field options, not a query
  • [Querying] exact now can be used with lucene()
  • [Querying] lucene() now supports 'null'
  • [Smuggler] support for v4.1 smuggler files
  • [Statistics] fixed Concurrent Requests Count calculation
  • [Terms] Terms for field with spatial BoundingBox strategy will now be returned correctly
  • [Version] server will now remove new version notification on start if the server version is the same or greater than the one from notification

Client

  • [Attachments] 'session.Advanced.Attachments.GetNames' will throw if entity is not bound to session instead of returning empty array
  • [BulkInsert] fixed memory leak that would decrease performance significantly
  • [Commands] added force parameter to 'SeedIdentityForCommand'
  • [Cache] Aggressive Cache is now properly disposed on DocumentStore dispose
  • [Cache] Query cache will take into account null values properly now
  • [Event] added OnSessionCreated event to DocumentStore
  • [macOS] fixed exception that could occur on session open
  • [Operations] added OfflineMigrationOperation
  • [Operations] added UpdateDatabaseOperation
  • [Projections] support for byte array
  • [Querying] added .WhereLucene(fieldName, value, exact) overload
  • [Serialization] entity and command serialization is now separated to avoid sending wrongly serialized commands when the default serialization on client is overridden
  • [Streams] fixed performance issue that could occur when there is a huge property name variance between documents
  • fixed potential race-condition in RequestExecutor
  • changing validation function will invalidate all HttpClients in use to create new ones with correct validation function attached

Studio

  • [Backup] added progress
  • [ETL] exposed AllowEtlOnNonEncryptedChannel option to SQL ETL
  • various performance and stability fixes
  • layout fixes

TestDriver

  • [Configuration] will ignore configuration from settings.json from now on

4.0.3 (40036) - 2018/04/23

This is an aggregated build containing fixes released in patch versions since the previous stable build - 4.0.2 (40029) in addition with:

Server

  • [Backup] Smuggler and Restore operation should take into account the file extension when determining the order of files
  • [Backup] unfinished backup files will be marked with '.in-progress' extension
  • [Backup] preventing from saving more than one full or snapshot backup in the same folder
  • [Certificates] will not longer throw on startup if certificate is expired
  • [Cluster] stability improvements
  • [Configuration] added 'Storage.MaxScratchBufferSizeInMb'
  • [Compaction] more robust
  • [Indexes] better error handling on catastrophic failures
  • [Indexes] preventing a deadlock that could occur when index was being stopped and side-by-side replacement is in progress
  • [Indexes] fixed encryption for large indexes
  • [Indexes] fixed possible overflow when AlphaNumeric sorting is being used
  • [Indexes] editing side-by-side index now works properly and does not create an invalid index
  • [Indexes] preventing from creating an excessive indexing thread after replacing an index
  • [JSON] fixed LazyCompressedStringValue conversion
  • [JSON] fixed writing large strings
  • [Linux] optimized number of fsync calls
  • [Memory] fixed memory leak when encrypted database is being used
  • [Restore] added ability to disable ongoing tasks after restore
  • [Settings] the deployment package now contains settings.default.json instead of settings.json to prevent accidental overrides when updating the Server
  • [Setup] added UNIX file permissions to cluster deployment package
  • [Setup] fixed issues with updating expired licenses
  • [Voron] stability improvements
  • fixed big floating point numbers handling
  • databases will no longer unload when Changes API connection is opened
  • working directory is set automatically to executable directory on startup
  • updated to .NET Core 2.0.7

Client API

  • [Bulk Insert] checking if the background task state is not faulty on 'Store' operation to error early
  • [Caching] aggressive caching could not work when being mixed with non-aggressive loads
  • [Conventions] added UseCompression
  • [Operations] fixed missing disposal of Changes API when 'WaitForCompletion' throws timeout exception
  • [NuGet] added 'System.Runtime.InteropServices.RuntimeInformation' dependency

Studio

  • various performance and stability fixes
  • layout fixes

4.0.3-patch-40034 - 2018/03/30

Server

  • [Audit] allow to configure audit log
  • [Cluster] operators can now demote nodes and force timeouts
  • [Cluster] stability improvements
  • [Configuration] added Security.AuditLog.FolderPath and Security.AuditLog.RetentionTimeInHours
  • [Database] database will not be unloaded if only read operations are performed on it
  • [Encryption] fixed possible issue with loading encrypted database after restart
  • [JavaScript] fixed performance degradation issue
  • [JavaScript] fixed possible concurrency issue in Jint
  • [JavaScript] patching will not add property when it does not exist but the existence was checked in the JS
  • [JavaScript] support for 'map' on objects
  • [JSON] fixed possible "Invalid escape char 'r' in query response"
  • [Indexing] fixed NRE that could happen when statistics are retrieved,
  • [Indexing] added First, FirstOrDefault, Single, SingleOrDefault, Any, All support to arrays inside indexing functions
  • [Memory] better memory handling
  • [Migration] support for API keys
  • [Querying] do not return duplicate results when duplicate IDs are present inside 'IN' operator
  • [Restore] fixed issue with restoring Windows-made snapshots on Linux due to invalid path combining
  • [Service] support for service name with spaces
  • [Suggestions] should take into account field analyzer and match the 3.x behavior
  • [Voron] fixed possible corruption that could happen in map-reduce indexes
  • [Voron] fixed decreasing temp buffers file on Encrypted database when low on memory
  • support for 'multipart/form-data' when batches are being processed
  • more restrictive static index and database names

Client

  • [Headers] header values needs to be send using invariant culture to avoid getting bad response from Kestrel
  • [Projections] support for using reserved words
  • [Projections] support for 'map' on objects

Studio

  • various performance and stability fixes
  • layout fixes
  • improved memory stats displaying

4.0.3-patch-40033 - 2018/03/19

Server

  • [Certificates] improved the "Let's Encrypt" automatic renewal process
  • [Certificates] added certificate replacement alerts in addition to logs
  • [Compaction] fixed the possibility of index to stay in compaction state
  • [Configuration] trimming values
  • [Docker] returning RavenDB exit code as a container exit code
  • [ETL] improved error handling
  • [Indexing] fixed error handling
  • [Indexing] added the ability to enable errored index
  • [Indexing] fixed possible NRE in LuceneDocumentConverter when complex objects are indexed
  • [Indexing] converting 'null' to DynamicNullObject.ExplicitNull in index definition to enable null-propagation
  • [Memory] better memory management
  • [MultiGet] properly resetting HTTP status code
  • [Querying] better matching when querying Idle auto indexes
  • [RVN] fixed 'get-key' and 'put-key' operations
  • [SNMP] will return NoSuchInstance then value is not available
  • updated to .NET Core 2.0.6

Client

  • [Attachments] attachment operations in 'session' will respect the session database
  • [DocumentStore] disabled the ability to change 'Database' property in 'DocumentStore' after initilization
  • [DocumentStore] if 'Database' is null during initialization then 'DocumentStore' will throw
  • [Facets] will now use parametrized queries
  • [Facets] support for writing range expressions with not matching types (e.g. field is 'int' and value is 'double')
  • [Metadata] support for DateTime and DateTimeOffset
  • [Memory] properly disposing BlittableJsonReaders when streaming is used
  • [Operations] fixed race condition that could result in AccessViolationException
  • [Projections] DateTime.Now, UtcNow and Today will return JS Date object instead of milliseconds
  • [Projections] proper translation for .Count
  • [Querying] empty list passed to IN will return no results instead of throwing
  • [Lazy] when lazy loading with ID using ID that is in the session already should not return all documents
  • [Lazy] when lazy loading wirh IDs, session can return null dictionary, when session already contains data
  • [Lazy] fixed behavior when duplicate IDs are present
  • [Lazy] properly populating results for lazy loads that do not hit server

Studio

  • various performance and stability fixes
  • layout fixes
  • added the ability to replace cluster certificate