Ответы пользователя по тегу MySQL
  • Как вы бы организовали хранение видео и аудиофайлов?

    ptchol
    @ptchol
    Linux system administrator
    1. Купите несколько машинок в hetzner, поставьте CEPH.
    2. Возьмите сторадж от runabove https://www.runabove.com/storage/object-storage.xml
    3. Купить у этих https://www.transip.eu/vps/ ребят vps, и аттачить к ней их же сторадж https://www.transip.eu/vps/big-storage/ относительно не дорогой.

    CDN который советовали выше, обычно как бы не про хранение, а про быструю отдачу.
    Ответ написан
  • Может ли Zabbix писать в свою БД только изменившиеся значения?

    ptchol
    @ptchol
    Linux system administrator
    Сталкивались с похожей задачей, пришли к тому что для таких метрик используем trapper, а на "клиентской" стороне вызываем zabbix_sender.
    Если значение изменилось менее чем на N% просто не шлем новые данные в мониторинг, и не изменяем информацию о собранных данных (в tmp_stats).
    Как только обнаруживается (при очередном запуске скрипта), что данные уже не посылались в течении 10min - высылаем. Вызов скрипта сбора данных происходит тем же zabbix'ом,
    Позволило существенно сократить кол-во значений определенных метрик.

    Все было бы существенно проще, если бы в заббиксе можно быстро настраивать retention для шаблонов/метрик. Стандартная тема с flexible интервалами совсем не то чего хочется...
    Ответ написан
    1 комментарий
  • Как работает MySQL с диском? Когда происходит синхронизация и как?

    ptchol
    @ptchol
    Linux system administrator
    Если говорить о популярном innodb то все довольно просто.
    При записи у нас есть фактически 2х уровневое кеширование. Первое на уровне операционной системы, это сброс страничек из памяти на диск, второе это то, после чего вы получаете ответ от БД что операция произедена.

    Кеширование на уровне фс, можно "обойти", используя флаг O_DIRECT при открытии файла, более подробно о доступных в mysql методах, здесь.
    Также есть параметр innodb_flush_log_at_trx_commit который определяет действия бд при осуществлении операции commit (фактически это попытка применения результатов транзакции), пишет ли она синхронно на диск, или достаточно записи в кеш фс, или достаточно записать данные в log который потом посинкается на диск.
    Все это непосредственным образом влияет на надежность и дисковое IO. Вы вольны выбирать.
    Ответ написан
    Комментировать
  • Брать ли mongodb для нового проекта?

    ptchol
    @ptchol
    Linux system administrator
    Если я правильно понял, то по факту это time-series data, но структуру данных представляет собой своего рода дерево, и нотацию можно представить в виде
    Domain.Group.Entity.Properties, и вам нужно иметь возможность группировать по каждому из узлов.
    Может тогда посмотреть на специализированные решения вроде influxdb.org ?
    Ответ написан
  • Синхронизация БД MySQL

    ptchol
    @ptchol
    Linux system administrator
    То есть вы хотите с теста на продакшен перевозить не только схему но и данные ?
    Мне кажется здесь существует только 1 вариант:
    Некий скрипт дампит ту часть схемы которую нужно перенести, необходимым образом осуществляет замену некоторых строк, заливает дамп на прод.
    В переносе только новых данных, Вам может помочь утиилитка mysqldiff.
    Но в следствие того что у вас подменяются некоторые данные, чтобы не произошло такого что все данные случайно определились как "новые", вам придется делать промежуточную базу, которая будет содержать базу теста, но с подставленными с продакшена именами, и уже эту базу сравнивать, и получать diff.
    Либо после того как сделали изменения в промежуточной базе синкать ее с продом при помощи утилиты table-sync из набора percona tools.
    Ответ написан