我目前正在将一些工作从MySQL移植到Google App Engine / Java。我正在使用JDO,以及需要的低级Java API。
我仔细阅读了有关分片计数器的优化指南:http://code.google.com/appengine/articles/sharding_counters.html
我仍在构建我的应用程序的基础。我知道过早的优化是万恶之源;但这是明确记录的,以避免争用。所以我无法决定我是否应该偏向某种方式。
默认情况下,我应该分割计数器(以及其他可能更高频率的写操作对象),还是应该在没有分片的情况下继续进行并根据需要实现?
答案 0 :(得分:4)
这里“过早”的显着含义是“在适当的时间之前”。设计以避免限制,当这些限制得到充分理解时,还为时过早。
打碎你的柜台。
答案 1 :(得分:3)
即使使用有效的分片,维护聚合也会给应用程序增加一些实质性负载。如果您需要汇总,并且您无法承担近似值;然后使用分片聚合不过早优化;没有下一个最好的选择。如果您实际上并不需要计数器,那么实施它的时间可能会更好地用于其他地方。