[Voron] increased scratch buffer size to 6144 MB and added a threshold after which indexing/reducing batch sizes will start decreasing,
[Voron] map/reduce optimizations. We have done major work to optimize how RavenDB uses map/reduce on Voron. As a result, map/reduce performance on Voron has improved tremendously. However, this require a migration step during the first startup,
[Voron] optimized recovery code heavily to support slow I/O systems on large databases,
Changed shutdown sequence - each database / file system waits up to 3 seconds to complete existing requests before they get aborted,
Fixed creation of future batches (prefetching mechanism),
Changed index priority does not force index reset,
Handled failures of index resets,
Fixed loading of startup tasks when hosted in IIS,
Fixed Lucene.Net to properly dispose files in out of disk space scenario,
Fixed Lucene.Net memory allocation on queries. We have drastically reduced the amount of memory that is allocated per query, and improved the performance of queries substantially
Better handling of buffer allocations in websockets, reduces memory fragmentation,
Better handling of Take() / Skip() inside an index
Many small perf optimizations, memory allocations reductions, object pooling, etc. Drastic reduction in memory allocations on common code paths,
Allow only a single index to use the fast precomputation optimization at a time (reduce memory usage if multiple medium sized indexes are changed concurrently),
Re-implemented memory statistics checks using native calls to avoid expensive allocations,
Provide more detailed information when an index is corrupted,
Adding endpoint for stopping/starting just reduce work. More here,
Less aggressive changes to the batch size at scale, being more cautious gives us a bit slower perf but more stable system under load,
Fixed side-by-side index updates,
Allowed to update side-by-side index when it is still running,
Fixed .NET 4.6 compilation errors,
Fixed an NRE when the index definition was removed forcibly when using dynamic queries,
Fixed error handling during disposal causing an exception to escape thread boundary and crashing,
Fixed FIPS licensing issue on embedded databases,
Fixed a finalizer usage bug causing us to try to read from a closed handle,
Prevent corrupted index warning when creating a map-reduce index and indexing is disabled,
Preventing code from trying to use disposed internal transactions,
Properly dispose of timer instance when shutting down a database using expiration bundle,
Prevent an error loading ICSharpCode.NRefactory from killing RavenDB client startup
Added Include<TResult>(Expression<Func<T, object>> path) to async session,
Implemented GetMetadataForAsync<T>(T instance) in advanced options of async session of ShardedDocumentStore,
WithinRadiusOf marked as obsolete in spatial querying because of the parameter order inconsistency. WithinRadius is designated to be used instead. More here,
Added StartEtag to SubscriptionCriteria. More here,
Added opening strategies to data subscriptions. More here,
Added BeforeAcknowledgment and AfterAcknowledgment events to data subscription. More here,
Added "Query parsing" measure for ShowTimings query customization. More here,
[SQL Replication] Adding new replication will not force others to wait till it catches up with them
Studio
Patching now displays metadata,
Added the ability to force side-by-side index replacement,
Added the ability to create C# class from JSON document,
Various fixes and enhancements
Client API
added ToFacetsLazyAsync extension method to IQueryable,
conflicts can be automatically resolved by Client API during query operations if there is IDocumentConflictListener available
Installer
installer now contains NLog.Ignore.config for easier logging setup
version.3660 - 2015/04/07
Global
Various performance optimizations across both server and client
Server
[JavaScript] Parser now returns more descriptive errors,
[JavaScript]PutDocument method now returns Id of generated document,
[JavaScript] Each LoadDocument increases maximum number of steps in script using following formula MaxSteps = MaxSteps + (MaxSteps / 2 + (SerializedSizeOfDocumentOnDisk * AdditionalStepsPerSize)),
Added debug/raw-doc endpoint,
Prevented high CPU and excessive GC runs under low memory conditions,
Avoid leaking resources when failing to create a database,
Faster JSON serialization and deserialization,
Added backoff strategy for failing periodic exports,
Recognize Windows users with admin rights to system database as server admins,
[Periodic Export] Added support for remote folders for Amazon S3 and Microsoft Azure. Source here,
[SQL Replication] Renamed PerformTableQuatation to QuoteTables in SqlReplicationConfig. Source here,
[SQL Replication] Added Insert-only mode for tables, which will prevent deletes on that table. Source here,
[Replication] Added support for index and transformer replication (including deletions). Source here
Client API
Indexes can be deployed side-by-side using SideBySideExecute from AbstractIndexCreationTask, SideBySideCreateIndexes from IndexCreation and directly from DocumentStore using SideBySideExecuteIndex,
Added the ability to provide additional query to MoreLikeThis queries,
Added SetIndexLock to IDatabaseCommands. More here,
Added SetIndexPriority to IDatabaseCommands. More here,
Index priority can be set through IndexPriority property in IndexDefinition or Priority property in AbstractIndexCreationTask,
Smuggler
Added the ability to disable versioning during smuggling using disable-versioning-during-import option
FileSystem
Added support for @in queries (fixed the WhereIn method),
Added DeleteByQueryAsync to IAsyncFilesCommands,
Added RegisterDeletionQuery to IAsyncFilesSession,
Added RegisterResultsForDeletion to IAsyncFilesQuery
Deleted progress parameter of UploadAsync method in IAsyncFilesCommands,
Renamed StreamFilesAsync to StreamFileHeadersAsync in IAsyncFilesCommands,
Exposed Import/Export options in the Studio,
Exposed synchronization settings in the Studio,
Added concurrency checks support. Available by providing file Etags or enabling optimistic concurrency (added DefaultUseOptimisticConcurrency convention),
Added Take and Skip methods to querying API,
Fix: Registered files are tracked by session after SaveChangesAsync call,
Fix: Metadata update operation creates a file revision when Versioning Bundle is enabled,
Fix: Creating revisions of synchronized files when Versioning Bundle is enabled,
Fix: File revisions are not synchronized to destination file systems,
Added option RenameOnReset to Versioning Bundle configuration,
Added ability to create Versioning Bundle configuration for a specific directory,
Added AbstractSynchronizationTrigger trigger,
Added querying support for numeric metadata fields,
Renamed SynchronizeAsync to StartAsync in IAsyncFilesSynchronizationCommands,
Added support for smuggling RavenFS configurations
version.3599 - 2015/02/08
Server
preventing, by default, unrestricted access (Raven/AnonymousAccess set to Admin) to server when license is used. More here,
added the ability to replicate index and transformer definitions.
Bundles
[Replication] Added the ability to limit maximum received number of items in single replication batch using Raven/Replication/MaxNumberOfItemsToReceiveInSingleBatch setting,
[Replication] Source server will take into account low-memory conditions on destination server and adjust batch size
Client API
added PreserveDocumentPropertiesNotFoundOnModel convention. More here,
highlights can be accessed when performing projection or querying map-reduce index. More here,
added IndexAndTransformerReplicationMode convention that indicates if index and transformer definitions should be replicated when they are created using AbstractIndexCreationTask or AbstractTransformerCreationTask. More here,