Влияет ли на транзакцию между группами объектов (XG) накладные расходы, когда она фактически затрагивает только одну группу объектов? - PullRequest
3 голосов
/ 01 ноября 2011

App Engine недавно объявил о поддержке кросс-групповых (XG) транзакций ;можно было бы ожидать, что эти транзакции повлекут за собой дополнительные издержки при использовании в нескольких группах сущностей, но если я укажу, что я хочу транзакцию XG в начале транзакции, но тогда фактически получу доступ только к одной группе сущностей, я увижу значительное влияние на производительность?

Я спрашиваю, потому что JDO требует, чтобы XG-сущность была указана на уровне диспетчера постоянства, и было бы намного проще просто включить его для всех транзакций (мне это нужно только в нескольких, редких случаях)...

Ответы [ 2 ]

3 голосов
/ 10 июня 2012

Из официальных документов:

Транзакция XG, которая касается только одной группы объектов, ведет себя как транзакция в одной группе. Операции внутри такой транзакции имеют та же производительность и стоимость, что и в аналогичной группе транзакция в отношении выставления счетов и использования ресурсов, но будет испытывать большую задержку.

Источник: https://developers.google.com/appengine/docs/python/datastore/overview

1 голос
/ 02 ноября 2011

Это не задокументировано и не определено, если это так, но безопаснее предположить, что накладные расходы будут существовать для всех транзакций.

Если вы беспокоитесь о накладных расходах, вам, вероятно, не следует использовать JDOпоскольку создание PersistenceManager само по себе сопряжено с большими затратами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...