我正在寻找资源,以帮助将我的设计技能从传统的RDBMS数据存储转移到AppEngine DataStore (即:“软模式”风格)。我看过几次演讲,都涉及到总体主题和一些具体的技术。
我想知道是否有一个地方,我们可以汇集经验(“从战壕”)的知识,在现实世界的方法,重新思考数据是如何构造,特别是移植现有的应用程序。我们主要是基于Hibernate的,并且可能已经在错误的路径上使用我们的数据模型了,生成了一些我们的DB正在努力解决的粗糙的查询。
如果:
发布于 2009-06-11 05:09:17
我在想,是否有一个地方我们可以汇集经验的知识
不同的谷歌团队在这方面都很有优势,不过我不知道是否有哪个能直接适用于Java -- GAE --到目前为止,我的GAE经验都是-- Python (我很自豪地说,Python的发明者、现在在Google on App Engine工作的Guido van Rossum )告诉我,我已经教会了他一些关于他的脑力劳动的事情--他的建议提到了我现在最自豪的一件事,在我linkedin的个人资料中;-)。我在谷歌工作,但我对App的影响非常小--我致力于“构建云”、集群和网络管理SW,而App Engine则致力于使该基础设施对第三方开发人员有用。
确实有很多文章和演示文稿,说明如何最好地对数据进行去极化和分割,以达到最佳的GAE缩放和性能--尽管它们的质量各不相同。到目前为止出版的书是如此之多;更多的书将在接下来的几个月里出版,希望能写得更好(我有一个项目要写其中之一,有两个非常熟练的朋友,但我们都太忙了,最后我们都放弃了)。总的来说,我会推荐谷歌的I/O视频和谷歌在其应用引擎站点和博客中所写的文章,以及appenginefan博客的每一段内容--这是Guido称赞我教他有关GAE的内容,而我则主要从appenginefan (部分是通过Palo Alto的奇妙的app引擎会议,但他的博客也很棒)学习到的。
发布于 2009-06-10 18:54:28
我玩过,发现它有很多缺点:
这不是一般用途的Java应用程序托管。特别是,您无法访问完整的JRE (例如不能创建线程等)。考虑到这个事实,您几乎必须从根本上构建您的应用程序,同时考虑到Google。移植任何非琐碎的应用程序是不可能的。
关于你的数据存储问题..。
数据存储性能糟糕透顶。我试着每小时写5000次天气观测--不算太大--但我做不到,因为我一直遇到数据存储和HTTP请求的超时异常。使用“低级”数据存储API在一定程度上有所帮助,但还不够。
我想在24小时后删除那些天气观测,以不填补我的配额。同样,由于删除操作花费的时间太长,所以无法执行。这个问题反过来又导致我的数据存储配额被填满。令人疯狂的是,您无法轻松地删除GAE数据存储中的大量数据。
有一些我喜欢的特征。日食整合很时髦。appspot应用程序服务器UI比使用Tomcat (例如,漂亮的日志视图)要好一百万倍。但对我来说,这些微乎其微的好处远远超过了这些好处。
总之,我经常发现自己不得不使用刮牦牛毛,以便在任何普通的Java /应用程序宿主环境中做一些非常微不足道的事情。
发布于 2009-06-11 00:21:54
暂停时间很紧,性能也不错,所以我发现自己使用了额外的空间来节省时间;例如,我在交换卡和玩家之间有很多种关系,所以我重复了谁拥有什么的信息:卡片对象有一个玩家列表,玩家对象有一个纸牌列表。
通常,将您的所有信息存储两次可能会很愚蠢(并且容易失去同步),但它非常有效。
在Python中,他们最近发布了一个远程API,这样您就可以获得数据存储的交互式shell,这样您就可以在不受任何超时或限制的情况下使用数据存储(例如,您可以删除大量数据,或者重构模型);这非常有用,因为正如Julien提到的那样,很难执行任何大容量操作。
https://stackoverflow.com/questions/976639
复制相似问题