Буферы протокола против JDO в Google App Engine - PullRequest
0 голосов
/ 19 октября 2010

Я работаю над мобильным приложением, которое будет получать данные от GAE, и пытаюсь решить, использовать ли протокол Protocol Buffers и JDO. Прежде всего, я не уверен, как сделать PBs постоянными. Я знаю, что это просто вопрос тегов аннотации с JDO.

Я также видел этот поток , где они предупреждают, что данные PB не могут быть проиндексированы. Я не уверен, если это проблема для меня или нет, хотя. Есть ли счастливое средство, например, способ использовать JDO для постоянства, но использовать PB для общения?

Спасибо

Редактировать: Похоже, что первоначальное рассмотрение было плохой идеей, но мне все еще интересно, смогу ли я получить выгоду от использования PB только для передачи данных клиенту. Будут ли издержки преобразования объектов JDO в объекты PB для передачи клиенту перевешивать преимущества PB? На самом деле, похоже, что это именно то, что происходит внутри GAE, так что это, вероятно, означает, что это хороший путь ...

1 Ответ

0 голосов
/ 20 февраля 2012

Приходит очень поздно на вечеринку, но ответ - "это зависит".: -D

  1. Каковы ваши главные цели?Чего вы пытаетесь достичь на более широкой картине?
  2. Сколько у вас данных?Сколько объектов вы храните?Приблизительно сколько байтов?
  3. Много ли маленьких объектов, несколько крупных объектов или разных типов?
  4. На каких языках программирования вы пытаетесь использовать свои данные?
  5. Какое ваше основное ресурсное ограничение?Вы ограничены ОЗУ, ЦП или полосой пропускания сети?
  6. Каковы ваши отношения с поставщиками?

Преимущество JDO в том, что он чрезвычайно совместим с Javaвверх и вниз по линии, и он встроен прямо в App Engine.Для того, чтобы это работало прямо из коробки, это трудно победить.

Протоколные буферы имеют то преимущество, что они удивительно эффективны и работают на многих языках - Google, Java, Python, C ++ поддерживаются, но существует огромный список других языков, поддерживаемых третьими-стороны.И они расширяемы и очень просты в обслуживании.

Как вы отметили, объекты JDO автоматически индексируются App Engine, было бы трудно потерять это, хотя вы, вероятно, вполне можете создать свой собственный индекспросто.

Откровенно говоря, в наши дни я использую язык буфера протокола в качестве языка определения данных, но большинство вещей передается в виде JSON - они конвертируются обратно в прототипы только тогда, когда приходит время их массового хранения, и яможет получить огромную экономию ...

...