Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Нужна консультация по очень большой нагрузке  [new]
Stinger03
Member

Откуда:
Сообщений: 27
Попытаюсь обьяснить суть задачи.
Около 150-200кк запросов к серверу в сутки
Это около 1700-2300 запросов в секунду.
Задача - определить было ли уже в течении 24 часов обращение с одного и того же ИП и желательно сколько раз.
Хранить данные более 24 часов ненужно.
Что потянет подобную задачу и потянет ли вообще ?
20 мар 12, 02:59    [12278621]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
SERG1257
Member

Откуда:
Сообщений: 2931
Задача не для СУБД. Копайте в сторону ферм.
20 мар 12, 08:37    [12278845]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
автор
Это около 1700-2300 запросов в секунду.


SELECT 1


тоже запрос.
20 мар 12, 08:54    [12278879]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
SERG1257
Задача не для СУБД.


Да ну?!

К сообщению приложен файл. Размер - 103Kb
20 мар 12, 09:07    [12278914]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
miksoft
Member

Откуда:
Сообщений: 38919
Stinger03
Задача - определить было ли уже в течении 24 часов обращение с одного и того же ИП и желательно сколько раз.
Хранить данные более 24 часов ненужно.
Что потянет подобную задачу и потянет ли вообще ?
Сколько раз вообще или сколько раз за последние 24 часа? С какой точностью это нужно делать? Как часто это "определить" должно происходить? Как долго/быстро оно должно происходить?
20 мар 12, 10:21    [12279226]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Stinger03
Попытаюсь обьяснить суть задачи.
Около 150-200кк запросов к серверу в сутки
Это около 1700-2300 запросов в секунду.
Задача - определить было ли уже в течении 24 часов обращение с одного и того же ИП и желательно сколько раз.
Хранить данные более 24 часов ненужно.
Что потянет подобную задачу и потянет ли вообще ?


По сути задача сводится к работе с таблицей из двух полей, одно из которых уникальный ключ из целочисленного представления IP-адреса (IPv4 - 4 байта, IPv6 - максимум 16 байт), а вторая - время последнего обращения... Чтобы прикрутить "сколько раз" - ну, добавь еще одно поле с накоплением количества обращений.
В итоге - с этой задачей вполне справится ЛЮБОЙ SQL сервер. Выбирать, естественно, лучше из тех, которые "лучше знаешь"...
20 мар 12, 11:37    [12279622]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
AlexKB
Member

Откуда: Запорожье
Сообщений: 856
Stinger03
Попытаюсь обьяснить суть задачи.
Около 150-200кк запросов к серверу в сутки
Это около 1700-2300 запросов в секунду.
Задача - определить было ли уже в течении 24 часов обращение с одного и того же ИП и желательно сколько раз.
Хранить данные более 24 часов ненужно.
Что потянет подобную задачу и потянет ли вообще ?


Добрый день.
Довольно-таки примитивная задача для СУБД CACHE.
Даже если все это будет установлено на обычный ПК совресенной косплектации
Нагрузка на процессор будет 1-3%.
Проверено опытом.
20 мар 12, 12:57    [12280344]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
SERG1257
Member

Откуда:
Сообщений: 2931
Кто бы спорил что запросы на статических данных будут делатся быстро. А как ТС собирается базу обновлять?
20 мар 12, 16:58    [12282841]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
SERG1257
Кто бы спорил что запросы на статических данных будут делатся быстро. А как ТС собирается базу обновлять?


Вы полагаете, что 2300 модифицирующих запросов для СУБД - это нереальные цифры? Автору надо быстро вставлять...
20 мар 12, 17:33    [12283137]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
Stinger03
Member

Откуда:
Сообщений: 27
сори, возможно немного не точно обьяснил.
На вебсервер приходит запрос. Мне надо проверить был ли уже запрос с таким ИП в течении суток и сколько раз.
Плотность запросов - 1700-2300 в секунду.

SERG1257
Задача не для СУБД. Копайте в сторону ферм.

Если не сложно - что это такое ?

Всем отписавшимся спасибо.
20 мар 12, 18:44    [12283611]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54767

Stinger03
На вебсервер приходит запрос. Мне надо проверить был ли уже запрос с таким ИП в течении
суток и сколько раз.
Плотность запросов - 1700-2300 в секунду.

И как тебе уже сказали: СУБД тут ни к чему. То, что тебе нужно, это простейшее in-memory
key-value хранилище.

Posted via ActualForum NNTP Server 1.5

20 мар 12, 18:55    [12283669]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
miksoft
Member

Откуда:
Сообщений: 38919
Dimitry Sibiryakov
И как тебе уже сказали: СУБД тут ни к чему. То, что тебе нужно, это простейшее in-memory key-value хранилище.
Можно подумать, что "in-memory key-value хранилище" - это не СУБД :)
20 мар 12, 19:14    [12283763]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
SERG1257
Member

Откуда:
Сообщений: 2931
pkarklin
Вы полагаете, что 2300 модифицирующих запросов для СУБД - это нереальные цифры? Автору надо быстро вставлять...
Одиночными инсертами с коммитом? Нет я верю, что вы можете этого добится, я сомневаюсь что РСУБД для этого предназначена.

miksoft
Можно подумать, что "in-memory key-value хранилище" - это не СУБД :)
Не РСУБД. Плюс, забив на ACID, ее можно легко кластеризовать (раскидать по нодам)
20 мар 12, 22:40    [12284616]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
SERG1257
Member

Откуда:
Сообщений: 2931
Stinger03
Если не сложно - что это такое ?
http://en.wikipedia.org/wiki/Server_farm
20 мар 12, 22:46    [12284651]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
Stinger03
Member

Откуда:
Сообщений: 27
SERG1257
Stinger03
Если не сложно - что это такое ?
http://en.wikipedia.org/wiki/Server_farm

это само-собой и так сейчас работает, ибо на каждый полученный запрос формируется 3-4 от нас, обрабатывается с них инфа и выдается наружу. Но вот с некоторыми вопросами статистики выходят затыки. поэтому решил у олла проконсультироватся. коллективный разум оно сподручнее :)
21 мар 12, 01:12    [12285120]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
SERG1257
Member

Откуда:
Сообщений: 2931
ответьте на вопросы miksoft
21 мар 12, 03:25    [12285256]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
Stinger03
Member

Откуда:
Сообщений: 27
miksoft
Stinger03
Задача - определить было ли уже в течении 24 часов обращение с одного и того же ИП и желательно сколько раз.
Хранить данные более 24 часов ненужно.
Что потянет подобную задачу и потянет ли вообще ?
Сколько раз вообще или сколько раз за последние 24 часа? С какой точностью это нужно делать? Как часто это "определить" должно происходить? Как долго/быстро оно должно происходить?

Сколько раз за последние 24 часа. если ИП за 24 часа не сделал ни одного запроса данных он считается уникальным. "Определить" должно происходить при каждом запросе данных. Т.е. если есть запрос данных есть надо определить - он уникальный или нет и сколько раз он уже был и от этого планируются дальнейшие действия с ним. Происходить должно очень быстро - время ответа сервера доли секунды ибо он должен дождатся ответов от других серверов и отдать данные обработки максимум за 2-3 секунды. лучше 1-1,5.
21 мар 12, 10:54    [12286116]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54767

miksoft
Можно подумать, что "in-memory key-value хранилище" - это не СУБД :)

Массив в памяти это БД? А код, который с ним работает это СУБД? Тогда std::map это точно СУБД.

Posted via ActualForum NNTP Server 1.5

21 мар 12, 14:04    [12288007]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
SERG1257
Member

Откуда:
Сообщений: 2931
2Stinger03
То есть по сути у вас есть
-- табличка
create table query (ip bigint, query_time datetime)
--запрос 
select count(*) from query where ip=:ip and :query_time-1<query_time
--после запроса 
insert into query values (:ip,:query_time)
commit
--когда нибудь по ходу работы очистка таблицы
delete from query where query_time<system_date-1

Вы не ответили за точность - произойдет ли большая беда если там будет плюс минус одна секунда в 24 часов.
Что будет если один (только один запрос, и очень редко будет забыт)
Нужна ли высокая доступность, что будет если ваша система уйдет в даун (потому как все это очень сильно пахнет кластерами)
Что будет если во время форс-мажора (все ноды были обесточены) ляжет весь кластер. (тут вопрос надо ли делать бакап свежевставленных записей на диск или можно просто поднять лишную ноду)
Если ошибки в принципе приемлимы (неприятно, но не смертельно) то дорога вам в NoSQL базы, кластеры, распределители нагрузки и бежнодовое взаимодействие.
21 мар 12, 16:34    [12289586]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
Stinger03
Member

Откуда:
Сообщений: 27
SERG1257
Вы не ответили за точность - произойдет ли большая беда если там будет плюс минус одна секунда в 24 часов.

Нет, беды никакой не будет.
SERG1257
Что будет если один (только один запрос, и очень редко будет забыт)

Тоже не смертельно.
SERG1257
Нужна ли высокая доступность, что будет если ваша система уйдет в даун (потому как все это очень сильно пахнет кластерами)

Вряд ли уйдет - сервера стоят в разных странах, не то что в разных ДЦ. Выход 1 сервера не ложит систему - нагрузка распределяется между живыми. Запас пока есть.

SERG1257
Что будет если во время форс-мажора (все ноды были обесточены) ляжет весь кластер. (тут вопрос надо ли делать бакап свежевставленных записей на диск или можно просто поднять лишную ноду)

выше ответил.

SERG1257
Если ошибки в принципе приемлимы (неприятно, но не смертельно) то дорога вам в NoSQL базы, кластеры, распределители нагрузки и бежнодовое взаимодействие.

Ошибки (небольшие) приемлемы. Система по сути работает и без этого, но это очень не оптимальный вариант работы.
21 мар 12, 17:30    [12290083]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
DPH3
Member

Откуда:
Сообщений: 456
SERG1257
Вряд ли уйдет - сервера стоят в разных странах, не то что в разных ДЦ. Выход 1 сервера не кладет систему - нагрузка распределяется между живыми. Запас пока есть.

Т.е. для сервиса "контроля IP" тоже нужно обеспечивать синхронизацию между ДЦ хотя бы на уровне logshipping?

А сколько вообще, в среднем, IP в сутки? А сколько в пике? И какая нагрузка в пике?
А то есть у меня подозрение, что при таком сценарии работы любая СУБД будет, де-факто, in-memory и справится с легкостью. Нужно только каким-то образом (специфичном для БД) указать, что локи при update делать не нужно (или, по крайней мере, не нужно их писать на диск). Ну, еще можно включать write cache на дисках (потери при падении, как уже говорилось, не существенны).
Основная сложность - синхронизация между ДЦ и автоматическое управление при падении.
Какая сейчас РСУБД используется в системе?
22 мар 12, 03:36    [12292518]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
Берешь любую СУБД
Guest
Берешь любую СУБД. Создаешь таблицы: Unlogged Tables. Отключаешь у СУБД синхронные commit и flush на диск. Выставляешь в СУБД побольше размеры буфера. Включаешь на диске cache на запись и отключаешь flush.
И используешь параметризованные запросы и пулы конектов в php.

Ну и используй особенности каждой СУБД. Если допустим используешь PostgreSQL, то используй хэш-индекс.
22 мар 12, 13:59    [12295026]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
Stinger03
Member

Откуда:
Сообщений: 27
DPH3
SERG1257
Вряд ли уйдет - сервера стоят в разных странах, не то что в разных ДЦ. Выход 1 сервера не кладет систему - нагрузка распределяется между живыми. Запас пока есть.

Т.е. для сервиса "контроля IP" тоже нужно обеспечивать синхронизацию между ДЦ хотя бы на уровне logshipping?

что то будем изобретать наверное... отельно пасиб за то что сразу обратили на это внимание.


DPH3
А сколько вообще, в среднем, IP в сутки? А сколько в пике? И какая нагрузка в пике?
Основная сложность - синхронизация между ДЦ и автоматическое управление при падении.
Какая сейчас РСУБД используется в системе?

В среднем около 150кк в среднем и до 360кк в пиках в сутки. в сукунду до 10к в пиках, но это редко. среднее что то около 2-3к в секунду.
Вобщем то запросы идут относительно ровно.
При этих расчетах не используется никакая. Пока для всего что нужно хватает текстовых файлов для расчетов - они небольшие и в основном все считается в памяти со сбросом изредка на диск. Но этой информации очень нехватает, надо проводить более сложные статистические расчеты по этому трафику.
24 мар 12, 14:11    [12306356]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32169
Stinger03
При этих расчетах не используется никакая. Пока для всего что нужно хватает текстовых файлов для расчетов - они небольшие и в основном все считается в памяти со сбросом изредка на диск. Но этой информации очень нехватает, надо проводить более сложные статистические расчеты по этому трафику.
А расчёты нужны сразу? А то может просто импортитовать раз в сутки данные и уже потом считать аналитику.
24 мар 12, 19:10    [12307356]     Ответить | Цитировать Сообщить модератору
 Re: Нужна консультация по очень большой нагрузке  [new]
DPH3
Member

Откуда:
Сообщений: 456
В среднем около 150кк в среднем и до 360кк в пиках в сутки. в сукунду до 10к в пиках, но это редко. среднее что то около 2-3к в секунду.

Я плохо выразился. А сколько разных IP в сутки и сколько, например, в секунду в пике.
Именно "разных" (по которым аггрегацию и нужно проводить).
24 мар 12, 21:39    [12307938]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить