Pull to refresh
2
0
Send message

В WinAPI порядка 16M хендлов на процесс, а не 64k. Есть ограничения 10k на виндовые хендлы, но 10k окон - это что-то странное.

может уже пора терраформировать Венеру? учёные должны создать водросли которые смогут выжить на 40 км и перерабатывать СО2 в кислород

в возможность последовательной вставки более миллиона записей в секунду в одну таблицу MS SQL верится с трудом

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

Неплохо бы в начале статьи расшифровывать, что значат аббревиатуры типа BDD.

она была прорывом не только в плане геймдизайна

Да ладно. Игры от ID Software никогда не были сильны в геймдизайне. DukeNukem 3d или Half-Life гораздо продвинутей их аналогов от IDS.

Вот такая модель импользуется в нашем софте с начала 200x, И я не думаю что это была какая-то супер идея на тот момент.

Идея CQRS возникла в 2010 году, когда Грег Янг

Этой идее десятки лет и Янг к ней никакого отношения не имеет.

48 Мп основная камера с четырёхпиксельным сенсором и f/1,78, на 65% лучше, чем у предыдущего Pro

Да, Эпл умеет в маркетинг. Звучит круто, а по факту 12MP камера с f/13 (35mm эквивалент).

В 2024 году в беспилотном режиме корабль полетит на МКС

ТАСС. Первые сбросы из космоса в рамках испытания парашютной системы для перспективного российского космического корабля "Орел" запланированы Роскосмосом на 2024 год.

Без парашюта полетит?

Осталось совсем чуть-чуть. Как вы думаете успеют?

Так фишка именно во влажности. И если для Таиланда +-10 градусов - это проблема, то для Колородо в США колебания в 30 грудусов за сутки нередкое явление. Но в Колорадо и влажность 20-50% процентов. Поэтому народ запросто в шортах и шлепках может ходить до -5 градусов в снегу.

При упоминании тестов Jepsen, неплохо все же предостережения из этих тестов указывать:

Like Spanner, Cockroach’s correctness depends on the strength of its clocks. If any node drifts beyond the clock-offset threshold (by default, 250 ms), all guarantees are basically out the window. Unlike Spanner, CockroachDB users are likely deploying on commodity hardware or the cloud, without GPS and atomic clocks for reference. Their clocks may drift due to VM, IO, or GC pauses, NTP misconfiguration or faults, network congestion, and so on, especially in certain cloud environments.

Добавлю к ожиданиям: тысячи или десятки тысяч хранимок и вьюх.

Свою роль сыграла и ненадёжность, продемонстрированная двумя катастрофами.

Если посмотреть на статистику, то шатл вполне надежный. Две аварии, на 135 пусков - это хорошая статистика. Причем в случае Челленджера, проблема была в ускорителе, а не в самом шатле.

Почему не летает? Тот же Boeing X-37 уже 10 лет летает в автоматическом режиме. Да, X-37 в 4 раза меньше Бурана, но концепция та же.

Т.е. они построили реальную лодку, плавали на ней, приводили испытания со стрельбой - это бестоловые видео?

. Ну реально, какое отношение имеет "засыпание потока" к "блокировке исполнения"? Да никакого. Поток может и без засыпания бесконечной долбёжкой заблокировать другие потоки навсегда даже при lock-free.

Тем не менее - именно такое общепринятое толкование Non-blocking algorithm. Если в вашей статье подразумевается какое-то другое, дайте пожалуйста ссылку на определение.

Число циклов для инкремента счётчика в лучшем случае (если применяется балансировка) пропорционально числу ядер.

Это зависит, конечно, от архитектуры, но на популярных если ядро владеет кеш линией (exclusive) инкрементирование счетчика бесплатно. Для других ядер будет пенальти.

А что толку от доставленного сообщения, если битва уже произошла? Слишком поздно доставленное сообщение может быть уже никому не интересно.

Т.е. вы считаете, что нет приниципаильной разницы между синхроным и ассинхронным вызовом, надежной и ненадежной доставкой?

Это другая, не самая удачная классификация. 

Вы считаете, что классификация описанная в статье и книге "The Art of Multiprocessor Programming" неудачная? Приведите, пожалуйста, аргументы почему.

Собственно в примерах кода вы там можете у локфри наблюдать бесконечный цикл, что эффективно является блокировкой

Нет, blocking, lock-free, wait-free это про гарантии прогресса алгортима, а не время обработки. В случае блокировок если процесс/поток захвативший лок зависнет, никакой другой поток не сможет продолжить, в отличие от lock-free который выполнится за конечное число шагов.

Атомарное изменение счётчика приводит ко блокировке на уровне процессорных ядер на сколько я понимаю. Ведь это read-modify-write операция.

И тем не менее - это wait-free операция, которая завершится за определенное количество циклов.

Доставка может и гарантирована, но вот время этой доставки варьируется. А задержавшееся слишком на долго сообщение малоотличимо от недоставленного.

Это как? Я вычитал значение переменной и оно как-то не доставилось или слишком долго? Операция чтения из памяти может потребовать разное количество циклов для завершения, но когда оно закончится значение будет гарантировано доставлено.

Очень странно что вам странно читать про задачу генералов

Да, потому что задача про византийских генералов - это задача в которой присутствует ненадежный канал связи который не доставляет(или подменяет) сообщения. В процессорах такой проблемы нет.

Тут стоит обратить внимание на путаницу в терминах. Lock-free алгоритмы раньше назывались неблокирующими. Теперь же они считаются лишь частным случаем неблокирующих. Но на самом деле это всё же механизм хоть и оптимистичной, но блокировки.

Здесь нет никакой путанницы, есть вполне четкие определения для блокирующих и lock-free алгоритмов. Можно например почитать здесь: Lock-Free and Wait-Free, definition and examples.

Wait-free алгоритмы межпоточного взаимодействия основаны на той же идее — отсутствие конкуренции за общий ресурс.

В общем случае - это не так. Например атомарное изменение счетчтка - это wait free операция над общим ресурсом.

ИМХО, это была неудачная идея смешивать в кучу concurrency и распределенные системы. Несмотря на то, что многопроцессорную систему можно рассматривать как распределенную, здесь есть принципиальное отличие: соединение между узлами надежное и доставка сообщений по шине гарантирована. С точки зрения CPU нет никакой неопределенности, каждый узел находится в состоянии определенном протоколом (MESI, MOESI, etc.) и система всегда находится в состоянии консенсуса. Поэтому читать про проблему византийский генералов сразу после секции о многопоточности весьма странно.

Information

Rating
Does not participate
Registered
Activity