Iis RavenDB:从JsonReader读取RavenArray时出错

Iis RavenDB:从JsonReader读取RavenArray时出错,iis,ravendb,Iis,Ravendb,我正在IIS 7.5上运行最新的RavenDB(以前是“稳定的”,但现在正在尝试最新的“不稳定的”版本)。我们有50万个文档,由于我们需要相当频繁地更新这些文档,因此写了大量的文档,这对我们来说相当困难 我们经常在Raven Studio中看到以下错误(以及在循环中插入批处理时“对象引用未设置为对象的实例”)。对大量文档执行修补程序请求时也会发生同样的情况。我们以前有大型map/reduce索引,这导致了类似的问题 我们可以做些什么(也许通过IIS来处理)来更好地解决这个问题,并阻止数据库性能下

我正在IIS 7.5上运行最新的RavenDB(以前是“稳定的”,但现在正在尝试最新的“不稳定的”版本)。我们有50万个文档,由于我们需要相当频繁地更新这些文档,因此写了大量的文档,这对我们来说相当困难

我们经常在Raven Studio中看到以下错误(以及在循环中插入批处理时“对象引用未设置为对象的实例”)。对大量文档执行修补程序请求时也会发生同样的情况。我们以前有大型map/reduce索引,这导致了类似的问题

我们可以做些什么(也许通过IIS来处理)来更好地解决这个问题,并阻止数据库性能下降或变得不可用?下面的代码是bug吗

我还注意到,我们的ESENT“数据”文件已经变大(10+Gb),这可能是(不明智的)因为它以前存储了大量相当大的文档。有没有办法“缩小”这个尺寸,使它变小

(注意:稍后我可能会用总结编辑这个Q)

从JsonReader读取RAVENJARAY时出错。 System.Exception:从JsonReader读取RAVENJARAY时出错。 位于Raven.Json.Linq.ravenjaray.Load(JsonReader) 位于Raven.Json.Linq.ravenjaray.Parse(字符串Json) 在Raven.Client.Silverlight.Connection.Async.AsyncServerClient.b__22(任务'1任务) 在System.Threading.Tasks.Task`1.c__DisplayClass1a`1.b__19() 位于System.Threading.Tasks.Task`1.InvokeFuture(对象futureAsObj) 在System.Threading.Tasks.Task.InnerInvoke()中 在System.Threading.Tasks.Task.Execute()中 内部堆栈跟踪: 在Raven.Studio.Infrastructure.InvocationExtensions.Catch(任务父级,操作`1操作) 位于Raven.Studio.Infrastructure.InvocationExtensions.Catch(任务父级) 在Raven.Studio.Infrastructure.Model.TimerTicked()中 在Raven.Studio.Infrastructure.View.b___7(模型) 在Raven.Studio.Infrastructure.View.InvokeOnModel(对象ctx,Action`1 Action) 在Raven.Studio.Infrastructure.View.InvokeTimerTicked(对象ctx)中 在Raven.Studio.Infrastructure.View.DispatcherTimerOnTick(对象发送方,EventArgs EventArgs) 位于MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32类型索引、委托handlerDelegate、对象发送器、对象参数) 在MS.Internal.JoltHelper.firevent处(IntPtr unmanagedObj、IntPtr unmanagedobjars、Int32 argsTypeIndex、Int32 actualgstypeindex、String eventName) 无法分析json: System.InvalidOperationException:无法分析json: --->异常:从JsonReader读取RavenJObject时出错。 在Raven.Json.Linq.RavenJObject.Load(JsonReader)上 位于Raven.Json.Linq.ravenjabObject.Parse(字符串Json) ---内部异常堆栈跟踪的结束--- 位于Raven.Json.Linq.ravenjabObject.Parse(字符串Json) 位于Raven.Client.Silverlight.Connection.Async.AsyncServerClient.b__58(任务'1任务) 在System.Threading.Tasks.Task`1.c__DisplayClass1a`1.b__19() 位于System.Threading.Tasks.Task`1.InvokeFuture(对象futureAsObj) 在System.Threading.Tasks.Task.InnerInvoke()中 在System.Threading.Tasks.Task.Execute()中 内部堆栈跟踪: 在Raven.Studio.Infrastructure.InvocationExtensions.Catch(任务父级,操作`1操作) 位于Raven.Studio.Infrastructure.InvocationExtensions.Catch(任务父级) 在Raven.Studio.Infrastructure.Model.TimerTicked()中 在Raven.Studio.Infrastructure.View.b___7(模型) 在Raven.Studio.Infrastructure.View.InvokeOnModel(对象ctx,Action`1 Action) 在Raven.Studio.Infrastructure.View.InvokeTimerTicked(对象ctx)中 在Raven.Studio.Infrastructure.View.DispatcherTimerOnTick(对象发送方,EventArgs EventArgs) 位于MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32类型索引、委托handlerDelegate、对象发送器、对象参数) 在MS.Internal.JoltHelper.firevent处(IntPtr unmanagedObj、IntPtr unmanagedobjars、Int32 argsTypeIndex、Int32 actualgstypeindex、String eventName)
你能更新你的ravendb版本吗?我们增加了额外的错误报告,可以帮助跟踪这一点。 数据库的大小可以截断,但只能脱机。
按照它的工作方式,我们从不把空间还给操作系统,而是把它留给我们自己使用。

你能更新你的ravendb版本吗?我们增加了额外的错误报告,可以帮助跟踪这一点。 数据库的大小可以截断,但只能脱机。
按照它的工作方式,我们从不把空间还给操作系统,而是把它留给我们自己使用。

我已经更新了build#599(错误可能会少一点,和/或更快一点地赶上索引),尽管我仍然收到了错误(尽管如上所述略有更新)。我正在批量插入1024个。您是否希望我提供一些特定的日志。我还使用了ESENTTL的“碎片整理:ESENTUTL/d[options]”,它非常适合脱机数据库压缩。非常感谢。我启用了日志记录并更新为构建#601。服务器上的“仅错误”下没有出现错误。我已更新为build#599(错误可能会少一点出现,并且/或者更快地完成索引),尽管我仍然收到了错误(尽管如上所述略有更新)。我正在批量插入1024个。您是否希望我提供一些特定的日志。我还使用了ESENTTL的“碎片整理:ESENTUTL/d[options]”,它非常适合脱机数据库压缩。非常感谢。我启用了日志记录并更新为构建#601。服务器上“仅错误”下不显示任何错误。 Error reading RavenJArray from JsonReader. System.Exception: Error reading RavenJArray from JsonReader. at Raven.Json.Linq.RavenJArray.Load(JsonReader reader) at Raven.Json.Linq.RavenJArray.Parse(String json) at Raven.Client.Silverlight.Connection.Async.AsyncServerClient.b__22(Task`1 task) at System.Threading.Tasks.Task`1.c__DisplayClass1a`1.b__19() at System.Threading.Tasks.Task`1.InvokeFuture(Object futureAsObj) at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.Execute() Inner StackTrace: at Raven.Studio.Infrastructure.InvocationExtensions.Catch(Task parent, Action`1 action) at Raven.Studio.Infrastructure.InvocationExtensions.Catch(Task parent) at Raven.Studio.Infrastructure.Model.TimerTicked() at Raven.Studio.Infrastructure.View.b__7(Model model) at Raven.Studio.Infrastructure.View.InvokeOnModel(Object ctx, Action`1 action) at Raven.Studio.Infrastructure.View.InvokeTimerTicked(Object ctx) at Raven.Studio.Infrastructure.View.DispatcherTimerOnTick(Object sender, EventArgs eventArgs) at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args) at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName) Could not parse json: System.InvalidOperationException: Could not parse json: ---> System.Exception: Error reading RavenJObject from JsonReader. at Raven.Json.Linq.RavenJObject.Load(JsonReader reader) at Raven.Json.Linq.RavenJObject.Parse(String json) --- End of inner exception stack trace --- at Raven.Json.Linq.RavenJObject.Parse(String json) at Raven.Client.Silverlight.Connection.Async.AsyncServerClient.b__58(Task`1 task) at System.Threading.Tasks.Task`1.c__DisplayClass1a`1.b__19() at System.Threading.Tasks.Task`1.InvokeFuture(Object futureAsObj) at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.Execute() Inner StackTrace: at Raven.Studio.Infrastructure.InvocationExtensions.Catch(Task parent, Action`1 action) at Raven.Studio.Infrastructure.InvocationExtensions.Catch(Task parent) at Raven.Studio.Infrastructure.Model.TimerTicked() at Raven.Studio.Infrastructure.View.b__7(Model model) at Raven.Studio.Infrastructure.View.InvokeOnModel(Object ctx, Action`1 action) at Raven.Studio.Infrastructure.View.InvokeTimerTicked(Object ctx) at Raven.Studio.Infrastructure.View.DispatcherTimerOnTick(Object sender, EventArgs eventArgs) at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args) at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)