Каковы скорости сравнения NDB и DB (в хранилище данных с высокой репликацией)?

Взято из Обзор Python NDB:

Когда приложение считывает объект, этот объект автоматически кэшируется; это дает быстрые (и недорогие) чтения для часто читаемых сущностей.

...

Функция NDB, которая записывает данные (например, put()), возвращается после недействительности кеша; Фаза Применить происходит асинхронно.

При просмотре на Youtube Google I/O 2011: больше 9s Пожалуйста: под обложками хранилища данных высокой репликации, в 13: 11-иш, средние задержки:

Мастер/ведомый:

  • Читать: 15ms
  • Запись: 20 мс

Высокая репликация:

  • Читать: 15ms
  • Запись: 45 мс

Насколько значительно NDB влияет на эти скорости, с точки зрения приложения?

Изменить: В особенности интересно узнать статистику времени (в миллисекундах).

Дополнительный кредит: я также слышал, что Ник Джонсон ссылался на запросы, занимающие около 160 мс каждый (в 2009 году) [link] Предоставляет ли NDB любые преимущества по скорости при запросах?

Ответы

Ответ 1

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

Цифры, которые вы цитируете, действительно старые и, вероятно, больше не отражают реальность; опыт большинства пользователей заключается в том, что HRD в среднем не медленнее, чем M/S (отчасти потому, что M/S имеет гораздо более высокую изменчивость).

Здесь были некоторые тесты NDB: http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=118 - но он не сравнивает числа со старым db.

Вы можете использовать Appstats для быстрого выполнения некоторых операций в реальном приложении.

Ответ 2

С помощью NDB ваши вызовы хранилища данных отображаются с точки зрения вашего приложения значительно быстрее.

READ: Лучший сценарий, чтение делается из кеша экземпляра или memcache. В большинстве случаев это будет значительно быстрее, чем чтение из хранилища данных.

WRITE: метод put/write NDB возвращается сразу после недействительности кеша. Это быстрее, чем обычная запись. Итак, с точки зрения вашего приложения, это довольно быстро. Фактическая запись, однако, выполняется асинхронно.

NDB vs DB (высокая репликация): с точки зрения скорости с точки зрения вашего приложения, NDB должен быть явным выигрышем.