Задать вопрос
  • Как лучше хранить журнал в долгосрочной перспективе?

    @d-stream
    Готовые решения - не подаю, но...
    Часто для таких целей используется откидывание в elasticsearch, который нативно умеет по нужным правилам сортировать данные на горячие, теплые и холодные (например последний месяц - hot, год - warm и остальное - cold)

    Но всё зависит от потребностей бизнеса. Если история сущности востребована часто и отображается в рамках дизайна приложения - то можно и удобно хранить историю в таблице кто-то-когда-было-стало и если история нужна долго, но это дорого - то тем или иным образом сливать самое старое на дешевые и медленные хранилища.
    Подразумевая sql - оптимально для такого писать историю триггерами, ну и если жмёт объём - разносить "по шпинделям".
    Ответ написан
    Комментировать
  • Как лучше хранить журнал в долгосрочной перспективе?

    BumblingBee
    @BumblingBee
    Во всем по немногу диванный эксперт
    Лучше всего использовать для хранения логов отдельную БД,предназначенную для этих целей, иначе вы рискнуете очень быстро получить ситуцию, когда таблица с логами будет занимать больше места на диске, чем все остальные таблицы с бизнес данными, вместе взятые. Это неминуемо приведет к проблемам с администрированием такой базы, бэкапы станут больше по размеру, будут делаться дольше и т.д.

    В качестве БД для логов лучше всего использовать Click House - базу от Яндекс. Она отлично для этих целей подходит и невероятно хорошо сжимает данные, т.е. помимо всего прочего, еще и на диске эти данные будут не много места занимать. Также вы можете с Click House настроить полтики хранения данных, например указать что данные в таблице лога должны храниться 5 лет, и CH будет сам их чистить.

    Нужно также учесть, что если вы хотите сделать хранение лога транзакционным, т.е. гарантировать, что не будет ситуации, когда у вас бизнес данные поменялись, а при запили в лог упала ошибка, и данные не были залогированы, то нужно вести запись в CH в два этапа. Нужно продублировать таблицу для ведения лога в вашей транзакционной БД, и писать в нее информацию о действиях пользователей в одной транзакции с изменением бизнес данных. Далее нужно реализовать джобу, которая в фоне например по расписанию, или иным образом, будет скидывать данные из лог таблицы в транзакционной БД в таблицу ClickHouse, затем удалять данные в лог таблице транзакцонной БД, только после их успешного переноса в CH. Таким образом таблица с логами в транзакционной БД всегда будет маленького размера.

    См. также паттерн Transactional Outbox
    Ответ написан
    Комментировать
  • Полнотекстовый поиск на нескольких таблицах

    Garg0t
    @Garg0t
    Всё же попробуйте Sphinx. Помимо высокой производительности, в нем большая работа проделана по повышению релевантности. В свежем номере журнала «Хакер» есть интервью с Андреем Аксеновым (разработчиком Sphinx), он рассказывает об основных принципах, по которым он работает.

    С помощью Sphinx вы серьезно повысите качество выдачи, относительно способа, которым хотите решить задачу «в лоб».
    Ответ написан
    5 комментариев
  • Как добиться максимальной безопасности в сети?

    opium
    @opium
    Просто люблю качественно работать
    1)Используем анонимные прокси/vpn сервера для серфинга, обязательно те которые не сохраняют логи, советов не просите.
    2)Используем анонимные емайлы.
    3)Используем анонимные симки купленные в метро.
    4)Платим с анонимных кошельков, киви на анонимную симку, вебмани и яндекс деньги на ваську пупкина, виртуальные визы выпускаем анонимные в этих же системах.
    5)Используем генераторы сканов паспортов и делаем пасспорт васи пупкина и шлем его везде где требуют верификацию.
    6)Пользуемся в основном зарубежными сервисами, не имеющими русской пожддержки и языка, не будем упрощать жизнь тем кто нас будет искать. Пробуем использовать японские и китайские сервисы.
    7)Не храним ни какой информации на своем компе, любой кто жаждет анонимности должен быть гттов что к нему прийдут и заберут комп, а ваш комп должен быть как вы, анонимным.
    Ответ написан
    Комментировать
  • Как добиться максимальной безопасности в сети?

    powerman
    @powerman
    Systems Architect, Senior Go/Perl Linux Developer
    Судя по контексту, Вас интересует анонимность, а не безопасность.

    Полная анонимность во-первых невозможна, а во-вторых не нужна, т.к. с определённого момента будет только привлекать к Вам излишнее внимание. Максимальной анонимности можно достичь через использование полноценных виртуальных личностей, одной из которых будет Ваша реальная личность.

    Именно от имени этой личности Вы будете выкладывать в сеть всю необходимую информацию — имя и контактную информацию для клиентов/знакомых, адрес и кредитку для магазинов, фотки для друзей. Вы можете пытаться контролировать объём выкладываемой информации, ограничивать своё присутствие в социальных сетях, и т.д. — но это не даст большого эффекта: всё, что Вы не расскажете про себя сами, про Вас расскажут Ваши друзья. Избежать этого можно, только если у Вас нет друзей, Вы не делаете покупки в интернете, не ищете через интернет работу, не пытаетесь заработать деньги через интернет, … что для большинства абсолютно неприемлемо, так что лучше сразу смиритесь с тем, что «реальный» виртуал у Вас всё-равно будет. Единственный возможный способ его «анонимизировать» это не привлекать к нему внимания — сделайте так, чтобы эта «реальная» виртуальная личность абсолютно ничем не выделялась на общем фоне, будьте «как все».

    А для всей остальной деятельности в сети используйте совершенно другие виртуальные личности. Чтобы их не смогли связать с Вашей реальной личностью, желательно исключить все возможные пересечения виртуальных личностей с реальной:
    1. придумайте полноценную личность — имя, ник, пол, email, …
    2. используйте для всей деятельности от имени виртуала другую OS (в идеале не просто ещё одну винду/линух в VMware, а действительно иную OS, с другим набором используемых приложений — другой браузер, IM-клиент, etc.); может иметь смысл использовать специальные дистрибутивы линуха ориентированные на максимальную анонимность
    3. настройте эту OS не так, как обычно настраиваете свою систему — другой язык, другое разрешение экрана, другая тайм-зона
    4. по возможности используйте другой канал для выхода в инет (напр. если основная система работает через городскую локалку или ADSL, виртуальная система может работать через публичный WiFi)
    И только когда эта часть Вашей анонимизации готова, можете начинать заботиться о VPN, Tor и proxy. Конечно, ещё остаётся вероятность, что Вас всё-равно вычислят по психологическому профилю… :-) но чтобы кто-то начал сравнивать псих.профили Ваших виртуалов сначала должно появиться подозрение, что эти виртуалы принадлежат одному человеку, а для этого скорее всего Вам необходимо будет самостоятельно проговориться или ошибиться (указать не тот email, или выйти в инет не через тот канал, etc.).

    DISCLAIMER: Поддержка полноценной не отслеживаемой виртуальной личности может со временем привести к психическому заболеванию. :)
    Ответ написан
    3 комментария
  • Как правильно указывать в URL версию языка?

    @v1z
    Лично мне приятен вариант, когда www.domain.com отображает английский вариант сайта, а www.domain.ru — русский. Но не всегда бывает доступны оба домена.

    Тогда вариант с www.domain.com/ru (или /en/) подойдет.

    Вариант с ru.domain.com мне не особо нравится. И уж точно www.ru.domain.com будет смотреться очень странно
    Ответ написан
    Комментировать