Здравствуйте, Sharov, Вы писали:
S>Зачем индекс на таких объемах операций в секунду? Без него быстрее же будет.
А зачем данные без возможности поиска? Индексировалось все: IP-адреса, порты, протоколы.
Здравствуйте, Skorodum, Вы писали:
S>>Зачем индекс на таких объемах операций в секунду? Без него быстрее же будет. S>А зачем данные без возможности поиска? Индексировалось все: IP-адреса, порты, протоколы.
Как обычно компромисс -- при такой нагрузке, быстрая запись, наверное, важнее чем чтение.
SS>3. Программа, которая находила процесс сапёра, глядела на него (делая скриншоты), и играла в него. Опционально, перестартовала игру при проигрыше. Таким образом у меня был рекорд 1 секунда на pentium 200. После апгрейда на какой-то селерон, программа стабильно побеждала за <1с — 0 секунд на таймере.
не помню уже на какой системе, но скорее всего на вин98 был глюк в сапере, там можно с помощью каких-то не очень хитрых манипуляций (открыл случайно) застопить таймер. так что у меня там тоже был рекорд секунда или что-то в этом роде на уровне сложности профессионал.
CEM>У каждого из нас есть какие-то неординарные достижения в программировании, которыми можно похвалиться и/или поудивлять других. Как-то так:
достижением не назову, т.к. фигня, но было смешно. на первом курсе имели доступ только к ХТ и нескольким 286 полураздроченным.
старшекурсники сидели на 386, поэтому мы их классово ненавидели.
везде стояла нетварь (ну новелловская). и с помощью нехитрого API там можно было слать мгновенные сообщения на комп. ну как только получилось заслать, естественно сразу пишу резидент, который через каждую минуту шлет случайное сообщение на случайный комп в сети из текстового файла, который был отдан на заполнение упоротому КВН-щику. и был пополняем.
в общем запустил и ушел домой от греха. старшекурсники нервные и что-то в это время там сдавали как раз. квн-щик потом рассказывает, влетают в аудиторию, начинают орать и кидаться на него, мозгов-то не хватало понять, что резидент шлет, а не он. в общем спасло его только то, что у меня глюк был в проге, при случайном выборе компа жертвы не исключался комп, с которого идет отправка. в итоге ему повезло и ему тоже пришло сообщение с очередной тупой шуткой. это его и спасло (типа это же значит что шлют и ему, а значит он не при делах). иначе бы точно отмудохали его. короче ржали на следующий день.
Здравствуйте, Kaifa, Вы писали:
K>и с помощью нехитрого API там можно было слать мгновенные сообщения на комп.
netsend же?
Это была невероятно весёлая и удобная штука в своё время. Кроме классического "привет от хакеров", в те времена можно было быстро отправлять сообщения коллегам по сетке, ничего дополнительно не устанавливая и не запуская, а консоль всегда была под руками. Ну и было весело, когда кто-нибудь по глупости бродкаст делал — характерный массовый beep по всем офисам, а потом шли бить его всей работой
Здравствуйте, Skorodum, Вы писали:
S>Сохранял информацию о всех TCP/UDP сессиях на скорости 10 GB в кольцевом буфере размером 100 Гб, с моментальным поиском.
А что такое UDP сессия?
S>Под кольцевой буфер использовался PostgreSQL, порядка 250К insert'ов в секунду.
Постгрес и больше инсертов прожевать может.
А вот попробуй хотя бы столько же update
Здравствуйте, CEMb, Вы писали:
CEM>netsend же? CEM>Это была невероятно весёлая и удобная штука в своё время. Кроме классического "привет от хакеров", в те времена можно было быстро отправлять сообщения коллегам по сетке, ничего дополнительно не устанавливая и не запуская, а консоль всегда была под руками.
Я когда то написал свой вариант который умел отправлять от "чужого имени", не переменовывая при этом комп. В итоге чутка поразвлекались на работе рассылая мессаги от имени директора.
Здравствуйте, CreatorCray, Вы писали:
L>>А вот попробуй хотя бы столько же update CC>Онож по хорошему всё в лог фигачится должно и потом разгребаться
Постгрес-версионник.
По сути каждый update (даже незакоммиченный) — новая версия записи.
На О большое поиска влияет очень сильно. Эффект заметен невооруженным глазом, если честно.
CC>Я когда то написал свой вариант который умел отправлять от "чужого имени", не переменовывая при этом комп. В итоге чутка поразвлекались на работе рассылая мессаги от имени директора.
по-моему я тоже подменял. но не помню на пустую строчку или на другой комп.
Здравствуйте, landerhigh, Вы писали:
L>А что такое UDP сессия?
В данном контексте уникальное сочетание IP-адресов и портов.
S>>Под кольцевой буфер использовался PostgreSQL, порядка 250К insert'ов в секунду. L>Постгрес и больше инсертов прожевать может.
Сильно сомневаюсь, что из коробки и в лоб такое получится даже на сегодняшнем железе, если есть индексация хотя бы по 4-5 полям (для примера IP адреса и порты и строка символов на 15).
Здравствуйте, Skorodum, Вы писали:
S>>>Под кольцевой буфер использовался PostgreSQL, порядка 250К insert'ов в секунду. L>>Постгрес и больше инсертов прожевать может. S>Сильно сомневаюсь, что из коробки и в лоб такое получится даже на сегодняшнем железе, если есть индексация хотя бы по 4-5 полям (для примера IP адреса и порты и строка символов на 15).
IP адрес и порт уже сами по себе практически индексы. Тут скорее дело в пропускной способности того, куда это писаться будет. Ну и вряд ли 250К в секунду — это продолжительная нагрузка.
Здравствуйте, landerhigh, Вы писали:
L>IP адрес и порт уже сами по себе практически индексы. Тут скорее дело в пропускной способности того, куда это писаться будет.
Не только. Создание индексов можно распараллелить, ЕМНИП, это дало прирост скорости в несколько раз.
L>Ну и вряд ли 250К в секунду — это продолжительная нагрузка.
В моем случае именно что постоянная была.
Здравствуйте, Skorodum, Вы писали:
L>>IP адрес и порт уже сами по себе практически индексы. Тут скорее дело в пропускной способности того, куда это писаться будет. S>Не только. Создание индексов можно распараллелить, ЕМНИП, это дало прирост скорости в несколько раз.
Интересно. Я уже пару лет с БД не работаю, но не знал про выделенное
L>>Ну и вряд ли 250К в секунду — это продолжительная нагрузка. S>В моем случае именно что постоянная была.
Круто... только как именно ring buffer был организован? Отдельный процесс удалял старые записи? Partitioning?
Здравствуйте, landerhigh, Вы писали:
L>>>А вот попробуй хотя бы столько же update CC>>Онож по хорошему всё в лог фигачится должно и потом разгребаться
L>Постгрес-версионник. L>По сути каждый update (даже незакоммиченный) — новая версия записи.
Ну т.е как я и говорил: при insert/update всё будет падать в линейный лог так что тут особой доблести нету. Потом надо лог replay и применить на основную базу, но это можно сделать потом.
L>На О большое поиска влияет очень сильно. Эффект заметен невооруженным глазом, если честно.
Ожидаемо.
CC>Ну т.е как я и говорил: при insert/update всё будет падать в линейный лог так что тут особой доблести нету.
Не-не. С insert в Постгресе все хорошо искаропки. Получше, чем DB2.
Вот постоянные апдейты одних и тех же записей портят всю малину на счет раз. Нужно либо постоянно пылесосить, либо придумывать, как обойтись без них.
L>>На О большое поиска влияет очень сильно. Эффект заметен невооруженным глазом, если честно. CC>Ожидаемо.
Здравствуйте, landerhigh, Вы писали:
L>Вот постоянные апдейты одних и тех же записей портят всю малину на счет раз. Нужно либо постоянно пылесосить, либо придумывать, как обойтись без них.
А, дык это потому что надо сначала прочитать последнюю запись а она в логе за кучей такого же говна. Для такого сценария по идее можно было сделать оптимизацию, но тут я хз сделали или нет.