Pagination
Что есть БД (collection) “messages” Количество записей более 5_000_000 у одного пользователя.
Проблема Выполнение REST API запроса “листинг сообщений с параметрами поиска” выполняется медленно. Примеры запросов: Поиск количества сообщений (Count) db.messages.find({$and: [{"main_account":"acc01fe181e-741b-3693-88bb-3847abfb6e53"},{"direction":"outbound"}]}).count(); //11sec Извлечение сообщений из последней страницы (fetchRows) db.messages.find({main_account:'acc01fe181e-741b-3693-88bb-3847abfb6e53'}).sort({ updated_at:-1 }).skip(3620000) //15sec “Мир” знает о существовании данной проблемы: "...increases, cursor.skip() will become slower and more CPU intensive. With larger collections, cursor.skip() may become IO bound..." 1. https://docs.mongodb.com/manual/reference/method/cursor.skip/ 2. https://jira.mongodb.org/browse/SERVER-1752 3. http://stackoverflow.com/questions/9703319/mongodb-ranged-pagination <-- вот это решение предлагаю (fetchRows) 4. http://stackoverflow.com/questions/9778420/mongo-count-really-slow-when-there-are-millions-of-records ←- Count
Варианты решения 1. Вот это решение предлагаю (fetchRows) Mongodb-ranged-pagination Slow-pagination-over-tons-of-records-in-mongo 2. Вот это решение предлагаю (Count) Counting-and-not-counting-with-mongodb Вывод решения: “...оно нам надо, знать точное количество сообщений если их больше 10_000…” http://stackoverflow.com/questions/7228169/s low-pagination-over-tons-of-records-in-mong o ←-
А что там у twilio… The Page parameter (without an AfterSid or PageToken), along with numpages, total, start, end, and lastpageuri properties have been deprecated and will be removed on 8/31/2015. Furthermore, accounts created after 6/16/2015 will no longer have access to these properties by default. You should use the Twilio Helper Libraries or nextpageuri and previouspageuri to navigate through the resources.
Что надо поменять 1. Response URL 2. Подсчет количества сообщений
Итого: 1.Среднее время ответа 220ms c фильтрами и без. 2. Пагинация как у twilio Подробно результаты теста APICO-884

Pagination MongoDb

  • 1.
  • 2.
    Что есть БД (collection)“messages” Количество записей более 5_000_000 у одного пользователя.
  • 3.
    Проблема Выполнение REST APIзапроса “листинг сообщений с параметрами поиска” выполняется медленно. Примеры запросов: Поиск количества сообщений (Count) db.messages.find({$and: [{"main_account":"acc01fe181e-741b-3693-88bb-3847abfb6e53"},{"direction":"outbound"}]}).count(); //11sec Извлечение сообщений из последней страницы (fetchRows) db.messages.find({main_account:'acc01fe181e-741b-3693-88bb-3847abfb6e53'}).sort({ updated_at:-1 }).skip(3620000) //15sec “Мир” знает о существовании данной проблемы: "...increases, cursor.skip() will become slower and more CPU intensive. With larger collections, cursor.skip() may become IO bound..." 1. https://docs.mongodb.com/manual/reference/method/cursor.skip/ 2. https://jira.mongodb.org/browse/SERVER-1752 3. http://stackoverflow.com/questions/9703319/mongodb-ranged-pagination <-- вот это решение предлагаю (fetchRows) 4. http://stackoverflow.com/questions/9778420/mongo-count-really-slow-when-there-are-millions-of-records ←- Count
  • 4.
    Варианты решения 1. Вотэто решение предлагаю (fetchRows) Mongodb-ranged-pagination Slow-pagination-over-tons-of-records-in-mongo 2. Вот это решение предлагаю (Count) Counting-and-not-counting-with-mongodb Вывод решения: “...оно нам надо, знать точное количество сообщений если их больше 10_000…” http://stackoverflow.com/questions/7228169/s low-pagination-over-tons-of-records-in-mong o ←-
  • 5.
    А что таму twilio… The Page parameter (without an AfterSid or PageToken), along with numpages, total, start, end, and lastpageuri properties have been deprecated and will be removed on 8/31/2015. Furthermore, accounts created after 6/16/2015 will no longer have access to these properties by default. You should use the Twilio Helper Libraries or nextpageuri and previouspageuri to navigate through the resources.
  • 6.
    Что надо поменять 1. ResponseURL 2. Подсчет количества сообщений
  • 7.
    Итого: 1.Среднее время ответа220ms c фильтрами и без. 2. Пагинация как у twilio Подробно результаты теста APICO-884