|
|
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Допустим необходимо спроектировать некоторую модель, основным назначением которой будет обмен сообщениями между пользователями. Первое приближение даст нам два отношения Users и Messages, и соответственно схемы отношения Users {name v,ID i pk}; Messages {destID i fk, senderID i fk, m v,...}; Для небольших размеров модели(по памяти) данная структура должна работать. Но если размер в разы превышает терабайты, например, то как в таком случае должна выглядеть модель ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 04:57 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
SashaMercuryЗдравствуйте. Допустим необходимо спроектировать некоторую модель, основным назначением которой будет обмен сообщениями между пользователями. Первое приближение даст нам два отношения Users и Messages, и соответственно схемы отношения Users {name v,ID i pk}; Messages {destID i fk, senderID i fk, m v,...}; Для небольших размеров модели(по памяти) данная структура должна работать. Но если размер в разы превышает терабайты, например, то как в таком случае должна выглядеть модель ? Для данной задачи Забить на реляционную модель Использовать любое "no SQL" решение. В зависимости от этого создавать модель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 06:46 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
SashaMercury, Сам по себе размер не является решающим фактором - реляционные СУБД проектировались для того, чтобы легко масштабироваться по размеру. Какую нагрузку Вы планируете на эти терабайты? Какие запросы? Сколько одновременно читающих/пишущих процессов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 08:59 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
SashaMercuryЗдравствуйте. Допустим необходимо спроектировать некоторую модель, основным назначением которой будет обмен сообщениями между пользователями. Первое приближение даст нам два отношения Users и Messages, и соответственно схемы отношения Users {name v,ID i pk}; Messages {destID i fk, senderID i fk, m v,...}; Для небольших размеров модели(по памяти) данная структура должна работать. Но если размер в разы превышает терабайты, например, то как в таком случае должна выглядеть модель ? размер бд не взять на ее структуру. Так что очень так же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 09:01 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
SashaMercuryДопустим необходимо спроектировать некоторую модель, основным назначением которой будет обмен сообщениями между пользователями. Для обмена сообщениями между пользователями БД не нужна. Совершенно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 10:58 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
MasterZivSashaMercuryЗдравствуйте. Допустим необходимо спроектировать некоторую модель, основным назначением которой будет обмен сообщениями между пользователями. Первое приближение даст нам два отношения Users и Messages, и соответственно схемы отношения Users {name v,ID i pk}; Messages {destID i fk, senderID i fk, m v,...}; Для небольших размеров модели(по памяти) данная структура должна работать. Но если размер в разы превышает терабайты, например, то как в таком случае должна выглядеть модель ? размер бд не взять на ее структуру. Так что очень так же. размер бд не влияет на ее структуру. Так что точно так же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2015, 12:20 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
MasterZivMasterZivпропущено... размер бд не взять на ее структуру. Так что очень так же. размер бд не влияет на ее структуру. Так что точно так же. Т.е. время выборки, например, всех писем пользователя Adel будет постоянной величиной, или практически не будет меняться, в зависимости от размера БД ? (аналогично к другим CRUD операциям) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 01:47 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинSashaMercury, Сам по себе размер не является решающим фактором - реляционные СУБД проектировались для того, чтобы легко масштабироваться по размеру. Какую нагрузку Вы планируете на эти терабайты? Какие запросы? Сколько одновременно читающих/пишущих процессов? Допустим у нас 10^8 пользователей, 1/10 часть из которых(10^7) каждую минуту отправляют по 1 сообщению(размером в 100 Байт) в любой адрес, и 1/10 часть пользователей проверяет/читает входящие сообщения. Допустим каждый 1/1000 пользователь каждую минуту читает предыдущие сообщения за последнюю неделю/месяц/год. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 02:00 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
SashaMercuryКот МатроскинSashaMercury, Сам по себе размер не является решающим фактором - реляционные СУБД проектировались для того, чтобы легко масштабироваться по размеру. Какую нагрузку Вы планируете на эти терабайты? Какие запросы? Сколько одновременно читающих/пишущих процессов? Допустим у нас 10^8 пользователей, 1/10 часть из которых(10^7) каждую минуту отправляют по 1 сообщению(размером в 100 Байт) в любой адрес, и 1/10 часть пользователей проверяет/читает входящие сообщения. Допустим каждый 1/1000 пользователь каждую минуту читает предыдущие сообщения за последнюю неделю/месяц/год. Отмеченное - это сотни тысяч транзакций в секунду, вряд ли у Вас это потянет одна железка. Т.е. Вам придется делать sharding, или как-то по другому параллелить нагрузку. Вообще, систему в 100К транзакций в секунду Вам вряд ли помогут спроектировать на форуме ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 08:45 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинВообще, систему в 100К транзакций в секунду Вам вряд ли помогут спроектировать на форуме ;) А чего тут еще придумать можно? Ход мыслей у ТС верный. Как то по другому , что это более производительнее будет работать тут не придумаешь. Надо пробовать и там уже видно будет по производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 09:05 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин Отмеченное - это сотни тысяч транзакций в секунду, вряд ли у Вас это потянет одна железка. Т.е. Вам придется делать sharding, или как-то по другому параллелить нагрузку. Вообще, систему в 100К транзакций в секунду Вам вряд ли помогут спроектировать на форуме ;) Такие системы есть, это факт. Ничего нового в смысле того что требуется реализовать я, очевидно, не спрашиваю. Мне интересно как специалисты проектируют такие системы(уже сейчас), возможно общее направление с небольшими элементами конкретики. Not only SQL(о нем говорили выше) слишком обширное направление(и на мой взгляд неоднозначное, в контексте хотя бы терминологии) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 09:31 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
SashaMercuryТакие системы есть, это факт. Ничего нового в смысле того что требуется реализовать я, очевидно, не спрашиваю. Мне интересно как специалисты проектируют такие системы(уже сейчас), возможно общее направление с небольшими элементами конкретики. Not only SQL(о нем говорили выше) слишком обширное направление(и на мой взгляд неоднозначное, в контексте хотя бы терминологии) Для обмена сообщений преимущества РСУБД не очевидны, а недостатки явны. Грубо говоря для мессенджера ACID не нужен, от слова совсем. Зато нужно быстрая выборка значений "key-value". Быстрая работа с памятью и отложенная серилизация данных. Очень ленивая репликация. Все это позволяют сделать все современные NoSQL решения. Даже тот же MySQL с отключенными транзакциями и мемкешем вполне подойдет. А, например, PostgreSQL скорее принесет больше проблем, чем удобства в использовании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 10:58 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
SashaMercuryПервое приближение... ...не позволит оптимально сделать ничего из того, что ожидают от системы обмена сообщениями. 1. Дата отправки 2. Факт прочтения 3. Дата прочтения 4. Групповые сообщения 5. Возможность "удалять" сообщения с любой из сторон с сохранением его у остальных участников ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 18:06 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
mad_nazgulГрубо говоря для мессенджера ACID не нужен, от слова совсем. Хм. Это что же за такой хреновый мессенджер и кому такой может понадобиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 18:49 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
Всем: я полагаю, это учебная задача, поэтому споры о нужности субд неуместны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 19:16 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
SashaMercury Т.е. время выборки, например, всех писем пользователя Adel будет постоянной величиной, или практически не будет меняться, в зависимости от размера БД ? (аналогично к другим CRUD операциям) при правильной реализации нет, не будет практически меняться. выборка по индексу O ( log N) все CUD тоже O ( log N) в худшем из нормальных случаев. Потому что по индексам. к тому же сообщения данного пользователя и не нужны никому. фильтры, умный поиск... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 19:24 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
SashaMercuryMasterZivпропущено... размер бд не влияет на ее структуру. Так что точно так же. Т.е. время выборки, например, всех писем пользователя Adel будет постоянной величиной, или практически не будет меняться, в зависимости от размера БД ? (аналогично к другим CRUD операциям) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2015, 19:26 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
MasterZivпри правильной реализации нет, не будет практически меняться при правильной, это РМД с классическими отношениями для такой модели ? MasterZivвыборка по индексу O ( log N) все CUD тоже O ( log N) в худшем из нормальных случаев. Потому что по индексам. Подскажите пожалуйста где сказано что сложность CRUD операций lg(n) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2015, 03:45 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
[t SashaMercury]MasterZivпри правильной реализации нет, не будет практически меняться при правильной, это РМД с классическими отношениями для такой модели ? Нет дело не в отношениях а в индексах. правильная ..-- это просто без ошибок спроектированная бд и правильно сделанные индексы. Правила все элементарные, в любой книжке. .. MasterZivвыборка по индексу O ( log N) все CUD тоже O ( log N) в худшем из нормальных случаев. Потому что по индексам. Подскажите пожалуйста где сказано что сложность CRUD операций lg(n) ?[/quot] поиск по индексу O (log N) вот отсюда и следует. .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2015, 04:39 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
Понятно, т.о. индексы панацея для решения такого рода задач ? PS Насколько я знаю у них существуют некоторые ограничения, и всякая ли СУБД будет поддерживать множество необходимых индексов по различным элементам ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2015, 06:07 |
|
||
|
Модель данных для обмена сообщениями
|
|||
|---|---|---|---|
|
#18+
SashaMercuryПонятно, т.о. индексы панацея для решения такого рода задач ? PS Насколько я знаю у них существуют некоторые ограничения, и всякая ли СУБД будет поддерживать множество необходимых индексов по различным элементам ? индексы вообще панацея для решения любых задач. Отрасль РСУБД вообще строится на двух технологиях : кэширование и индексация. кэширование дает доступ к данным в миллион раз быстрее, а индексы рост сложности по логарифму, те почти линейно и с пологом углом наклона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2015, 08:41 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=19&tid=1540512]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 166ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...