【发布时间】:2010-09-02 22:41:03
【问题描述】:
我有一个简单的服务,它大约执行以下操作:
- HTTP 客户端连接到服务器
- 服务器将客户端的sessionID和时间戳写入数据库,大多数情况下只是返回一个空响应
(它做实际工作并返回实际数据的情况与这个问题无关)
为了尽快返回此响应,我想将信息写入请求处理程序主体中的 memcache(因为 memcache 很快),并生成一个单独的线程,使用 SQLAlchemy 的另一个函数将写入它到持久存储。这样,我将能够在写入 memcache 并产生一个线程后立即返回,并且请求处理程序不必等到 SQLAlchemy 将信息保存到数据库。
这有意义吗?如果是,我应该如何实现?
【问题讨论】:
-
您是否对这两种解决方案进行了基准测试(仅写入 memcache 与第二种解决方案相关)?我的猜测是,即使存在可测量的差异,它也会与一般的网络延迟差异相提并论。作为一般建议,请阅读本页的第一段:c2.com/cgi/wiki?PrematureOptimization
-
会的。但是我仍然非常希望可以在另一个线程中启动后台作业(对于计算量将影响初始延迟的情况)并通常避免数据损坏/不一致或其他问题与较差的并行编程技能相关。
标签: python optimization memcached data-storage