Приходит очень поздно на вечеринку, но ответ - "это зависит".: -D
- Каковы ваши главные цели?Чего вы пытаетесь достичь на более широкой картине?
- Сколько у вас данных?Сколько объектов вы храните?Приблизительно сколько байтов?
- Много ли маленьких объектов, несколько крупных объектов или разных типов?
- На каких языках программирования вы пытаетесь использовать свои данные?
- Какое ваше основное ресурсное ограничение?Вы ограничены ОЗУ, ЦП или полосой пропускания сети?
- Каковы ваши отношения с поставщиками?
Преимущество JDO в том, что он чрезвычайно совместим с Javaвверх и вниз по линии, и он встроен прямо в App Engine.Для того, чтобы это работало прямо из коробки, это трудно победить.
Протоколные буферы имеют то преимущество, что они удивительно эффективны и работают на многих языках - Google, Java, Python, C ++ поддерживаются, но существует огромный список других языков, поддерживаемых третьими-стороны.И они расширяемы и очень просты в обслуживании.
Как вы отметили, объекты JDO автоматически индексируются App Engine, было бы трудно потерять это, хотя вы, вероятно, вполне можете создать свой собственный индекспросто.
Откровенно говоря, в наши дни я использую язык буфера протокола в качестве языка определения данных, но большинство вещей передается в виде JSON - они конвертируются обратно в прототипы только тогда, когда приходит время их массового хранения, и яможет получить огромную экономию ...