Re[6]: [Erlang] Эффективная работа с Mnesia
От: avostrjakov  
Дата: 09.07.08 16:11
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>>>Сколько точно будет процессов? По одному на пользователя, нет? Короче говоря, пока вы задачу не опишете, вряд-ли кто-то сможет вам прокомментировать по сути.


A>> Ок, Возьмем по максимуму. Считаем, что один процесс на пользователя. Одновременно передаваемых сообщений скажем 100 тысяч. Каждое сообщение размером примерно 100 Кб. В таблице может находиться примерно 4 миллиона записей. Одни процессы кладут туда записи, другие забирают данные (см. мой первоночальный пост).


G>Один процесс на пользователя, пользователи посылают друг другу сообщения. Вопрос: зачем все сообщения хранить в одной таблице? Почему не завести отдельный inbox для каждого пользователя, что мешает? Еще вопрос: что означает "одновременно передаваемых сообщений"? Вы хотели сказать, пользователей у вас в системе 100 тысяч, так?


Извини, но мы ушли уже далеко от первоначального вопроса. Мне было интересно узнать, насколько вообще возможно применять сортировку в mnesia в случае, когда база находиться на нескольких нодах, кол-во записей в таблице большое (предвидя вопрос, около 4 миллионов записей) и большой нагрузке на базу (возьмем 100 тысяч одновременных запросов в базу, запросы разные, не только к таблице с сообщениями).

G>>>Во-первых, вся таблица целиком хранится в памяти даже в случае disc_copies — на диск пишутся только изменения, и последовательно. disc_copies применяется только для восстановления таблицы при старте. "По настоящему" на диске это будет лежать только в случае disc_only. Насчет disc_only надо еще сказать, что одна таблица не может превышать 2GB в любом случае — придется fragmented tables использовать, чтобы это обойти.


A>> 2 GB — это ограничение мнезии? Подскажи пожайлуста, где про это написано.


G>2Gb — это ограничение на размер таблицы dets, которая применяется mnesia в случае disc_only. Где конкретно написано — не помню, но пока это так.


Спасибо, нашел, где написано про это:
http://www.erlang.org/doc/man/dets.html
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.