Hi all,
We're doing a spike in which we're using an embedded instance of RavenDB 3.0.3800 as a denormalization store for events coming from a SQL Server database (using NEventStore). After reading pages of discussions, blogs as well as the documentation site, I'm still in doubt whether we should continue with RavenDB. Our current approach is maybe a bit naive, but while denormalizing, we're essentially loading the projection (which is about 30-40KB), updating the projection and then calling SaveChanges on the session. We have no indexes whatsoever.
We're observing a couple of things:
Some questions:
The fact that we don't have control of what's going on, makes us doubt on this potentially fabulous product. So any advice is much appreciated.
Cheers,
Dennis
Hibernating Rhinos Ltd
Oren Eini l CEO l Mobile: + 972-52-548-6969
Office: +972-4-622-7811 l Fax: +972-153-4-622-7811
--
You received this message because you are subscribed to the Google Groups "RavenDB - 2nd generation document database" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ravendb+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
var documentStore = new EmbeddableDocumentStore
{
DataDirectory = dataDir,
Conventions =
{
MaxNumberOfRequestsPerSession = 100,
ShouldCacheRequest = (url) => false
},
Configuration =
{
MemoryCacheLimitMegabytes = 256,
DataDirectory = dataDir,
CountersDataDirectory = Path.Combine(configuration.RavenDBDataFolder, "Counters"),
CompiledIndexCacheDirectory =
Path.Combine(configuration.RavenDBDataFolder, "CompiledIndexCache"),
DefaultStorageTypeName = "Voron",
Storage = { Voron = { MaxBufferPoolSize = 2, MaxScratchBufferSize = 1024 }}
},
EnlistInDistributedTransactions = false,
};
3.0.3800
W.r.t. the counters, I copied that from a previous project. Previous builds were dropping output in folders we didn’t’ except and fixed all folders to the same location. Does it cause any side-effects?
--
You received this message because you are subscribed to a topic in the Google Groups "RavenDB - 2nd generation document database" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ravendb/ZCKsa7gNc-I/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ravendb+u...@googlegroups.com.
It shouldn't.
The config looks fine
Instead of sending the sources and/or the original event sourcing database, would it help if I send you the NLog files I collected? If so, where can I upload these?
So if the settings are correct, why does Management Studio => Debug => Config return this?
{
"Replication": {
"FetchingFromDiskTimeoutInSeconds": 30,
"ReplicationRequestTimeoutInMilliseconds": 60000,
"ForceReplicationRequestBuffering": false,
"MaxNumberOfItemsToReceiveInSingleBatch": null
},
"Prefetcher": {
"FetchingDocumentsFromDiskTimeoutInSeconds": 5,
"MaximumSizeAllowedToFetchFromStorageInMb": 256
},
"Storage": {
"PreventSchemaUpdate": false,
"Voron": {
"MaxBufferPoolSize": 4,
"InitialFileSize": null,
"MaxScratchBufferSize": 6144,
"ScratchBufferSizeNotificationThreshold": 1024,
"AllowIncrementalBackups": false,
"TempPath": null,
"JournalsStoragePath": null,
"AllowOn32Bits": false
},
"Esent": {
"JournalsStoragePath": null
}
},
"FileSystem": {
"MaximumSynchronizationInterval": "00:01:00",
"DataDirectory": "C:\\Workspaces\\VisionSuite.IntegrationHub\\Sources\\IntegrationHub.TestHost\\bin\\Debug\\FileSystems\\",
"IndexStoragePath": "C:\\Workspaces\\VisionSuite.IntegrationHub\\Sources\\IntegrationHub.TestHost\\bin\\Debug\\FileSystems\\Indexes",
"DefaultStorageTypeName": null
},
"Encryption": {
"UseFips": false,
"EncryptionKeyBitsPreference": 128,
"UseSsl": false
},
"Indexing": {
"MaxNumberOfItemsToProcessInTestIndexes": 512,
"DisableIndexingFreeSpaceThreshold": 2048,
"DisableMapReduceInMemoryTracking": false
},
"WebSockets": {
"InitialBufferPoolSize": 131072
},
"DatabaseName": "IntegrationHub",
"FileSystemName": null,
"CountersDatabaseName": null,
"MaxClauseCount": 1024,
"MaxSecondsForTaskToWaitForDatabaseToLoad": 5,
"IndexAndTransformerReplicationLatencyInSec": 600,
"AllowScriptsToAdjustNumberOfSteps": false,
"TombstoneRetentionTime": "14.00:00:00",
"MaxConcurrentServerRequests": 512,
"MaxConcurrentRequestsForDatabaseDuringLoad": 50,
"MaxConcurrentMultiGetRequests": 192,
"PrefetchingDurationLimit": 5000,
"BulkImportBatchTimeout": "00:01:00",
"DatabaseOperationTimeout": "00:05:00",
"TimeToWaitBeforeRunningIdleIndexes": "00:10:00",
"TimeToWaitBeforeRunningAbandonedIndexes": "03:00:00",
"TimeToWaitBeforeMarkingAutoIndexAsIdle": "01:00:00",
"TimeToWaitBeforeMarkingIdleIndexAsAbandoned": "3.00:00:00",
"ActiveBundles": [],
"HeadersToIgnore": [],
"CustomTaskScheduler": null,
"RedirectStudioUrl": null,
"UseDefaultOAuthTokenServer": true,
"Settings": [
"Raven/RunInMemory",
"Raven/CompiledIndexCacheDirectory",
"Raven/StorageEngine",
"Raven/DataDir",
"Raven/Esent/LogsPath",
"Raven/TransactionJournalsPath",
"Raven/VirtualDir"
],
"ServerUrl": "http://ws002:38080/",
"ResetIndexOnUncleanShutdown": false,
"MaxPageSize": 1024,
"MemoryCacheLimitPercentage": 0,
"MemoryCacheLimitMegabytes": 7011,
"MemoryCacheLimitCheckInterval": "00:02:00",
"IndexingClassifier": {},
"MaxNumberOfItemsToProcessInSingleBatch": 131072,
"InitialNumberOfItemsToProcessInSingleBatch": 512,
"MaxNumberOfItemsToReduceInSingleBatch": 65536,
"InitialNumberOfItemsToReduceInSingleBatch": 256,
"NumberOfItemsToExecuteReduceInSingleStep": 1024,
"MaxNumberOfParallelProcessingTasks": 8,
"NewIndexInMemoryMaxBytes": 67108864,
"HostName": null,
"Port": 38080,
"ExposeConfigOverTheWire": "Open",
"AccessControlAllowOrigin": [],
"AccessControlMaxAge": "1728000",
"AccessControlAllowMethods": "PUT,PATCH,GET,DELETE,POST",
"AccessControlRequestHeaders": null,
"VirtualDirectory": "/",
"HttpCompression": true,
"AnonymousUserAccessMode": "Admin",
"AllowLocalAccessWithoutAuthorization": false,
"RejectClientsMode": false,
"OAuthTokenKey": "<not shown>",
"IgnoreSslCertificateErrors": "None",
"WorkingDirectory": "C:\\Workspaces\\VisionSuite.IntegrationHub\\Sources\\IntegrationHub.TestHost\\bin\\Debug\\",
"DataDirectory": "C:\\Workspaces\\VisionSuite.IntegrationHub\\Sources\\IntegrationHub.TestHost\\bin\\Debug\\.\\Data\\IntegrationHub\\",
"CountersDataDirectory": "C:\\Workspaces\\VisionSuite.IntegrationHub\\Sources\\IntegrationHub.TestHost\\bin\\Debug\\Data\\Counters\\",
"DefaultStorageTypeName": "Voron",
"RunInMemory": false,
"DisableInMemoryIndexing": false,
"TransactionMode": "Safe",
"WebDir": "C:\\Workspaces\\VisionSuite.IntegrationHub\\Sources\\IntegrationHub.TestHost\\bin\\Debug\\Raven/WebUI",
"PluginsDirectory": "C:\\Workspaces\\VisionSuite.IntegrationHub\\Sources\\IntegrationHub.TestHost\\bin\\Debug\\Plugins\\",
"AssembliesDirectory": "C:\\Workspaces\\VisionSuite.IntegrationHub\\Sources\\IntegrationHub.TestHost\\bin\\Debug\\Assemblies\\",
"EmbeddedFilesDirectory": "",
"CreatePluginsDirectoryIfNotExisting": true,
"CreateAnalyzersDirectoryIfNotExisting": true,
"CompiledIndexCacheDirectory": "C:\\Workspaces\\VisionSuite.IntegrationHub\\Sources\\IntegrationHub.TestHost\\bin\\Debug\\.\\Data\\CompiledIndexCache\\",
"OAuthTokenServer": "http://ws002:38080/OAuth/API-Key",
"DisableDocumentPreFetching": false,
"MaxNumberOfItemsToPreFetch": 131072,
"RunInUnreliableYetFastModeThatIsNotSuitableForProduction": false,
"MemoryCacheExpiration": "01:00:00",
"CreateAutoIndexesForAdHocQueriesIfNeeded": true,
"MaxIndexCommitPointStoreTimeInterval": "00:05:00",
"MinIndexingTimeIntervalToStoreCommitPoint": "00:01:00",
"MaxNumberOfStoredCommitPoints": 5,
"MemoryLimitForProcessingInMb": 1024,
"DynamicMemoryLimitForProcessing": 1073741824,
"IndexStoragePath": "C:\\Workspaces\\VisionSuite.IntegrationHub\\Sources\\IntegrationHub.TestHost\\bin\\Debug\\.\\Data\\IntegrationHub\\Indexes",
"AvailableMemoryForRaisingBatchSizeLimit": 768,
"MaxProcessingRunLatency": "00:05:00",
"IsTenantDatabase": true,
"DisableClusterDiscovery": false,
"TurnOffDiscoveryClient": false,
"ServerName": null,
"MaxStepsForScript": 10000,
"MaxRecentTouchesToRemember": 1024,
"AdditionalStepsForScriptBasedOnDocumentSize": 5,
"MaxIndexWritesBeforeRecreate": 262144,
"MaxSimpleIndexOutputsPerDocument": 15,
"MaxMapReduceIndexOutputsPerDocument": 50,
"PrewarmFacetsOnIndexingMaxAge": "00:10:00",
"PrewarmFacetsSyncronousWaitTime": "00:00:03",
"FlushIndexToDiskSizeInMb": 5,
"EnableResponseLoggingForEmbeddedDatabases": false,
"NewIndexInMemoryMaxTime": "00:15:00",
"ImplicitFetchFieldsFromDocumentMode": "Enabled"
...
If, with “on what database”, you mean the data base type, it’s Voron.
DB settings?
From: rav...@googlegroups.com [mailto:rav...@googlegroups.com] On Behalf Of Oren Eini (Ayende Rahien)
Sent: Monday, 23 November, 2015 09:39
To: ravendb <rav...@googlegroups.com>
Subject: Re: [RavenDB] Event Sourcing, Embedded RavenDB and memory consumption using 3.0.3800
On what database?
And what is shown in the db settings for this?
--
In the spike, we only have a single database (next to the System one).
But I’ll send you a full repo momentarily through the support email.
--
You received this message because you are subscribed to a topic in the Google Groups "RavenDB - 2nd generation document database" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ravendb/ZCKsa7gNc-I/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ravendb+u...@googlegroups.com.
Send the details directly to that email address..
From: rav...@googlegroups.com [mailto:rav...@googlegroups.com] On Behalf Of Oren Eini (Ayende Rahien)
Sent: Monday, 23 November, 2015 09:39
--
You received this message because you are subscribed to a topic in the Google Groups "RavenDB - 2nd generation document database" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ravendb/ZCKsa7gNc-I/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ravendb+u...@googlegroups.com.
Michael Yarichuk
RavenDB Core Team
Tel: 972-4-6227811
Fax:972-153-4-6227811
Email : michael....@hibernatingrhinos.com
RavenDB paving the way to "Data Made Simple" http://ravendb.net/
Hi Michael,
Thanks for analyzing my repo. Are you sure that document is 200 MB? I was expecting something like 20-30 KB. That must be the reason it failed. So how did you analyze that? I couldn’t use Raven Management Studio myself. Or did you use a memory profiler?
The FatalExecutionEngine only happened once to me, but I don’t remember when. Maybe before I switched to 64-bit and Voron...
So why is Raven ignoring the memory limits I’m setting? When I go to the debug page to show the full config, it seems to be displaying all the details.
Thanks,
Dennis
--
You received this message because you are subscribed to a topic in the Google Groups "RavenDB - 2nd generation document database" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ravendb/ZCKsa7gNc-I/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ravendb+u...@googlegroups.com.
Oh, and is there some way I can see the contents of that large document myself. That’ll help me find the design error in our solution…
From: rav...@googlegroups.com [mailto:rav...@googlegroups.com] On Behalf Of Michael Yarichuk
Sent: vrijdag 27 november 2015 18:27
--
You received this message because you are subscribed to a topic in the Google Groups "RavenDB - 2nd generation document database" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ravendb/ZCKsa7gNc-I/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ravendb+u...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "RavenDB - 2nd generation document database" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ravendb+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Hibernating Rhinos Ltd
Grisha Kotler l RavenDB Core Team Developer l Mobile: +972-54-586-8647
Office: +972-4-622-7811 l Fax: +972-153-4-622-7811
RavenDB paving the way to "Data Made Simple" http://ravendb.net/
--
Nope, using something like http://localhost:38080/studio/index.html#databases/status/debug/config?&database=IntegrationHub
I’m adding the settings for Esent like this:
documentStore.Configuration.Settings.Add("Raven/Esent/CacheSizeMax", "256");
documentStore.Configuration.Settings.Add("Raven/Esent/MaxVerPages", "32");
And for Voron, like this:
Configuration =
{
MemoryCacheLimitMegabytes = 256,
DefaultStorageTypeName = "Voron",
Storage = { Voron = { MaxBufferPoolSize = 2, MaxScratchBufferSize = 1024 }}
},
Neither of the settings seem to work
From: rav...@googlegroups.com [mailto:rav...@googlegroups.com] On Behalf Of Grisha Kotler
Sent: Monday, 30 November, 2015 10:31
To: rav...@googlegroups.com
Subject: Re: [RavenDB] Event Sourcing, Embedded RavenDB and memory consumption using 3.0.3800
Are you seeing the debug page using the System Database?
--
You received this message because you are subscribed to a topic in the Google Groups "RavenDB - 2nd generation document database" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ravendb/ZCKsa7gNc-I/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ravendb+u...@googlegroups.com.
Hibernating Rhinos Ltd
Grisha Kotler l RavenDB Core Team Developer l Mobile: +972-54-586-8647
Office: +972-4-622-7811 l Fax: +972-153-4-622-7811
RavenDB paving the way to "Data Made Simple" http://ravendb.net/
Hibernating Rhinos Ltd
Grisha Kotler l RavenDB Core Team Developer l Mobile: +972-54-586-8647
Office: +972-4-622-7811 l Fax: +972-153-4-622-7811
RavenDB paving the way to "Data Made Simple" http://ravendb.net/
Hibernating Rhinos Ltd
Oren Eini l CEO l Mobile: + 972-52-548-6969
Looking at the settings available, it seems that Voron is not really suitable for low-memory situations, correct? I mean, even with minimum settings mentioned in this thread, the process working set stays at around 2.5-3 GB.
From: rav...@googlegroups.com [mailto:rav...@googlegroups.com] On Behalf Of Oren Eini (Ayende Rahien)
Sent: Tuesday, 1 December, 2015 08:33
Michael Yarichuk
RavenDB Core Team
Tel: 972-4-6227811
Fax:972-153-4-6227811
Email : michael....@hibernatingrhinos.com
I understand, but somehow I suspect SQL Server is using a similar approach. And if I configure that one to not consume more memory than 2GB, then it never will. I was hoping to be able to do something similar with Voron or Esent.
We’re considering to have a Windows Service running next to IIS on a front-end web server which hosts Raven embedded and serves queries over projections (stored as documents) and indexes derived from that. So being able to ‘guarantee’ RavenDB is not consuming more than an x amount is pretty important. Losing some performance because of that is not such a big deal.
From: rav...@googlegroups.com [mailto:rav...@googlegroups.com] On Behalf Of Oren Eini (Ayende Rahien)
Sent: Tuesday, 1 December, 2015 19:31
To: ravendb <rav...@googlegroups.com>
Subject: Re: [RavenDB] Event Sourcing, Embedded RavenDB and memory consumption using 3.0.3800
Okay, we need to define something.
Millions of documents of about 30-100KB, with all kinds of indexes around them. Not sure if we’ll need map/reduce constructs though.
From: rav...@googlegroups.com [mailto:rav...@googlegroups.com] On Behalf Of Michael Yarichuk
Sent: Tuesday, 1 December, 2015 20:17
To: RavenDB - 2nd generation document database <rav...@googlegroups.com>
Subject: Re: [RavenDB] Event Sourcing, Embedded RavenDB and memory consumption using 3.0.3800
What kind of load do you expect to have in RavenDB?
Hibernating Rhinos Ltd
Oren Eini l CEO l Mobile: + 972-52-548-6969
Office: +972-4-622-7811 l Fax: +972-153-4-622-7811
--
And what about Voron?
BTW, these settings don’t seem to have the desired effect. The Working Set easily reaches 3GB. But I’ll have to run a memory profiler to understand where that memory is kept.
--
You received this message because you are subscribed to a topic in the Google Groups "RavenDB - 2nd generation document database" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ravendb/ZCKsa7gNc-I/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ravendb+u...@googlegroups.com.
And what about Voron?
From: rav...@googlegroups.com [mailto:rav...@googlegroups.com] On Behalf Of Oren Eini (Ayende Rahien)
Sent: Tuesday, 1 December, 2015 20:39
To: ravendb <rav...@googlegroups.com>
Subject: Re: [RavenDB] Event Sourcing, Embedded RavenDB and memory consumption using 3.0.3800
The easiest way to have a low memory footprint is already in the docs, IIRC,
Projecting 1.5 million events from a SQL Server database to Raven projections/documents (in batches of 1 to 255 events per session).
From: rav...@googlegroups.com [mailto:rav...@googlegroups.com] On Behalf Of Oren Eini (Ayende Rahien)
Sent: Tuesday, 1 December, 2015 20:45
To: ravendb <rav...@googlegroups.com>
Subject: Re: [RavenDB] Event Sourcing, Embedded RavenDB and memory consumption using 3.0.3800
Those settings are for _Esent_ only.
What are you doing while this is going on?
Note that you can also reduce the max number of items to process in a single batch. But that would increase indexing time.
--
If I must guess, I would say between 2.5 and 50GB.
From: rav...@googlegroups.com [mailto:rav...@googlegroups.com] On Behalf Of Chris Marisic
Sent: Tuesday, 1 December, 2015 21:04
To: RavenDB - 2nd generation document database <rav...@googlegroups.com>
Subject: Re: [RavenDB] Event Sourcing, Embedded RavenDB and memory consumption using 3.0.3800
For clarity, you're talking about database that document storage alone will consist of 250GB, 500GB or more?
With “max number of items to process in a single batch”, do you mean a particular option or all four of the MaxNumberOf… options from http://ravendb.net/docs/article-page/3.0/csharp/server/configuration/configuration-options