【发布时间】:2012-07-04 14:14:30
【问题描述】:
我正在运行一个多租户 GAE 应用程序,其中每个租户可能拥有 1000 到 100k 个文档。
目前我正在尝试制作一个 MVC javascript 客户端应用程序(我的应用程序的管理部分带有 spin.js),我需要 CRUD 端点和一次获取大量序列化对象的能力。对于这个特定的工作,appengine 的速度很慢。我试图将序列化的对象存储在 blobstore 中,但是在读取/写入和将内容更新到 blobstore 之间需要太多时间,并且应用程序变得非常慢。
我想在外部机器上使用 nosql db 来通过 appengine 执行这些操作。 一些选项是 mongodb、couchdb 或 redis。但我不确定它们在处理这么多数据和来自不同租户的并发请求/插入时表现如何。
假设我有 20 个租户,每个租户有 50k 文档。这些 db 是否能够处理这种负载?
这是正确的方法吗?
【问题讨论】:
-
您是否尝试使用 memcached(AppEngine 提供的)?如果您的读取次数多于写入次数,那将是一场胜利。
-
您是否真正分析过您的应用程序以查看减速在哪里?您在客户端和服务器之间移动了多少数据? 100K 文档中有多少是在单个事务中处理的?多个租户对 appengine 应用程序的影响应该很小。
标签: javascript python google-app-engine nosql multi-tenant