• Какую key-value БД использовать с данными в 10 млрд строк записей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Несколько мыслей.

    1) У меня устойчивое дежа-вю. Периодически в топик заходят люди с именно этим вопросом. Разница только в количестве. Кому 1 млрд. Кому 10. Можно также поискать и слинковать эти вопросы в один большой вопрос.

    2) MySQL который указан в тегах - нормально справляется с этой задачей. Он и не такое число строк
    умеет хранить. И если взять MariaDb - там есть куча новых engines которые можно крутить для тюнинга
    именно скорости чтения. Разумеется жертвуя чем-то другим. Транзакциями и записью например.

    3) Непонятно что такое минимальное время? Если использовать дисковую БД типа MySQL то деградация времени
    поиска будет примерно зависеть от логарифма количества строк. Тоесть деградация будет но очень медленно.
    Для 10 млрд индекс по key будет содержать порядка 4-5 уровней BTree дерева. Тоесть дисковой системе
    нужно будет сделать до 5 или до 6 рандомных чтений (если нужные данные лежат в таблице). Это достаточно
    быстро для того чтобы моргнуть глазом за это время. Рандомное чтение любого блока из магнитного диска
    класса SATA-3 занимает порядка 20 милисекунд. Тоесть для 5 уровней - это 100 милисекунд. Для дисков
    класса SSD и это время можно уже считать меньше милисекунды. Точно я не знаю надо мерять.

    Испортить это время может сетевой лаг который в данной задаче мы просто не учитываем. Считаем что сеть идеальна.

    4) Непонятно зачем здесь указан Redis. Его задача не хранить 10 млрд а хранить только горячие
    ключи по котороым идет очень частый доступ. Если автор хочет In-memory хранение - то время можно
    еще сильнее улучшить. Его можно свести практически до нуля (я вангую несколько микро-секунд)
    но придется прикупить планок памяти побольше и посчитать сколько памяти
    надо для 10 млрд key/values неизвестной длины. Вообще крутить регулятор в направлении
    микро-секунд нет особого смысла т.к. другие звенья вашего стека (приложение и сеть) могут
    быть на порядки медленнее а это вообще нивелирует всю пользу от такой оптимизации.
    Ответ написан
    41 комментарий
  • Как устранить ошибку при сохранении?

    @Taros Автор вопроса
    Откройте Среда SQL Server Management Studio.
    В меню Сервис щелкните пункт Параметры.
    В области навигации окна Параметры щелкните Конструкторы.
    Установите или снимите флажок Запретить сохранение изменений, требующих повторного создания таблицы, затем нажмите кнопку ОК.

    Будьте аккураты, данные из таблиц могут пропасть.
    Ответ написан
    Комментировать
  • Что делать с ошибкой запроса left join guid при сопоставлении?

    OrlovEvgenii
    @OrlovEvgenii
    golang developer / DevOps
    Попробуй так
    SELECT * FROM `first` as t1
     LEFT JOIN `second` as t2 ON t1.id COLLATE utf8_unicode_ci = t2.number_id COLLATE utf8_unicode_ci;


    Но COLLATE может замедлить выполнение запроса, поскольку серверу придется преобразовывать значения перед сравнением, если это возможно - поменяй кодировку одного из столбцов
    Ответ написан
    1 комментарий
  • Как определить, что у пользователя включен vpn?

    @AlexVWill
    Есть подозрение, что из-за него некорректно работает форма авторизации / регистрации на сайте.

    Надо бороться с причиной, а не с явлением как таковым. Если форма криво работает из-под VPN, то виновата форма, а не VPN. Половина мира уже сидит в интеренет под VPN, поэтому стоит задуматься о том, что у тебя не так реализовано. Тем более, что каких то объективных причин нарушения работы web-сервера если на него поступают запросы от VPN нет.
    Я бы скорее предположил, что в форме реализованы какие то скрипты (возможно даже сторонние JS библиотеки), который блокировщики рекламы считают спамом, и режут их, отсюда и проблема. Надо конкретно смотреть, что не так.
    ак определить, что у пользователя включен vpn

    Ну определишь ты, и что дальше? Как это тебе поможет реализовать исправление ошибки формы? Лучше задуматься о том, как исправить форму, чтобы все могkи ей пользоваться независимо от VPN.
    Ответ написан
    4 комментария
  • Как определить, что у пользователя включен vpn?

    vovka3003
    @vovka3003
    Фрилансер. Инженер систем безопасности.
    Только по косвенным признакам.
    Если вы ждёте аудиторию из РФ, а VPN находится за ее пределами, можно дергать IP посетителя ($_SERVER['REMOTE_ADDR'];) и прогонять через какой-нибудь сервис типа https://ip-api.com. Результат отличный от "Russua" - обрабатывать, как вам требуется...
    Но это как вариант. Способ весьма костыльный.
    Ответ написан
  • Как лечится кризис начинающего программиста?

    @Dementor
    программист, архитектор, аналитик
    Не знаю насколько мой случай типичен или является экзотикой, но я целенаправленно не учился программировать и все познавал в процессе.

    Мне захотелось сделать сайт и я просто открыл исходный код похожей страницы и стал изучать как там все устроено - так я изучил HTML и CSS. Захотел сделать галерею и просто начал делать - в процессе освоил PHP (тогда это была еще третья версия). На сисадминской подработке попросили автоматизировать ежедневную рутинную операцию с заявками - освоил 1С 7.7. На следующей работе меня посадили на поддержку бухгалтерского софта для бюджетных организаций и единственным источником информации были только исходники программы - так я освоил Foxpro и SQL. И все это происходило в начале 2000-х в так сказать догугловскую и достекоферфлововский период.

    И вот как-то мне захотелось изучить Java. У меня была какая-то бумажная книга от Питера, потом электронная версия философии Экера, смотрел форумы... Но не пошло и я забросил. А где-то пару лет назад нужно было для моего проекта сделать мобильное приложение и снова все пошло как по маслу - все что в подкорке лежало по Jave всплыло, а остальное быстро выловил на стековерфлоу, джаватолке и стартандроиде.

    Так что мой совет: найдите себе дело и просто делайте его.
    Ответ написан
    Комментировать
  • Голосовой ассистент на c#. С чего начать? Что надо изучить? Как реализовать(это мой первый проект)?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Если прям совсем с нуля писать, то следующие лет десять надо будет учить программирование, алгоритмы, кучу математики, вероятно нейросети. Но получится всё равно сильно хуже яндексовой Алисы, так как такие проекты в одиночку на коленке не пишут. Если же можно опираться на готовые решения, то стоит изучить документацию по открытым API существующих голосовых помощников и интегрировать своё приложение с одним из них.
    Ответ написан
    Комментировать
  • Что нужно изменить, чтобы скрипт работал без jQuery?

    Adamos
    @Adamos
    https://youmightnotneedjquery.com/#on и далее по пунктам
    Ответ написан
    Комментировать
  • Как открыть консоль браузера на Андроид смартфоне?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    https://developer.chrome.com/docs/devtools/remote-...
    Подключаем телефон к компу, открываем на телефоне сайт и на компьютере видим что в консоли телефона.
    Ответ написан
    Комментировать
  • Как называется этот тэг?

    noder_ss
    @noder_ss
    Линуксоид-энтузиаст и SQL разработчик
    Ответ написан
    Комментировать
  • Возможно ли встроить node.js проект в вордпресс плагин?

    @risejs
    Вам нужно просто переписать из примера Backend (Node.js) на PHP, потому что Wordpress написан на PHP. А так в остальном этот пример должен подойти, включая Frontend (HTML).

    Но почему-то мне кажется, что PayPal плагины для Wordpress существуют готовые, погуглите.
    Ответ написан
    3 комментария
  • Зачем модификатор public если его можно не использовать?

    Потому что так понятнее какая видимость у переменной. В одних языках по умолчанию все переменные, объявленные без модификатора будут private, в других public, а так всё явно задано и путаница исключена.
    Не исключена вероятность, что при смене версии языка вдруг это поведение изменится и весь код без явного объявления превратится в тыкву.
    Ответ написан
    2 комментария
  • Почему модальное окно не открывается?

    victormayorov
    @victormayorov
    Frontend разработчик
    Ну во-первых, у вас синтаксическая ошибка в первой же строчке. Не закрыты двойные ковычки.
    --const modalTrigger = document.querySelector("[data-modal]),
    ++const modalTrigger = document.querySelector("[data-modal]"),

    Во-вторых, не хватает стилей для модального окна, а именно нет класса .show, который добавляется и как я понял должен устанавливать display: block;
    Ответ написан
    Комментировать
  • Браузер блокирует скачиваение с сайта нескольких файлов подряд. Как предупредить пользователей?

    @alexalexes
    Если следовать логике загрузки файлов из github (получить весь репозиторий) или любого файлового облака (получить весь каталог с файлами), то когда речь заходит о скачивании набора файлов, то этот набор лучше упаковать в архив и отдать клиенту отдельным файлом. Тогда вы не столкнетесь с ограничениями браузера.
    Ответ написан
    2 комментария
  • Как HR реагируют на "NDA" в резюме вместо места работы?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    С точки зрения росийского права такой пункт трудового договора - ничтожен. Смело соглашайтесь.
    Ответ написан
    Комментировать
  • Как HR реагируют на "NDA" в резюме вместо места работы?

    vabka
    @vabka
    Токсичный шарпист
    Со смехом, тк если работали официально, то место работы будет написано в трудовой.
    Ответ написан
    Комментировать
  • Как удалить лишний js и css код с сайта?

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    кто такой лишний js и cs?

    грузится он медленно именно из за этого

    нет. Грузится он медленно из за того что у вас сервер очень медленно работает. Он отдает картинки рамером в 10кб по 10с
    63fe5e942e469914534220.png
    Ответ написан
    3 комментария
  • Как скопировать массово все сслыки на эти файлы, чтобы не вручную?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Странная задача. Зачем копировать ссылки на "то чего нет" ?
    Ценность такой информации - на уровне рандомного шума.
    Ответ написан
    5 комментариев