Задать вопрос
  • Правильно ли я понял свойства распределенных систем?

    1. Ты запутался из-за того что ты смешал CAP с измеряемыми характеристиками (пропускная способность, доступность, итд)

    Доступность
    Здесь уже появляется неоднозначность.

    Это примерно такая же неоднозначность, как в слове "замок".
    Воспринимай это как разные слова из разных контекстов.
    HA - это про малое количество сбоев, которые приводят к нулевой доступности.
    A из CAP - это про сохранении доступности при выпадении узлов из кластера (если забыть про A, то можно сделать строго консистентную систему из нескольких узлов даже в случае потери связи между узлами - просто вся система будет отключаться)


    По идее, здесь мы поддерживаем согласованность, жертвуя.. доступностью? Но ведь нет же! Мы все равно получим ответ.

    Да, мы жертвуем доступностью, так как ответ мы не получим, если какой-то узел выпал из кластера => операция записи просто не будет выполнена.
    Хотя в реальной жизни мы сразу получим ответ вида "запрос не может быть обработан. Почините кластер"
    Пример такой системы - etcd, в которой ты заранее указываешь размер кластера и если кластер не может придти в состояние кворума (доступно N/2+1 узел, где N-количество узлов), то весь кластер переходит в аварийный режим без возможности чтения или записи.
    Таким образом гарантируется консистентность даже на отвалившихся от кластера узлах.


    Определение доступности из CAP вообще ничего не говорит про задержку (latency).

    Потому что CAP не про это.


    Резюмируя вопросы:


    1. Просто читаем определение:

    High availability (HA) is a system's capability to provide services to end users without going down for a specified period of time. High availability minimizes or (ideally) eliminates service downtime regardless of what incident the company runs into (a power outage, hardware failure, unresponsive apps, lost connection with the cloud provider, etc.).

    Тоесть да, система вполне может уходить полностью в оффлайн на какое-то время, если это было заранее оговорено.
    В пределах разумного, конечно. Если тебе дают гарантированную доступность 1с в год - это какой-то сюр.


    Какая правильная и полная формулировка Availability из CAP?

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

    доступность (англ. availability) — любой запрос к распределённой системе завершается откликом, однако без гарантии, что ответы всех узлов системы совпадают;

    Любой запрос - любой запрос чтения или записи к любому из работающих узлов системы.
    Завершается откликом - значит тебе дают какой-то ответ, который не является ошибкой.
    Пример доступной, но не консистентной системы управления кадрами:
    Запрос: "Какая зарплата у Иванова?"
    Узел 1: 1000 долларов
    Узел 2: две тысячи долларов
    Узел 3: Иванов у нас не работает

    Пример такой же системы, но в которой действует принцип консистентность:
    Запрос: Иванов уволен?
    Узел 1,2,3: Ошибка: кластер в аварийном режиме.
    Либо:
    Узел 1,2,3: Иванов не уволен.
    Либо:
    Узел 1,2: Иванов не уволен
    Узел 3: Ошибка: отсутствует кворум.

    Запрос: Уволить Иванова.
    Узел 1,2,3: Ошибка: кластер в аварийном режиме. Доступно только чтение.
    Либо:
    Как в третьем варианте, если возможна запись при наличии кворума.


    Единственное, как я смог притянуть за уши с существующей формулировкой.

    CAP не про это.


    Отказоустойчивая система не допускает потери функциональности вообще?

    Пуленепробиваемое стекло не допускает пробития пулями вообще?)
    В случае катастрофического отказа - возможно всё.


    Как, в двух словах хотя бы, проводится измерение производительности и пропускной способности сервиса?

    Два слова: нагрузочное тестирование.

    Теперь все дополнения тут:

    Конфиденциальность. Пользователь уверен, что данные из системы не утекут.

    Я не понял, почему конфиденциальность относится к надёжности, если это вообще не технический, а организационный момент.


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

    Вообще это в англоязычных источниках называется observability/наблюдаемость.
    Ну да ладно. Просто опять смешали несколько вещей в одну.


    Можно провести небольшое тестирование, собрать метрику по этому эндпоинту, взять среднее арифметическое и вот тебе производительность для конкретно этого эндпоинта.

    Я бы поспорил насчёт среднего арифметического )


    Здесь вопрос в том, как мерить общую производительность сервиса?

    Никак, ведь нет никакой "общей производительности".
    Нагрузочное тестирование существует, но его проводят в профиле какой-то конкретной нагрузки/сценария.

    Например в банковской системе могут проводить нагрузочную систему по нескольким сценариям:
    1. "Чёрная пятница" - резко увеличивается количество карточных операций.
    2. "Реклама у крупного блогера" - резко увеличилось количество запросов на выпуск новой карты. Нужно проверить, как вообще выдержит сервис, отвечающий за эмбоссинг.
    3. "Экономике в стране «очень плохо»" - смотрим как выдержит клиринг при большом количестве межбанковских переводов.

    Все эти профили нагрузки будут задевать разные части системы и мы сможем сказать, как система будет держаться в каждом из сценариев.


    Пропускную способность можно увеличить, распараллелив обработку (горизонтальное масштабирование или процессы и потоки в рамках одного сервиса).

    Или добавив пакетную обработку.


    На задержка напрямую зависит от пропускной способности (производительности) и канала связи. Чем ближе сервер к пользователю, тем меньше задержка.

    А вот и нет.
    У нас вполне может быть узкий канал с низкой задержкой или же широкий канал с большой задержкой.
    А ещё задержка - это время обработки запроса твоей собственной системой.
    Например твой сервис вполне может иметь большой latency, но и большой throughput и наоборот.
    Ответ написан
    2 комментария
  • Как узнать удалил ли пользователь приложение?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    А есть какой-то хук/эвент, который дёрнется при удалении приложения? Если есть, то вот в нём самое место, чтобы постучаться на сервер и сообщить, что аккаунт всё.
    Ответ написан
    3 комментария
  • Как скрыть консоль в консольном приложении C#?

    Сделай из своего приложения службу. Службы запускаются в фоне и без окошка.
    Ответ написан
    Комментировать
  • Как увеличить объем разделов?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    лвм, рейд.. Вариантов много. Все зависит от того, что именно вам нужно, и как именно у вас существующая система размечена.
    Ответ написан
    Комментировать
  • Как увеличить объем разделов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    1) Можно создать 7 фолдеров типа /disk1, /disk2 .... и примонтировать диски через mount.
    2) Можно собрать ZFS pool из 7 дисков и подключить их все как один большой диск (zpool create).
    3) Программный JBOD на базе Btrfs (mkfs.btrfs ... )
    4) LVM как уже писали выше
    Ответ написан
    Комментировать
  • Как быстро загружать файлы на сервер?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Скорее всего каждый файл аплоадится в своем отдельном процессе XMLHttpRequest
    Ответ написан
    Комментировать
  • Как быстро загружать файлы на сервер?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Но как файлы загружаются в Яндекс диск и все аналогичные облака?
    Этот вопрос вообще должен решаться программистом в 2 клика - открыл инструмент разработчика, кликнул нетворк - смотришь пэйлоад и источник вызова.
    Ответ написан
    Комментировать
  • 401 Насколько вероятна циклическая авторизация? И как правильно с ней бороться?

    @Voland69
    Посмотрите реализацию JWT - клиенту выдается два токена:
    1. access - то что нужно для доступа к ресурсу, живет недолго
    2. refresh - то что нужно для обновления access токена, живет сессию
    по истечении access токена единожды отправляете пару AT + RT auth серверу, если 200 то запоминаете новую пару, повторяете запрос и профит, если не 200 то сессия истекла (тут еще стоит добавить обработку конкретных ошибок, например если этот RT уже использовался для обновления сессии значит его "подсмотрели" и у вас проблемы).
    Ответ написан
    Комментировать
  • Есть ли не официальные аналоги миджорни апи?

    stable diffusion?
    Ответ написан
    Комментировать
  • Что за непонятные html-файлы?

    nazares
    @nazares
    Software Engineer
    Ну вангую что у тебя там в корне какие то файлы или пути с кириллическими названиями Винда не сильно любит UTF а темболее mingw
    Ответ написан
    1 комментарий
  • Как вставляют данные в сайт типа ruskino.ru?

    vabka
    @vabka Куратор тега Веб-разработка
    Есть база данных - в неё каким-то образом заносят данные (в данном случае о фильмах и актёрах). Потом из этой базы данных данные достаются тоже каким-то образом и вносятся в html.

    В качестве базы данных может быть, например PostgreSQL - тогда мы можем достать информацию о фильмах и актёрах при помощи sql-запроса. Также нам нужен какой-то сервер, который будет с базой данных общаться. Написан он может быть в принципе на любом языке программирования (а сейчас есть даже всякие nocode платформы, где простые операции можно и без кода вообще сделать).

    Более подробный ответ на этот вопрос будет уже по сути пересказом курса по разработке ПО.
    Ответ написан
    Комментировать
  • Чем отличаются canvas от webgl, и что лучше учить для 3d-анимации?

    @Iv_and_S
    -webgl - это низкоуровневое программирование графики. На чистом webgl быстрее работает(относительно фреймворков), но сложно и долго писать.
    -three.js babylon.js - это по сути API к webgl . т.е. более высокоуровневое программирование графики. А здесь проще чем на webgl, низкий порог вхождения, но естественно с некоторыми накладными расходами.
    - canvas - это то на чем все это в браузере отрисовывается.

    по мне так webgl чистый нужен когда нужно что то сложное/быстрое.
    Ответ написан
    Комментировать
  • Упал сервер dell power edge 740, что делать?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    мои советы:
    - найди у меня телегу в профиле (тут все равно читай!)
    - найди длинные выходные если сервер работает (тогда точно райд 1) иначе пофиг .. гаси
    - ни каких пылесосов!!! только баллоны со сжатым воздухом, сейчас доже в продвинутых канцелярских магазинах. размером со средний дезодорант, там ни че страшного. или широкая мягкая кисть... удалить пыль короче... можно и полезно рэспиратор .. ну или маску хотя бы
    - аккуратно отжать/прижать все разъемы hdd (если не взлетит после.. сдох подлец.. кстати.. второй тоже может после старт/стопа.. если возраст)
    - если взлетит, заранее заготовить софтинку "@raid recover" (ru-board по вопросам), натравить.. и молиться.. ну или там по убеждениям ))
    - у производителя контроллера (материнка?) так же может быть софт типа raid-rebuild, алгоритм тот же
    ... !!! внимание !!! если рейд "1" (зеркало), возможно достаточно заменить дохлый диск на новый
    - в идеале сходной геометрии, но обязательно не меньшего объма, ребьюилд может произойти автоматически, зависит от умности контроллера
    - совет покупать пару (а то и 3, на запаску.. а можно hotspar... или зеркало на 3х) идентичных диска.. после восстановления рейд 1, имеет смысл заменить старый, на точный близнец нового, и вытерпеть повторный реюбьюд (главное что бы первый полность. завершился!!!)

    ps !! на дисках не экономить !!! продавцу руки выкрутить, что бы подобрал самые надежные из доступгых... не забыть убедится в совместимости по интерфейсу
    Ответ написан
    Комментировать
  • Как диагностировать диски M.2?

    Смотри на "Data units written" и сравнивай с заявленным показателем TBW.
    Я бы на 50% TBW уже покупал запасной, а на 80% перегонял бы данные со старого на новый.
    Ещё можно посмотреть на "Available Spare" - когда их становится мало, тоже уже следует хорошо задуматься о замене.
    Ответ написан
    Комментировать
  • Как мне решить проблему когда сервер вместо json отдает html?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Прежде всего надо понять, что защиту от парсинга пишут не дураки. И так же то, что все защиты разные. Как только в интернете появляется гарантировано работающий рецепт обхода какой-то за защиты, ей сразу меняют. Поэтому в каждом отдельном случае приходится искать способ обхода защиты самостоятельно и быть умнее её разработчиков. В каких-то случаях, вы боретесь с подростком-фралансером, пишущим код для маленького бизнеса со скромным бюджетом, тогда вам придётся столкнуться с чем-то типа проверки заголовков, csrf и тому подобными простыми штуками. В каком-то, вы боретесь с корпорацией, в которой целый отдел отличных опытных разработчиков пишет поведенческий фильтр и валидацию на клиентской стороне. В последнем случае вам придётся применять Selenium, ежемесячно платить за прокси и так же ежемесячно править довольно сложный алгоритм, притворяющий группой людей.
    Ответ написан
    Комментировать
  • Разработка продающего сайта для начинающих. Как не заплатить деньги зря?

    @Refguser
    Решения для бизнеса: корп.сайты, ИМ, боты и пр.
    Главный вопрос - не сделать ИМ, а привести в него клиентов. Т.е. это работа с целевой аудиторией (ЦА) и уникальным торговым предложением (УТП). Если нет понимания как это сделать, то всё остальное не имеет смысла. И на это, прежде всего нужно потратиться.

    А площадка для продаж - дело второе. Не последнее, но не первое - второе. Будь то маркетплейс, соцсети или собственный ИМ.

    Но в данном случае есть важный нюанс - работающий оффлайн-бизнесс. Т.е. если рассматривать ИМ не как первичный инструмент продажи, а как дополнительное удобство для покупателей, то можно начать с какого-нибудь конструктора типа тильды. Но надо помнить, что переезд с конструкторов обойдется дороже, чем делать сразу нормальный ИМ.
    Ида, сильно заморачиваться на "дизайн" - не нужно. Главное требование - покупателю должно быть удобно и понятно совершать покупки.
    Ответ написан
    4 комментария
  • Какую видеокарту выбрать для машинного обучения, майнинга, гейминга и 3д-моделирования?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    656e4ba8471be903012641.jpeg
    Не этого я ожидал в час ночи, не этого...
    Какую угодно берите, ваш комп не потянет высокополигональные модели в 3D Max (например траву).

    Для начала надо было оперативки в 4 раза больше (а лучше в 8). Поэтому она на "высокополигональных" делах будет моментально кончаться и система станет жутко свопить. Но своп файл будет еле ворочаться - на пути быстрой работы вы поставили "диагональный" SSD со скоростью в 10 раз меньше, чем надо (но прекрасной, года так для 2012-го).

    Дальше в подобных программах вывозит процессор. Но свой вы взяли без "К", с бюджетным тепловым пакетом, это будет его душить сразу и на взлете. Зато материнская плата хорошая, на чипсете "Z", правда применить свои умения она на процессоре без "К" не сможет. Было бы лучше даже взять проц с "K" но материнку подешевле...
    А еще я знаю, какой у вас ИБП, но понятия не имею, какой кулер на процессоре, видимо ИБП влияет больше...

    Половину вашего SSD займет система с программами, еще 60-180 гигов файл подкачки. Под игры вам останется - примерно на половину одной современной игры. А куда вы будете качать текстуры и модельки из библиотек (а там нужны терабайты) - я так вообще не представляю.
    Ответ написан
    1 комментарий
  • Как правильно сформулировать документ на основании которого пишется частичное техническое задание, если основание было устным?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    Хреновое ТЗ - результат ХЗ.
    Заказчик пишет ТЗ исходя из того, чтоб иметь возможность для маневров и не оплачивать доп. работы исполнителя, при появлении подводных камней.
    Исполнитель хочет ТЗ, которое максимально опишет конкретику и спорные ситуации (если честный), или напротив - нечто расплывчатое, чтоб любая галиматья потом ему соответствовала.
    Вы заказчик или исполнитель?
    А оформляется ТЗ как часть конкурсной документации на тендере, или как приложение к договору. Как вы его назовете - уже дело десятое.
    Ответ написан
    Комментировать