我读过应用程序引擎维基,数据存储争用,如果太频繁在1秒内写入 超过5次。维基介绍使用“碎片” 办法”的解决方法。可能我知道,如果我们采用弹簧@Transactional 这一点,这样可以防止数据存储区争超时,因为在同时进行 写吧?写得太频繁,数据存储竞争超时
2
A
回答
1
不,你不能不管你是否使用@transactional,它都不会使问题消失 - 事实上你有一个对象需要你继续写下来。争用限制将继续保持你使用的任何方法。
这个问题的答案实际上是决定你想要做什么,以及准确性对你有多重要。以一个简单的计数器为例,这是这个问题的一个常见例子。如果你认为准确度很高重要的,那么你将不得不有一个顺序列表,你可以选择顺序或随机,并写入。如果你在这个列表中有十个计数器,那么这会给你每秒更多的写入次数,甚至是事务性写入次数。不过,您需要编写代码来选择要写入的计数器。
另一方面,如果您不需要太高的精度,您可以尝试经常写入memcache。写入内存缓存或增加计数器时,写入争用限制要高得多。然后,您可以按设定的时间间隔写出并重置计数器。
1
当我在一个需要将大量单独记录存储到数据库的项目中时,我发现系统无法处理所有并发事务。我改为在内存中构建对象,然后将其保存到数据库中。
相关问题
- 1. 避免数据存储竞争
- 2. 存储位置和数据竞争
- 3. 数据竞争时GOMAXPROCS = 1
- 4. 数据竞争示例和数据竞争检测示例
- 5. 如何异步处理GAE数据存储竞争?
- 6. 数据库竞争条件
- 7. CakePHP Apc缓存失效太频繁
- 8. ajax给我拨打相同数据时太频繁
- 9. 缓存和竞争条件
- 10. 如何在GAE数据存储中保存实体时,如果它不存在,同时阻止竞争条件
- 11. Solr优化太频繁?
- 12. IIS回收太频繁
- 13. Appcelerator钛碰撞太频繁?
- 14. OnPaint更新太频繁
- 15. Knockoutjs - 调用valueHasMutated太频繁?
- 16. 大数据存储与地理,频繁更新
- 17. 如何在android中存储少量的频繁查找数据?
- 18. 避免与golang数据竞争工人
- 19. Helgrind报告单线程数据竞争
- 20. Magento数据库竞争其他网站
- 21. Java中的数据竞争ArrayList类
- 22. 连续代码中的数据竞争
- 23. Jetty中的频繁超时异常
- 24. 频繁504网关超时appharbor
- 25. Cassandra频繁阅读超时错误
- 26. Azure SQL频繁连接超时
- 27. 频繁超时过期例外
- 28. 竞争条件
- 29. 竞争条件
- 30. 竞争条件
这里有一篇关于如何实现它的详细文章:http://code.google.com/appengine/articles/sharding_counters.html – rochb 2010-02-13 13:28:01
是的,我明白你的解释。但让我说'我不需要快速写'。将做@事务+顺序写入,通过缓慢地顺序写入'一次一个'来防止发生争用超时 – cometta 2010-02-19 08:30:16
让我说我需要做6次写入数据库,我明白数据库可以做最多5次写入每秒。剩余的1(6-5)次在经过1秒后正确写入 – cometta 2010-02-19 12:50:05