Google app engine googleappengine上的协议缓冲区与JDO

Google app engine googleappengine上的协议缓冲区与JDO,google-app-engine,google-cloud-datastore,jdo,protocol-buffers,Google App Engine,Google Cloud Datastore,Jdo,Protocol Buffers,我正在开发一个可以从GAE获取数据的移动应用程序,我正在尝试在使用协议缓冲区和JDO之间做出选择。首先,我不知道如何使PBs持久化。我知道这只是JDO注释标签的问题 我也看到了他们警告PB数据不能被索引的地方。不过,我不确定这对我来说是否是个问题。有没有一种快乐的媒介,比如使用JDO进行持久化,而使用PB进行通信 谢谢 编辑:听起来最初的考虑是一个坏主意,但我仍然想知道使用PBs向客户传输数据是否能带来好处。将JDO对象转换为PB对象以传输到客户端的开销是否会超过PBs的好处?事实上,这听起来就

我正在开发一个可以从GAE获取数据的移动应用程序,我正在尝试在使用协议缓冲区和JDO之间做出选择。首先,我不知道如何使PBs持久化。我知道这只是JDO注释标签的问题

我也看到了他们警告PB数据不能被索引的地方。不过,我不确定这对我来说是否是个问题。有没有一种快乐的媒介,比如使用JDO进行持久化,而使用PB进行通信

谢谢


编辑:听起来最初的考虑是一个坏主意,但我仍然想知道使用PBs向客户传输数据是否能带来好处。将JDO对象转换为PB对象以传输到客户端的开销是否会超过PBs的好处?事实上,这听起来就像GAE内部发生的事情,无论如何,这可能意味着这是一个很好的方式…

在这里的派对上迟到,但答案是“视情况而定”:-D

  • 你的主要目标是什么?你想在更大的范围内实现什么
  • 你有多少数据?您存储了多少个对象?大约有多少字节
  • 有很多小物体,一些大物体,还是所有不同的类型
  • 您试图使用哪些编程语言来使用数据
  • 您的主要资源限制是什么?您是RAM限制、CPU限制还是网络带宽限制
  • 您与供应商的关系如何
  • JDO的优势在于,它与Java上下都具有极强的互操作性,并且它内置在应用程序引擎中。让它开箱即用,这是很难击败的

    协议缓冲区具有高效、工作于多种语言的优点,java、Python、C++是谷歌支持的,但有第三方支持的其他语言。它们是可扩展的,并且非常易于维护

    正如您所指出的,JDO对象是由应用程序引擎自动索引的,这很难丢失,尽管您可以非常简单地构建自己的索引


    坦率地说,我现在使用协议缓冲区语言作为数据定义语言,但大多数东西都是以JSON的形式发送的——它们只有在需要大量存储时才会转换回protos,我可以节省大量成本……

    是否可以跳过JDO/JPA,直接向数据存储发送PB数据?