• На что сменить MongoDB

    @Slader Автор вопроса
    а жаль :(
  • На что сменить MongoDB

    @Slader Автор вопроса
    Вот так и сделал сейчас. Чтение из кэша. А при промахе — из основной БД. Запись — в отдельную бд. Раз в час — миграция данных.
    Но, мне кажется, это костыль.
  • На что сменить MongoDB

    @Slader Автор вопроса
    Шардинг внутри монги не особо помогает. Ключи нормально распределены, поэтому блокируется, конечно, меньше. Но все равно, блокировки есть.
    Никто не спорит, что при увеличении количества инсертов надо будет делать шардинг.
    Но то, что при 120 insert/s я уже не могу получить доступ на чтение к данным, которые целиком находятся в оперативной памяти, — это за гранью моего понимания.
  • На что сменить MongoDB

    @Slader Автор вопроса
    What type of locking does MongoDB use?
    However, when a write lock exists, a single write operation holds the lock exclusively, and no other read or write operations may share the lock.

    По той же ссылке. В самом начале написано.
  • На что сменить MongoDB

    @Slader Автор вопроса
    A SELECT operation performs a complete table scan

    На каждую операцию выборки — fullscan — думаю, монго все же быстрее будет.
  • На что сменить MongoDB

    @Slader Автор вопроса
    операции чтения тоже ожидают, пока не освободится writing lock
  • На что сменить MongoDB

    @Slader Автор вопроса
    На Riak тоже отзывы не очень позитивные. На средних базах он хорош. А когда число записей превышает 50 миллионов, уже начинается просадка по производительности.
    Впрочем, это все с чужих слов. Сами не тестили.
  • На что сменить MongoDB

    @Slader Автор вопроса
    У нас выбор одной записи по первичному ключу. То есть по основному индексу. Если он не работает, то зачем тогда БД?
  • На что сменить MongoDB

    @Slader Автор вопроса
    Вот это, кстати, не пробовали. А надо. Ночью, когда запросов будет меньше, поиграюсь.
  • На что сменить MongoDB

    @Slader Автор вопроса
    Зато эти требования довольно строгие. Необходимо, чтобы все запросы на выборку данных по ключу укладывались… ну хоть в 10мс. А лучше в 1-3мс. Если не укладываются — срабатывает внешний таймаут.
    Задержка между нодами 0.1 мс, так что с сетью проблем нет.

    Сервер один — это пока он один. Мы не можем оценить, сколько и каких нам потребуется серверов, так как на довольно мощном железе столкнулись с проблемами на «детских» нагрузках.

    Я не понимаю, почему монго заставляет мои операции выборки ждать освобождения write lock, если: 1) я сделал insert и выбираю точно не эту запись; 2) Вся бд и индексы легко помещается в памяти.

    Если она так иногда подтормаживает, когда памяти больше, чем надо, то что будет, когда размер БД превысит размер RAM? 10-20 секунд на некоторые операции?
  • На что сменить MongoDB

    @Slader Автор вопроса
    Думаете, на одном сервере от нее будет толк?
    На сколько я знаю, кассандра хорошо масштабируется в кластере. Но у нас и один сервер-то не загружен нормально.
  • На что сменить MongoDB

    @Slader Автор вопроса
    Диски SAS 15k RPM (какие именно, без понятия). 4 диска в RAID10. Raid аппаратный, 3ware 9750.
    О SSD думали. Тестили. Как-то вообще не заметили выигрыша для монго.

    Самое интересное, что диск особо-то и не занят.

    Total DISK READ: 0.00 B/s | Total DISK WRITE: 157.69 K/s
    TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
    19037 be/4 mongodb 0.00 B/s 703.82 K/s 0.00 % 4.55 % mongod --config /etc/mongodb.conf