Технология:
- MongoDB 3.0.8 (MMAPv1), не оговоренный, выделенный кластер, размещенный на AWS через mLab (первичный, вторичный и арбитр), RAM 3.7GB
- Драйвер С# для MongoDB 2.3
- Строка подключения:
MongoDB://USER: [email protected]: 1234, MYMONGO2.com: 1234/DB_NAME replicaSet = REPLICA_SET_NAME
Предположения
- У меня есть коллекция продуктов с одним из полей, называемых Package.
- Есть индекс: "Пакет": 1
- Объекты из этой коллекции никогда не удаляются.
- Пакет полей никогда не обновляется.
- Время от времени вставляются новые объекты.
Один раз в день я регистрирую конкретный счетчик в этой коллекции (одинаковые параметры каждый раз):
db.Products({"Package": "Box"}).count()
// actual code running in C#:
productsCollection.Find(p => p.Package == "Box").Count()
Я ожидаю, что результат будет таким же или большим с каждым днем. Но иногда я получаю меньшее значение. На следующий день он снова станет правильным. Он воспроизводится в двух разных средах.
Пример:
- День 1: 4,563,135
- День 2: 4,563,135
- День 3: 4,563,124 (ровно на 11 меньше, чем ожидалось).
- День 4: 4,563,135
Я пытался вручную воспроизвести его как через С#, так и непосредственно против Mongo, но не удалось (значение всегда было правильным).
Что происходит?