Можно ли использовать как db, так и ndb с кэшированием в datatore ядра приложения? - PullRequest
1 голос
/ 22 мая 2019

У меня есть устаревшая версия приложения (webapp2), которая использует db для записи в хранилище данных. Я написал новый API колб только для чтения, который использует ndb в том же хранилище данных.

Записи через db не кэшируются для запросов ndb, что является проблемой. Я нашел этот обходной путь для отключения кэшированного чтения для ndb, Как очистить кэш для конкретной модели в NDB

Но мне было интересно, есть ли другой способ руководства для управления этим, или это решение - полная миграция на ndb?

1 Ответ

3 голосов
/ 22 мая 2019

Нет, невозможно использовать кэширование, когда оба клиента активны, поскольку клиент ndb использует кэширование через memcache, а клиент db - нет. От Клиентская библиотека Python DB для облачного хранилища данных :

Примечание : разработчикам, создающим новые приложения, настоятельно рекомендуется использовать клиентскую библиотеку NDB , которая имеет несколько преимущества по сравнению с этой клиентской библиотекой, такие как автоматический объект кеширование через Memcache API. Если вы в настоящее время используете старую БД Клиентская библиотека, прочитайте руководство по миграции DB в NDB .

Попытка использовать кэш ndb означает, что могут быть различия между тем, что видит каждый клиент для одного и того же объекта.

Поскольку db уже давно помечено как устаревшее, я бы предпочел перейти на ndb, в большинстве случаев это не такая уж большая задача. Помимо использования официально поддерживаемого решения, вы также получите улучшение производительности и, возможно, снижение затрат. ИМХО вполне достойно.

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