• Какую выбрать технологию для хранения и выборки больших данных?

    @hx510b
    "Я знаю, что ничего не знаю"
    10тыс пользователей * 1 млн строк по 200 байт = 2ТБ - максимальный размер базы - великовато для MySQL, но работать будет даже в лоб.
    Раз строки повторяются, то нужно сделать словарь строк, и оперировать уже id строки.
    Раз таблица пользователь-строки может оказаться очень длинной и ее изменение будет приносить большие задержки. То есть смысл резделить таблицу с информацией о строках пользователей на несколько таблиц (партиционирование), разделив весь пул пользователей по конкретным таблицам, чем больше таблиц - тем легче будет проходить обновления.
    итого имеем такую структуру:

    таблица users,
    в которой id пользователя, некое внешнее описание пользователя, номер/имя таблицы с данными

    таблица dict,
    в которой храним уникальные строки и их id

    пачка таблиц usersdata1...N,
    в которых храним id пользователя и id строки, если у пользователя строки могут повторяться - то уникальный key id, чтобы хранить дубликаты строк и вытягивать их в порядке key id
    чем больше N - тем веселее будут проходить изменения.

    Выборка видится такой - ищем в users пользователя, берем его id и знание какую таблицу userdata надо опрашивать, затем выбрать из userdata список id строк, сразу подтягивая строки из dict.
    Выбор таблицы можно делать, не храня данные о таблицах, например, по первым символам хеша "имени пользователя". Но такой принцип делает фиксированным количество таблиц userdata, это может оказаться не очень гибким способом для последующих изменений.

    Потом такую базу можно перенести на raid из ssd, чтобы чтение происходило с минимальными задержками на чтение.
    Если захочется еще повысить производительность, то userdataN можно размазать на разные хосты. При этом таблицы dict и users реплицировать между хостами средствами mysql.
    Можно и миллионы пользователей так обслуживать, имя соответствующий парк серверов.
    Ответ написан
    8 комментариев
  • Как исправить ошибку: Lost connection to MySQL server during query?

    @hx510b
    "Я знаю, что ничего не знаю"
    Судя по:
    Error in `/usr/sbin/mysqld': malloc(): memory corruption: 0x00007fcbfc124080

    1. сделать копию /var/lib/mysql на другой накопитель

    2. Исследуем и решаем:
    2.1. вариант1 - битая память - прогнать memtest, может перегрев системы? устраняем или, если обе проблемы не подтверждаются, то идем дальше. Хотя тут похоже сторонний виртуальный сервер. Но проблема может быть.
    Если проблема с ОЗУ, то протестировать внутри ОС можно созданием сжатых архивов и проверкой их целостности, в случае проблем с ОЗУ рано или поздно появятся ошибки контрольных сумм.

    2.2. вариант2 - либо испорчены файлы данных, и mysql становится плохо из-за кривого кода. файлы могут быть испорчены некорректным завершением работы сервера либо проблемами с блочным устройством:

    2018-08-20T05:10:47.359613Z 0 [ERROR] InnoDB: Could not find a valid tablespace file for `kubium/game`. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html for how to resolve the issue.
    2018-08-20T05:10:47.359626Z 0 [Warning] InnoDB: Ignoring tablespace `kubium/game` because it could not be opened.

    - это может быть косвенным признаком проблем с файлами.
    2.2.1. проверяем состояние блочных устройств smartctl - наличие offline uncorrectable или relocated sectos - могут быть причиной порчи данных - замена накопителя. Для чужого хостинга это недоступно. Можно косвенно проверить чтением блочного устройства /dev/vda
    2.2.2. проверяем fsck файловую систему, наличие ошибок в файловой системы может указывать на повреждение содержания файлов БД. чиним и молимся, что важнейшие файлы не были задеты.
    2.2.3. проверяем структуру innodb/myisam файлов, для этого используем штатные средства диагностики или вспомогательные утилиты, например "Percona Data Recovery Tool for InnoDB can help recover corrupted or deleted InnoDB tables. https://launchpad.net/percona-data-recovery-tool-f..." если проблемы - пытаемся чинить.
    Простой старый способ решения некоторых проблем - это dump базы в sql файл , и импорт заново в базу. старую можно переименовать.
    2.2.4. проблема может быть вызвана повреждением файлов индексов, в этом случае пересоздание индексов может все решить.

    2.3. вариант3 - похожие проблемы могут наблюдаться при подсовывании двоичных файлов баз от более свежей версии mysql - проверяем эту версию.
    Можно попробовать обновить версию mysql или сменить ее на mariadb, возможно некоторые проблемы уже решены.

    На машине немного памяти - 1Гб, при исчерпании свободного ОЗУ в системе запускается OOM Killer, который убивает процессы в системе, вполне мог убить процесс mysql прямо посередине критичного изменения файлов БД. Это можно найти в логах.
    Ответ написан
    1 комментарий
  • Можно ли в MySQL создать запрос по условию?

    Melkij
    @Melkij
    PostgreSQL DBA
    where plan_date_pay < coalesce(date_pay, now())
    Ответ написан
    Комментировать
  • Можно ли переделать программу на FoxPro 2.6 в современный вид?

    @sergealmazov
    Ваша основная задача - импортировать данные из DBF. Это и есть самое ценное.
    А обертку новую подобрать из учета требований к современным системам. Под оберткой я понимаю платформу, язык программирования, тип БД, где все храниться будет.

    Вам нужен толковый архитектор ПО.
    Ответ написан
    Комментировать
  • Можно ли переделать программу на FoxPro 2.6 в современный вид?

    @devlocal
    Нужно переписывать и вытягивать данные. Или по прежнему пользоваться тем что есть
    Ответ написан
    Комментировать
  • Можно ли переделать программу на FoxPro 2.6 в современный вид?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А вам и не надо разбираться в DOS, достаточно более-менее разбираться в предметной области и иметь исходники старой программы. Ну или не иметь исходников, но хорошо разбираться в предметной области, чтобы понять логику работы программы.
    Средства работы с DBF есть практически под все языки, так что можно написать как программу, работающую с теми же базами, так и конвертировать базы в другой формат и сделать хоть десктопное, хоть web-приложение.
    Ответ написан
  • При выборе скорости 100Мбит\сек дуплекс отваливается кабель, при 10 Мбит всё нормально. почему?

    @pfg21
    ex-турист
    навскидку:
    дальность большая,
    затухание где-то, кабель влажный, изоляция хреновая, небольшое межжильное сопротивление.
    жила оборвалась и просто прижат - повышенное погонное сопротивление,
    куча перегибов с большим углом и маленьким закруглением,
    может просто технологический косяк в самом кабеле
    и еще куча возможных вариантов...
    100 мбс затухает, а 10 мбс пробивает.

    как вариант попробовать в середину линии воткнуть хаб/свитч для усиления сигнала.
    но лучше проверить линию.
    Ответ написан
    6 комментариев
  • Какой программой лучше записывать CD/DVD?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    Вопрос был вполне актуален лет 10-15назад.
    Уже лет пять как CD/DVD исчезли вообще и превратились в ненужный раритет.
    Утилит в принципе как грязи например ImgBurn.
    Ответ написан
    Комментировать
  • Нейросети. Почему Python?

    @Ambrosian
    Вы имеете ввиду про ситуацию, когда нейросети - все исследовательские проекты.
    Ученые - не обязательно программисты. А Python - язык программирования с низким порогом входа.
    Никто не пишет с нуля, не тратит время - просто используют уже написанные другими библиотеки.
    В результате вокруг Python сложилось community по нейросетям.
    Если вам именно в исследовательских целях - поступайте также.

    P.S.:
    Это вы еще про Фортран не знаете.
    Язык давным давно не используется программистами.
    Но физиками продолжает использоваться.
    Ответ написан
  • Выбор между C и C++, и вообще стоит ли?

    @EvgeniiR
    https://github.com/EvgeniiR
    Олимпиадные задачи;
    Разработка игр;
    Клиент-серверные приложения;
    В последствии хайтек, роботы и прочее.


    1. Это 4 разные области, в которых используется 4 разных стека технологий. Вы не сможете подобрать такой язык на котором можно всё это реализовать(конечно, на c++ "можно всё" но это не всегда разумно, и круг использования с возрастом сузился у него).

    2. Вы не освоите столько областей. На то чтобы устроиться каким-нибудь стажером хоть по одной вам потребуется около года активного изучения выбранной области. Чтобы получать там какие-то стоящие деньги нужно вложить в неё хотя бы несколько лет.

    А если учесть что ещё вчера вы пытались выучить Django, но не осилили шаблонизаторы - думаю, это не ваше.
    Неужели вы подумали что эти области будут легче чем веб?)
    Ответ написан
    Комментировать
  • Как сократить бэкап (90% - файлы дистрибутива)?

    Jump
    @Jump Куратор тега Резервное копирование
    Системный администратор со стажем.
    Дедупликация в системе хранения архивов, или система архивации с дедупликацией. У меня например пара десятков VHD тестовых windows виртуалок лежит на небольшом SSD. И работают шустро ибо SSD и умещаются на диск который значительно меньше суммы размеров этих VHD.

    Но интересует именно решение на уровне архивов
    Пример архиватора - zpaq Кроме собственно банального сжатия - дедупликация, поддержка удаленных архивов.

    Если этот хеш встречается много раз - просто удаляем этот файл из архива (помечая, что в том месте был файл с таким-то хешем).
    То что вы описали называется файловая дедупликация. Вещь известная давно, но малоэффективная и никому не нужная.
    Сейчас используется блочная дедупликация - дедуплицируются чанки небольшого размера, не зависимо от принадлежности к файлу.
    Ответ написан
    3 комментария
  • Выбор между C и C++, и вообще стоит ли?

    @poslannikD
    Java/C/C++ Programmer
    языки уже ничего не стоят. Давным давно нужно знать целый стек технологий + обзорно те штуки которые используются в смежных областях.
    типичный набор знаний для джуна
    1) язык
    2) базы данных
    3) часто используемые библиотеки и фреймворки в выбранной области
    4) знание систем контроля версий
    5) знание основных инструментов разработки(ide, редакторы и все что облегчает жизнь программистам работающим с каким-то конкретным стеком)
    6) общий кругозор в айти
    7) знание короля айти - гугла. реально крутая вещь, попробуй хоть раз использовать. можно нагуглить все те вопросы которые ты задал
    UDP:прочитал комент о том что автор слепой, и стало немного стыдно за столь резкий ответ. Но это не изменит некоторых вещей:
    Людям с нарушением зрения будет очень трудно. Приходится часто искать информацию и если вам трудно это делать в больших объемах лучше остановиться.
    Ответ написан
    2 комментария
  • Гугл блокирует сайт за вирусы размером в 0 байт - как победить?

    Suntechnic
    @Suntechnic Автор вопроса
    После долгих тестов и препирательств с ТП стало понятно что им действительно не нравится домен.
    В частности создание домена из бессмысленного набора букв и заворчивание его на этот же сайт, привело к тому, что домен прошел проверку.
    Но самое интересное что проверку не прходит видоизмененный исходный домен.
    Т.е. исхдный домен был допустим gift-shop.ru (придумал только что - даже не знаю существует ли такой сайт), и было создано два домена дополнительных - ajihfihvuew.ru и giftshop.ru, так вот - первый проходит проверку, второй "содержит вирусы" в рандомных файлах! Хотя домен ранее не был вообще зареган!
    ТП Adwords предложило перебирать нравящиеся домены пока какой-то из них не пройдет проверку...
    Я не знаю как это можно комментировать (((
    Ответ написан
    Комментировать
  • HDD не открывается и просит его форматировать. Возможно ли спасти структуру папок?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Я так понимаю если я его форматирую то смогу вытащить файлы
    Объясните пожалуйста, логику этого предположения. Кроме шуток - правда очень интересно (пока в жизнь только его не воплощайте).

    Какова вероятность что я смогу её сохранить
    С имеющейся сейчас информацией - от 0 до 99%.

    Я пока оставил всё как есть.
    Это, в сочетании с консультацией здесь - разумное решение.

    Ни в коем случае не слушайте советы про ремапы, HDD Regenerator и прочее "восстановление работоспособности". В зависимости от текущего состояния диска, уже есть шанс прикончить его окончательно (так, что сами вы уже никаких файлов точно не восстановите). Насколько этот шанс высок и до какого состояния прикончить - вслепую не оценить.

    Если вы не хотите обращаться в компанию, занимающуюся восстановлением данных профессионально (а это было бы единственно правильным решением, т.к состояние диска явно ухудшается), то вам необходимо сделать максимально полный образ диска.

    Из домашних вариантов неплохим был бы gddrescue (GNU ddrescue), если вы дружите с Линуксом. Если нет, то используйте hex-редакторы, например WinHex или CI Hex Viewer.

    После этого образ надо проанализировать на предмет содержащихся там файлов. Для этого скачайте старую версию R.saver (она умеет работать с образами), откройте образ и запустите полный анализ.

    Кроме того, вы можете продиагностировать диск с помощью R.tester'а, но я бы не рекомендовал делать любую диагностику "ради интереса". Гораздо полезнее будет держать диск выключенным, тем более, что в чём проблема вы в целом уже представляете.
    Ответ написан
    2 комментария
  • Как системы распознавания лиц, собственно, распознают лица?

    sgjurano
    @sgjurano
    Разработчик
    Локализуется лицо, полученная картинка нормализуется, затем от неё считается какой-то набор признаков, по всей базе ищутся наиболее похожие на этот объекты, в простейшем случае в качестве ответа берётся самый ближний из них.
    Ответ написан
    3 комментария
  • Как заменить все гласные буквы на пробелы?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Вроде в С нет специальных кондиций для такого.

    Или множественный case или сделать массив из гласных и еще одним внутренним циклом прогонять.
    Ответ написан
    Комментировать
  • Насколько в действительности безопасна macOS?

    @cssman
    Абсолютной защищённости не существует, уязвимости есть всегда и везде, конечно же проблема не единственная:

    MacOS X
    Все продукты apple

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

    @HolidayR
    Pascal уже не в моде как первый язык для детей?
    "Песни о Паскале» хорошая книга для детей, сценарий книги развивается весьма умно, от простого к более сложному.
    Ответ написан
    Комментировать
  • Программирование - что для старта выучить ребенку?

    alexgearbox
    @alexgearbox
    Ответ написан
    Комментировать