Orckestra C1 - 决定使用SQL的转折点是什么?

时间:2017-06-09 05:13:20

标签: xml azure c1-cms orckestra-cms

我已经构建并部署了Orckestra C1个网站,并且非常喜欢这个框架。最后一个站点是内容的C1 XML混合,以及一些SQL DB调用来获取某些选择页面上的客户端数据。这非常有效。网站快速且易于维护。

现在,我正在使用C1来替换旧的Asp构建的站点,但它有一组不同的数据问题。想象一下具有1000个小部件的小部件站点,其中每个项目可能与20-30个其他数据点(连接表)有关系。除了数据,每个小部件可能有20-30个相关图像。这可能导致服务器上的20,000到30,000张图像。在每日基础上,该网站每天可以获得600个独立访问者。将有大约20个核心页面,但这些核心页面中的一些将是动态内容以动态地显示小部件的一些变体。从管理员方面来说,是的,他们将进行CRUD操作和其他维护我想通过C1控制台或自定义管理UI来驱动它。

我的问题 :运行SQL migration tool从Orpedstra C1的XML迁移到SQL的转折点是什么?我们正在努力查看是否真的需要为Azure上的SQL付费来估算运行此站点的每月费用。

人们对C1有过哪些最佳实践(案例研究),以确保他们的网站不会陷入XML数据文件或图像?内存使用情况,磁盘IO或CPU?在扩展的C1 XML数据文件上发布的任何基准测试标记?

谢谢。

1 个答案:

答案 0 :(得分:1)

拇指规则是那些没有

的网站
  • 大量连续写入数据类型或
  • 经常写入的数据存储区/ xml文件不超过20-30 mb
只要您愿意,

就可以在基于xml的数据存储上运行。

要合理化这些参数,必须先了解xml数据存储区在实践中的实际工作方式

  • 要查询数据类型,整个xml文件必须加载到内存中
  • 添加/删除/更新数据类型实例,必须在磁盘上再次写入整个文件
  • 您无法为特定字段编制索引,以使您在大型数据集上经常执行的某些查询运行得更快。想想桌面扫描,就在内存中。

所以,第一点意味着只要你有足够的记忆就可以了。通过从xml迁移到sql,我的内存消耗减少了50%,所以如果内存比sql server贵,那么切换。

第二点意味着,如果您正在对数据存储区的访问者和行为进行任何类型的跟踪,那么由于整个xml文件一直在被重写,因此您将拥有持续的磁盘活动。这可以通过依赖像KeenIO等类似的专用服务来实现,而不是依赖于C1数据类型来进行跟踪。

第三点和最后一点涉及与第二点相同的主题;大型数据集在xml-datastore上无法很好地扩展。如果它的数据类型经常不更新,可以通过实现自己的专用缓存和查找表来克服 - 想想CQRS。

总结一下

  • 您可以在大型数据集上实现简单的CQRS模式,这些数据集不会经常更改,但始终会被查询。这可以存储在内存中或使用像Redis这样的东西。
  • 将不断更新的部分(如日志记录和跟踪)重构为不依赖于C1数据类型的专用服务。
  • 通过这些小调整,您可以在xml-store上继续运行很长时间,即使对于包含大量内容的大型网站也是如此。