BreezeJS:索引缓存

时间:2015-03-10 21:05:43

标签: caching breeze

我正在使用BreezeJS和AngularJS处理SPA,处理大量实体(其中一种类型有~60k实体)。这不是一个普通的网站,它是为特定目的而制作的。

大多数情况下,实体以可排序的分页列表显示。

上面提到的大量实体在工作线程中被缓存和查询,因此UI不会被阻止。我们希望在应用程序初始化后将客户端 - 服务器通信保持在最低限度,因此需要缓存大量数据。

工作线程中entityManager的结果将导入到UI线程中的entityManager,然后进一步处理。这一切都很好,我唯一的问题是在这样一个巨大的数据集上执行orderBy需要太长时间才能完成(2.5-3.5秒)而没有索引。

这意味着如果订购到位,显示下一页的速度会慢得令人无法接受。

  • 有没有办法为Breeze缓存配备索引并让Breeze以某种方式使用它们?
  • 如果没有,是否计划实施此功能?

我当然可以为这个特定模型制作索引,并修改查询以针对缓存运行,但考虑到允许更改数据集,它不容易维护。

1 个答案:

答案 0 :(得分:0)

Breeze缓存今天有索引(索引?)......甚至连主键都没有。这将需要大幅增加代码库大小和复杂性来支持它们,我们还没有觉得这对我们通常看到的工作负载是值得的。

60K项目明显改变了这个等式。

我认为索引是一个很酷的可选模块,是某种插件。考虑到EntityManager在缓存中发生任何变化时引发事件,我不认为维护起来会很困难。如果你想把它作为一个社区贡献...也许对Breeze Labs来说,我很乐意为你提供建议和帮助。