Comments 18
> Если посмотреть на любую SQL базу данных, то добавление поля — элементарная операция.
У меня есть таблица весом 18 гигов с индексом 13 гигов. Alter table там — «элементарная операция». Остановит работу на полдня примерно.
А по поводу мнезии, тыкну пальцем в небо — реплицировать на другой хост, перенести туда нагрузку (апликацию), снять нагрузку со старого хоста, сделать все нужны операции, вернуть нагрузку обратно.
У меня есть таблица весом 18 гигов с индексом 13 гигов. Alter table там — «элементарная операция». Остановит работу на полдня примерно.
А по поводу мнезии, тыкну пальцем в небо — реплицировать на другой хост, перенести туда нагрузку (апликацию), снять нагрузку со старого хоста, сделать все нужны операции, вернуть нагрузку обратно.
+2
У вас какая-то неправильная БД. У нас Oracle, десятки гигабайт данных, добавление поля в таблицу редко занимает больше нескольких минут, чаще секунды
0
Так автор заявлял про любую SQL-базу. У меня любая — MySQL.
+1
Придираться можно бесконечно. Вы не на буквы смотрите, а на смысл. А смысл в том, что изменение схемы данных в mnesia — это достаточно непростая операция по сравнению с большинством SQL-баз, и автор описывает, как его обслуживать.
Проблемы конкретной реляционной СУБД тут обсуждать бессмысленно
Проблемы конкретной реляционной СУБД тут обсуждать бессмысленно
0
Ну видимо если измерять максимальную скорость автомобиля при максимальной допустимой нагрузке, то можно поймать автора характеристик автомобиля на лжи. мир.
Но интересно — сколько займут мероприятии по добавлению полей в таблице Mnesia на 18 гиг?
Но интересно — сколько займут мероприятии по добавлению полей в таблице Mnesia на 18 гиг?
0
вы просто посмотрите сколько займёт старт системы после некорректного шатдауна хотя бы с 300 метрами данных. потом с гигом. если не дошло — то еще с двумя. дальше, думаю, не понадобится.
+3
При старте мнезия строит индексы, это очень медленно, и судя по графику загрузки ядер на цпу, идёт в один поток. 60ти мб база на двухядерном цпу обычной машинки запускается около часа. Т.е. запускается она быстро, но одно ядро забито под 100% около часу, пока не построятся индексы. Пичаль.
0
На MS SQL В 40 гибайтную таблицу легко и не принужденно добавлял поля. Конечно есть задумчивость сервера несколько минут, но не полдня. И никаких дополнительных манипуляций на живой работающей системе. По сравнению с mnesia — это элементарно.
А по предложенному варианту с репликацией — я не понимаю что делать после того как на старом хосте трансформирую таблицу. Как они синхронизируются со старой версией которая крутится на новом хосте? Пока я трансформирую таблицу на одном хосте в реплике на другом происходят изменения и они все в старой версии записей производятся. Как mnesia это разрулит?
А по предложенному варианту с репликацией — я не понимаю что делать после того как на старом хосте трансформирую таблицу. Как они синхронизируются со старой версией которая крутится на новом хосте? Пока я трансформирую таблицу на одном хосте в реплике на другом происходят изменения и они все в старой версии записей производятся. Как mnesia это разрулит?
0
> я не понимаю что делать после того как на старом хосте трансформирую таблицу. Как они синхронизируются со старой версией которая крутится на новом хосте?
Да, этот момент я как-то пропустил :)
Бесплатный master-master в couchdb расслабляет, после него на другие базы смотреть не хочется.
Можно пойти по длинному страшному пути, типа накапливать изменения, пока будет обновляться старый хост, а потом изменения применить к нему.
Да, этот момент я как-то пропустил :)
Бесплатный master-master в couchdb расслабляет, после него на другие базы смотреть не хочется.
Можно пойти по длинному страшному пути, типа накапливать изменения, пока будет обновляться старый хост, а потом изменения применить к нему.
0
не знаю, а что я делаю не так? я пишу код трансформации в апгрейде. соответственно на момент апгрейда происходит суспенд, апгрейд таблицы, ансуспенд. так как таблицы все небольших размеров — проблем не доставляет, даже дефолтного таймаута в 5 секунд достаточно.
а если кто-то попытается мне тут сказать что таблицы могут быть и большие, то он огребает себе личных проблем много и надолго. мнезия не работает с большими объёмами. никак. никогда. даже не пытайтесь.
а если кто-то попытается мне тут сказать что таблицы могут быть и большие, то он огребает себе личных проблем много и надолго. мнезия не работает с большими объёмами. никак. никогда. даже не пытайтесь.
+3
где-то об этом можно почитать? и какова граница «большого объема»?
0
Не используйте Mnesia. Не надо. Это было актуально, когда ничего другого не могло быть в кластере. Сейчас же куча вариантов — от редиса до CouchBase (membase).
0
mnesia можно и нужно использовать — для нативных туплов и большой скорости работы (по сравнению с внешним решением) + гарантия атомарности в пределах кластера + много еще чего.
но это _только_ для данных нужных в рантайме вот прямо сейчас. как только данные утряслись — выкидывать в хранилища предназначенные для хранения и обработки.
но это _только_ для данных нужных в рантайме вот прямо сейчас. как только данные утряслись — выкидывать в хранилища предназначенные для хранения и обработки.
0
mnesia операционно нестабильна; кластер разрушается от высокой (неожиданной) нагрузки; нет вменяемых средств для реструктурирования и мейтенанса кластера для тех, кто не слишком знает эрланг, etc. Это всё перечёркивает большую скорость работы. Под кэш можно и мемкеш/couchbase использовать.
0
Sign up to leave a comment.
Mnesia — изменение таблицы