What's new
4.0.6-patch-40047 - 2018/07/02
Server
[Attachments]
fixed possible data corruption caused by invalid offset use in re-used buffers[Backup]
fixed issue with recalculating backup time when backup frequency is changes[Cluster]
stability improvements[Cluster]
added '/admin/cluster/bootstrap' endpoint[Configuration]
addedSecurity.WellKnownCertificates.Admin
[Configuration]
addedLogs.UseUtcTime
[Culture]
server will run under InvariantCulture from now on[Docker]
fixed data corruption issues when CIFS is used e.g. Linux container under Windows Host with external mount[ETL]
reduced default batch processing time from 5 minutes to 60 seconds to reduce possible huge batches and high memory usage[Indexing]
fixed loading managed DLLs when 'AdditionalSources' are used[Indexing]
fixed possible NRE when Map-Reduce is used without a 'group by'[Indexing]
fixed handling of empty arrays defined explicitly in the definition[Indexing]
fixed issue with Indexing a nested complex 'Id' property[Linux]
fixed 'pwrite' call on 32-bit OS[Logging]
added support for writing logs in UTC or server local time (by default UTC)[Logging]
added/admin/logs/configuration
endpoint (GET and POST)[Migration]
fixed possible issue when database could be unloaded due to idleness when migration operation is performed[Notifications]
Slow IO warnings will be merged from now on into a single notification with detailed occurrences[Patching]
calling 'put' will not copy attachments[Querying]
fixed 'null' handling when values are passed directly and not as parameters[Querying]
by default queries with boost will sort by score if no 'order by' is specified[Querying]
fixed possible invalid seek position exception in Lucene[Tombstones]
proper handling of tombstone cleanup when attachments and revisions are used[TestDriver]
will auto-accept EULA[TestDriver]
added 'net461' target with proper AppDomain unloading hook[TestDriver]
properly escaping custom configuration file path with spaces in it- added support for non-Latin letters in database names
- updated to .NET Core 2.1.1
Client
[Conventions]
added 'TypeIsKnownServerSide' convention[Load]
method 'LoadAsync' should return 'default(T)' when null is passed to match sync method behavior[Load]
added various 'null-argument' checks[Operations]
added 'SetLogsConfigurationOperation' and 'GetLogsConfigurationOperation'[Querying]
queries on Map-Reduce indexes will not change all possible identifiers to 'id()' no longer[Querying]
properly unwrapping casts in expressions[Querying]
addedThenByScore
andThenByScoreDescending
[Querying]
fixed issue with translating two boolean queries into RQL[Projections]
fixed usage of Select on let values in queries
Studio
- added unsupported browser warning
- added the ability to bootstrap cluster from the Studio
- improved notification issues for better distinguishably
- storage size will include temporary files size also,
- various performance and stability fixes
- layout fixes
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 whencmpxchg
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]
addedPropertyNameConverter
[Conventions]
added RegisterQueryValueConverter that returnsobjects
instead ofstring
, markedstring
converter as obsolete[Headers]
will send major.minor.patch.build inRaven-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 andSaveEnumsAsIntegers
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 whenlucene()
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 withlucene()
[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]
addedforce
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 fromsettings.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 containssettings.default.json
instead ofsettings.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]
addedSecurity.AuditLog.FolderPath
andSecurity.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]
addedFirst, 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