为多个租户提供性能良好的密钥/价值存储

2024-05-22 09:37:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行一个多租户GAE应用程序,每个租户可以拥有从1000到10万个文档。
现在我正在尝试制作一个MVC javascript客户端应用程序(我的应用程序的管理部分脊椎.js)我需要CRUD端点和一次获取大量序列化对象的能力。对于这项具体的工作,appengine是一种缓慢的方式。我试图在blobstore中存储序列化的对象,但是在读/写和更新blobstore之间花费了太多的时间,而且应用程序变得非常慢。在

我考虑过在外部机器上使用nosqldb在appengine上执行这些操作。 一些选项是mongodb、couchdb或redis。但我不确定它们在处理如此多的数据和来自不同租户的并发请求/插入时的性能有多好。在

假设我有20个租户,每个租户有5万个文档。这些数据库有能力处理这个负载吗?在

这是正确的方法吗?在


Tags: 对象文档应用程序客户端序列化js能力javascript
2条回答

为什么不使用更快的常规appengine数据存储而不是blobstore?只需将文档作为Blob属性存储在常规实体中。只需确保实体大小不超过1MB,在这种情况下,您必须将数据拆分为多个实体。我用这种方式运行一个有数百万个大的blob的应用程序。 要进一步加快速度,请使用memcache甚至内存缓存。考虑获取实体的最终一致性,这会更快。使用批量操作或异步API并行运行尽可能多的数据库操作。在

从appengine调用这些外部机器的开销将比您现在看到的性能更差(我可以预期)。为什么不把所有的东西都放到一个非虚拟机器上呢?在

我不能代表couch,但mongo或redis绝对有能力处理严重的负载,只要它们设置正确,并有足够的马力满足您的需求。在

相关问题 更多 >