Время входа в систему MongoDB Realm и Stitch - почему Realm такая медленная?

Я создал веб-инструмент с использованием баз данных MongoDB, размещенных на Atlas, подключенных через Stitch. Насколько я понимаю, Stitch теперь обесценивается и был преобразован в MongoDB Realm. Поэтому я попытался обновить свой сайт, используя новое приложение Realm вместо Stitch. Хотя это работает, анонимный вход в систему теперь по некоторым причинам намного медленнее. Я провел небольшое тестирование, используя код, предложенный в документации MongoDB:

let t0 = performance.now()
app.logIn(Realm.Credentials.anonymous()).then(() => {
         let t1 = performance.now()
         db.collection('test').find({
                category: "test"
            }, {limit: 10})
        console.log("Login took " + (t1 - t0) + " milliseconds.")
    })

Мне нужно невероятное 1200 ms чтобы залогиниться.

let t0 = performance.now()
app.auth.loginWithCredential(new stitch.AnonymousCredential()).then(() => {
            let t1 = performance.now()
            db.collection('test').find({
                category: 'test'
            }, {limit: 10}).asArray()
            console.log("Login took " + (t1 - t0) + " milliseconds.")
        })

Со старым приложением Stitch обычно требуется меньше 20 ms чтобы залогиниться.

Есть идеи, что здесь происходит или как это решить? Я знаю, что есть возможность сначала аутентифицировать пользователя, как описано в их документации, однако я пробовал это, и это так же медленно.

Есть ли на самом деле необходимость в обновлении до нового приложения Realm, например, перестанет ли старая реализация Stitch работать в недалеком будущем? Любая информация по этому поводу будет оценена;)

Обновление: я провел немного больше исследований, и, похоже, причина, по которой Realm работает медленнее, заключается в том, что вход в систему с использованием logIn(Realm.Credentials.anonymous()).then(() => ... приводит к двум запросам на публикацию, но с использованием auth.loginWithCredential(new stitch.AnonymousCredential()).then(() => ...выполняет ли аутентификация и загрузка содержимого в одном запросе. С Realm я дважды получаю время ожидания TTFB 500-700 мс, со Stitch это происходит только один раз.

1 ответ

В настоящее время я создаю серверную часть приложения с нуля с помощью MongoDB Realm. Я использую их веб-SDK для аутентификации с использованием учетных данных электронной почты и пароля. Моя производительность в оба конца составляет в среднем около 600-800 мс.

Для моего приложения (использующего интерфейс Vue) это приемлемо для меня. Я не знаю, каковы ваши требования, но вы можете попробовать использовать новый SDK. К сожалению, я сталкиваюсь с низкой производительностью запросов в службе конечных точек GraphQL, которую предоставляет Realm. Согласно ветке, которую я начал на их форуме, их инженеры изучают это.

Другие вопросы по тегам