Здравствуйте, Ikemefula, Вы писали:
I>Там, где кофе лежалый, на оборудование денег нет. Очевидно же — раз лежит и выдыхается, значит трафик близок к нулю.
Интересно, зачем я это вообще должен читать? ))
I>Оно и ясно — за углом варят свежий.
"Свежий" — это от недели до двух месяцев.
Твои фантазии не соответствуют временным рамкам "свежеобжаренности" кофе.
V>>Современные автоматы дают вполне обычный эспрессо, который не уступает оному из автомата в специализированной кофейне. I>Не подтверждается.
Подтверждается.
I>Автоматы остались только в местах где кофе неосновной источник, навроде тех же заправок и тд.
Тебе, невежде, давали уже ссылку — ведущие производители выпускают для бизнеса только суперавтоматы.
А они от автоматов в аэропортах унутре фактически не отличаются.
I>Раньше их было на каждом углу.
Да мне всё-равно на ваши реалии.
V>>И да, не современных автоматов у нас, например, и не бывает, бо живут эти автоматы не слишком долго. I>Вот тебе и объяснение, почему они уступили место эспрессо-машине с выделеным баристой.
Не уступили.
I>Автомат не выдерживает большой трафик.
Оно же относится к оборудованию кофеен.
I>Забивается, засоряется, закисает, трудно чистить, помол трудно настроить.
Верно, поэтому у нас б/у уже исчезло.
А твои наблюдения — они верны только для случая б/у.
I>В итоге кофе уже через пару месяцев превращается в шмурдяк.
Или, если ремонт/облуживание относительно недороги, как по вашим реалиям, можно покупать б/у, или эксплуатировать имеющееся сколь угодно долго.
I>В норме в кофейнях помол подстраивается регулярно. С автоматом это невозможный номер — это просто некому делать.
V>>Зная тебя, ты обычно не можешь "проехать" ту инфу, которой вот только овладел в процессе обсуждения. V>>И теперь снова и снова пытаешься показать, что ты это "и так знал". I>Похоже, ты про себя пишешь. Я кофе пью уже лет двадцать
У меня соседи пользуются компьютером дольше.
А программистами или хотя бы админами не стали. ))
I>>>Можешь изыскать в Москве, скажем, такой https://theweldercatherine.ru/ V>>Контакты: V>>Фактический адрес: 111141 г. Москва, ул. Плеханова дом 17, помещение П V>>Опять что-то попутал? I>Похоже, такой специалист как ты, не в курсе про Сварщицу Екатерину
И даже упав мордой в лужу, будешь рыпаться.
Ню-ню.
V>>В кофейнях быстрого обслуживания, про которые ты говоришь, никакой доожарки или разогреве при клиенте никогда не будет. V>>Это ты сейчас из пальца объяснения насасываешь. I>Это же ты про разогрев вещаешь, забыл?
Я стебусь над твоими попытками "объяснить" когда и зачем это делают.
I>>>Сейчас так делают для тех самых зерен, которые месяцами валяются на полках. V>>Бгг, дообжарка делает их еще хуже. I>Не дообжарка, а разогрев. Это способ оживить дохло е зерно.
Делает хуже, не спорь.
Зерна разогревают из-за химии — в них образуются новые соединения, слегка меняется вкус.
Банально выходит чаcть CO2, которые остаются при классической средней прожарке.
Кому-то это нравится, в общем, на любителя.
У лежалого зерна и так приличная часть CO2 выходит до варки, т.е. смысла нет.
V>>Значит используют кофе мелкого помола, других вариантов нет. I>Именно — турка это самый мелкий помол.
Бгг...
Мелкий помол с тем же успехом можно заваривать во френч-прессе или в обычном ковшичке на газовой плите дома на рассеивателе.
Турку изобрели для отделения осадка и ни для ничего более.
С мелким помолом механика турки не работает, RIP.
РТФМ, а то своим невежеством поднадоел уже. ))
V>>Это классическая "точка быстрого питания", значит пьешь кофе с гущей. )) I>В турке это норма, гуща прямо в чашке.
ЧТД.
Ты не в курсе даже азов.
Основным критерием выбора кофе, после его сорта, считается степень помола. Она бывает трех основных видов:
— крупный или грубый (идеально подходит для кофеварок (например, фильтрационной или экспресс-машины), а так же для грамотной варки кофе в турке в том случае, если хочется избавить напиток от любого осадка);
— средний (считается универсальным, подходит для самых разных способов приготовления, в том числе для заваривания кофе в турке);
— мелкий или тонкий (прекрасно подходит для того, чтобы сварить ароматный кофе в турке на плите, а также для гейзерной кофеварки);
— сверхтонкий (наиболее редко используемый, подходит для приготовления особенного кофе по-турецки или для кофеварок, в которых напиток готовится путем прохождения пара через измельченные зерна, напоминающие муку).
Форма турки в виде обратного конуса, а так же неглубокое её закапываение, плюс отсутствие открытого огня (т.к. турка стоит на песке), плюс хорошая теплопроводность латуни/меди, огранизуют внутри турки конвекцию остывающей от боковых стенок турки воды вниз, не давая осадку подниматься.
Об этой особенности турки сегодня написано на каждом углу, т.е. давно уже секрет Полишинеля, но ты продолжаешь сверкать невежеством. ))
А если помол мелкий, то турка превращается в "просто маленький ковшичек", и тогда закапывание турки в песок превращается просто в антураж, в наёживание — это ничего не даёт от слова совсем. И медь не нужна, а даже вредна, бо меднаяпосуда вредна сама по себе. Тогда уж лучше варить кофе мелкого помола в нержавейке.
I>Когда помол мелкий, оседает хорошо, и не подымается.
Здравствуйте, Sinclair, Вы писали:
V>>Учитывая, что виды блокировок и их гранулярность находятся в строгой иерархии, я немного не понимаю суть твоих вопросов. V>>Что ты хочешь узнать? S>Узнать — ничего. Вот этот вот ликбез, про гранулярность блокировок, который вы мне рассказываете, я преподаю.
Да не можешь ты никому преподавать про гранулярность блокировок в отсутствии владения дисциплиной СМО, бо блокировки — это исключительно про очереди к ресурсам.
S>Вы, кстати, забыли про Update Lock и про Intent блокировки.
ЧТД.
Тебе уже озвучили всё, что требуется — "иерархия блокировок".
Эта терминология покрывает любые их имена cобственные.
Т.е., блокировки не обязательно называть RO, RW или еще как, типа intent, достаточно их пронумеровать, организовав их в иерархию.
Глубина иерархии зависит от глубины иерархии модели блокируемых ресурсов.
Т.е. любые идентификаторы, присвоенные "типам" блокировок — это для несовершенного человеческого моска, для лучшего ассоциативного сопоставления уровней блокировки оперируемой модели.
S>Вопрос — в том, как обеспечить быстродействие в реальных задачах, особенно когда планировщик заранее не знает, сколько строк попадёт под предикат.
Известно как — за счёт неких допущений несогласованности. ))
S>Превентивный захват блокировок уровня таблицы/индекса сильно снизит concurrency, особенно на многопроцессорных машинах.
И это тоже одна из причин, почему я перидически рассуждаю о слиянии СУБД и сервера приложений.
Потому что у сервера приложений есть информация о прикладном характере хранимых данных, а у СУБД — нет.
V>>Так ты ACID не обеспечишь, т.к. после отпускания строки ранее не попавшие под условие строки, т.е. уже отброшенные, могут начать подходить под условие в результате конкурентных изменений. Такое поведение, повторюсь, навязывается специальными хинтами. S>Такое поведение соответствует уровню блокировки read committed.
Очередное ЧТД, мистер учитель. ))
Это не уровень блокировок, это уровень изоляции.
Различные уровни изоляции могут обеспечиваться одними и теми же по иерархии блокировками, скажем, за счёт механизма версионности (расширение идеи COW).
Да, не все уровни изоляции обеспечивают ACID, только selialized-доступ.
Т.е., даже не беря во внимание непонимание тобой отличия сущностей механизма блокировок от обеспечиваемых уровней изоляции, твой ответ всё-равно невпопад.
S>В данном контексте это непринципиально.
В "данном контексте" тебя опять занесло, а мне опять стало скучно.
Сорри, дальше не читаю...
Re[83]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, vdimas, Вы писали: V>ЧТД. V>Тебе уже озвучили всё, что требуется — "иерархия блокировок". V>Эта терминология покрывает любые их имена cобственные.
Терминология не очень важна. V>Т.е., блокировки не обязательно называть RO, RW или еще как, типа intent, достаточно их пронумеровать, организовав их в иерархию.
Нет, недостаточно. V>Глубина иерархии зависит от глубины иерархии модели блокируемых ресурсов.
Брр. Я правильно понял, что вы путаете совместимость блокировок и их гранулярность?
Ну, то есть, скажем, какой порядок относительно друг друга в вашей "нумерации" имеют, например, exclusive table lock и shared row lock?
V>Известно как — за счёт неких допущений несогласованности. ))
Это не ответ. Предположим, мы хотим гарантировать serializable. Какие блокировки будем захватывать при выполнении запроса?
Одиночный exclusive database lock не предлагать.
V>И это тоже одна из причин, почему я перидически рассуждаю о слиянии СУБД и сервера приложений. V>Потому что у сервера приложений есть информация о прикладном характере хранимых данных, а у СУБД — нет.
Хотелось бы больше конкретики — какую именно информацию сервер приложений может применить для выбора стратегии захвата/отпускания блокировок?
V>Очередное ЧТД, мистер учитель. )) V>Это не уровень блокировок, это уровень изоляции.
Да, конечно, уровень изоляции.
V>Различные уровни изоляции могут обеспечиваться одними и теми же по иерархии блокировками, скажем, за счёт механизма версионности (расширение идеи COW).
Это всё абстрактные рассуждения в вакууме. Когда дело дойдёт до исполнения запроса, придётся принимать какие-то конкретные решения. Тот же механизм версионности сделает обращения на чтение весьма недешёвыми.
V>Да, не все уровни изоляции обеспечивают ACID, только selialized-доступ.
Это сильно зависит от набора действий, выполняемых в транзакции. Иначе бы все приложения, работающие с Read Committed, текли как решето.
V>Т.е., даже не беря во внимание непонимание тобой отличия сущностей механизма блокировок от обеспечиваемых уровней изоляции, твой ответ всё-равно невпопад.
Вас понесло не в ту степь.
Я не спрашивал, какими блокировками или версионностью обеспечить какой-нибудь Repeatable Read.
Вопрос — гораздо более прагматический: как должен быть устроен код захвата/отпускания блокировок так, чтобы он не замедлял выполнение запроса на порядок (без учёта времени ожидания на блокировке).
Вот вы обмолвились про одну interlocked операцию — и мне как раз непонятно, каким это волшебным образом можно ей обойтись, не ограничивая параллелизм операций.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, vdimas, Вы писали:
I>>Оно и ясно — за углом варят свежий. V>"Свежий" — это от недели до двух месяцев. V>Твои фантазии не соответствуют временным рамкам "свежеобжаренности" кофе.
Цитирую себя "такой кофе обжарен самое худшее, это в прошлом месяце"
V>Тебе, невежде, давали уже ссылку — ведущие производители выпускают для бизнеса только суперавтоматы. V>А они от автоматов в аэропортах унутре фактически не отличаются.
Цитирую некоего vdimas "живут эти автоматы не слишком долго"
На кой ляд кофейне такой автомат, если долго не живет? А вот на заправке самое то.
I>>Раньше их было на каждом углу. V>Да мне всё-равно на ваши реалии.
Похоже, тебе трудно соглашаться с фактами
V>>>И да, не современных автоматов у нас, например, и не бывает, бо живут эти автоматы не слишком долго. I>>Вот тебе и объяснение, почему они уступили место эспрессо-машине с выделеным баристой.
V>Не уступили.
Цитирую тебя же:
"живут эти автоматы не слишком долго"
Так и представляю, что кофеня берет дорогущий автомат, который "живет не слишком долго"
I>>Автомат не выдерживает большой трафик. V>Оно же относится к оборудованию кофеен.
Эспрессомашина в отличие от автомата, устроена крайне примитивно, кофе подаётся в рожке, а не внутри, как в автомате.
В норме, когда разбираешь автомат, там чуть не плесень, окаменелости и тд.
Из за того, что автомат в норме никто не чистит должным образом, кофе превращается в шмурдяк месяца за два при обычном трафике.
I>>Забивается, засоряется, закисает, трудно чистить, помол трудно настроить. V>Верно, поэтому у нас б/у уже исчезло. V>А твои наблюдения — они верны только для случая б/у.
б/у это когда ты привез на контору новый автомат и приготовил всего одну чашку. До этого автомат новый, после — уже б/у.
Раз у вас нет б/у, стало быть у вас вообще нет ничего
Ну, как вариант, ты покупаешь новенький автомат на каждую чашку кофе
I>>В итоге кофе уже через пару месяцев превращается в шмурдяк. V>Или, если ремонт/облуживание относительно недороги, как по вашим реалиям, можно покупать б/у, или эксплуатировать имеющееся сколь угодно долго.
Покупают в основном новое. Я же тебе показывал фото и ссылки на производителя. Похоже, ты нечитатель.
I>>В норме в кофейнях помол подстраивается регулярно. С автоматом это невозможный номер — это просто некому делать. V>
Именно. На заправке-вокзале-итд на такие мелочи никто не отвлекается, выручка с автомата несравнима с осноным бизнесом, потому всем плевать.
А в кофейне хороший кофе это причина хорошего трафика.
I>>Не дообжарка, а разогрев. Это способ оживить дохло е зерно.
V>Делает хуже, не спорь.
Лучше не станет, а вот остатки вкуса так можно выдушить.
Читай себя же:
"Зерна разогревают из-за химии — в них образуются новые соединения, слегка меняется вкус." @vdimas
Это и есть "оживить дохлое зерно".
V>Бгг... V>Мелкий помол с тем же успехом можно заваривать во френч-прессе или в обычном ковшичке на газовой плите дома на рассеивателе.
Похоже, ты ни разу не заваривал мелкий помол во френч-прессе. Мелкий помол проходит через сетку пресса.
То есть, хочешь убрать осадок полностью — вот здесь нужен крупный помол.
V>Турку изобрели для отделения осадка и ни для ничего более.
Турку изобрели для варки прежде всего. Ты думал кофе в казанах варили, как плов?
А вот для варки "по-турецки" нужен самый мелкий — читай себя же ниже
V>С мелким помолом механика турки не работает, RIP.
Наоборот Читай свою же цитату:
V>
V>Основным критерием выбора кофе, после его сорта, считается степень помола. Она бывает трех основных видов:
V>- крупный или грубый (идеально подходит для кофеварок (например, фильтрационной или экспресс-машины), а так же для грамотной варки кофе в турке в том случае, если хочется избавить напиток от любого осадка);
V>- средний (считается универсальным, подходит для самых разных способов приготовления, в том числе для заваривания кофе в турке);
V>- мелкий или тонкий (прекрасно подходит для того, чтобы сварить ароматный кофе в турке на плите, а также для гейзерной кофеварки);
V>- сверхтонкий (наиболее редко используемый, подходит для приготовления особенного кофе по-турецки или для кофеварок, в которых напиток готовится путем прохождения пара через измельченные зерна, напоминающие муку).
Похоже, ты не в курсе, что такое "кофе по-турецки" Собственно, ты показал своей цитатой, что в турке можно заваривать любой помол.
Кофе по-турецки, тот самый, эт самый мелкий помол.
Браво — ты снова опроверг сам себя
V>Об этой особенности турки сегодня написано на каждом углу, т.е. давно уже секрет Полишинеля, но ты продолжаешь сверкать невежеством. ))
Вероятно, ты дал не ту цитату Что вероятнее — процитировал не глядя.
Re[69]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, Ikemefula, Вы писали:
I>>>Оно и ясно — за углом варят свежий. V>>"Свежий" — это от недели до двух месяцев. V>>Твои фантазии не соответствуют временным рамкам "свежеобжаренности" кофе. I>Цитирую себя "такой кофе обжарен самое худшее, это в прошлом месяце"
Не, это уже намного позже.
И это ты уже зацепился и не можешь съехать с вопроса, слабак.
Тебя когда в детстве обижали, наверно часами плакал безутешно.
V>>Тебе, невежде, давали уже ссылку — ведущие производители выпускают для бизнеса только суперавтоматы. V>>А они от автоматов в аэропортах унутре фактически не отличаются. I>Цитирую некоего vdimas "живут эти автоматы не слишком долго"
По меркам морального устаревания.
I>На кой ляд кофейне такой автомат, если долго не живет? А вот на заправке самое то.
Начались фантазии.
I>>>Раньше их было на каждом углу. V>>Да мне всё-равно на ваши реалии. I>Похоже, тебе трудно соглашаться с фактами
Да мне все равно на ваши реалии.
Твои забавные рассуждения о заметном кол-ве любителей экзотики живо напомнили мне те времена, когда мы тоже пробовали стотыщ сортов и способов приготовления кофе.
Минуло это время.
I>В норме, когда разбираешь автомат, там чуть не плесень, окаменелости и тд. I>Из за того, что автомат в норме никто не чистит должным образом, кофе превращается в шмурдяк месяца за два при обычном трафике.
И почему я должен читать эти фантазии?
I>Покупают в основном новое. Я же тебе показывал фото и ссылки на производителя. Похоже, ты нечитатель.
Тот производитель не выпускает обычные рожковые автоматы.
V>>Бгг... V>>Мелкий помол с тем же успехом можно заваривать во френч-прессе или в обычном ковшичке на газовой плите дома на рассеивателе. I>Похоже, ты ни разу не заваривал мелкий помол во френч-прессе. Мелкий помол проходит через сетку пресса.
Бгг...
Специально для кофемашин изобретён тонкий эспрессо помол: чуть мельче обычного тонкого, но крупнее сверхтонкого.
Эспрессо — это, считай, механизация френч-пресса.
Тонкий помол нужно вовремя прекращать заваривать, т.е. сливать кофе с гущи.
Иначе будет тот самый вкус "по-восточному".
I>То есть, хочешь убрать осадок полностью — вот здесь нужен крупный помол.
Достаточно от тонкого.
V>>Турку изобрели для отделения осадка и ни для ничего более. I>Турку изобрели для варки прежде всего. Ты думал кофе в казанах варили, как плов?
Кофе варили и варят сегодня в высоких "чайниках" с узким носиком.
И до сих пор в арабских странах варят так же.
Просто в Турции из-за национальных особенностей врожденного "предпринимательства" (бгг) примерно 200 лет назад освоили рецепты для уличных "разносчиков" кофе, которые за раз готовят одну порцию.
I>А вот для варки "по-турецки" нужен самый мелкий — читай себя же ниже
Но в самой Турции такого названия нет, уупс?
Еропейцы придумали и то постоянно путают.
Бывает помол в пыль для любителей, и бывает помол для турки.
Помол в пыль обычно делают заранее на текущий день.
Обычный помол делают при тебе.
V>>С мелким помолом механика турки не работает, RIP. I>Наоборот Читай свою же цитату:
V>>
V>>Основным критерием выбора кофе, после его сорта, считается степень помола. Она бывает трех основных видов:
V>>- крупный или грубый (идеально подходит для кофеварок (например, фильтрационной или экспресс-машины), а так же для грамотной варки кофе в турке в том случае, если хочется избавить напиток от любого осадка);
V>>- средний (считается универсальным, подходит для самых разных способов приготовления, в том числе для заваривания кофе в турке);
V>>- мелкий или тонкий (прекрасно подходит для того, чтобы сварить ароматный кофе в турке на плите, а также для гейзерной кофеварки);
V>>- сверхтонкий (наиболее редко используемый, подходит для приготовления особенного кофе по-турецки или для кофеварок, в которых напиток готовится путем прохождения пара через измельченные зерна, напоминающие муку).
Здесь та же путаница по-турецки, по-восточному, арабский и т.д.
Это способ европейцев не называть вещи своими именами.
Сколько раз про "кофе по-восточному" в интернете прочитаешь, столько раз разные рецепты увидишь.
"По-турецки" — нет такого рецепта даже у европейцев, это молодое поколение писак так пишет, судя по-всему.
Есть "по-восточному".
При этом автор верно говорит, что средний подходит для варки в турке, но про мелкий помол говорит, что это кофе "по-турецки".
Не обратил сам внимания разве? ))
Я не стал исправлять автора только потому что это цитата.
I>Похоже, ты не в курсе, что такое "кофе по-турецки"
Я хорошо вкурсе, что такое кофе "по-турецки".
А так же в курсе про то, что в самом Стамбуле за последние лет 15 всё европеизировалось, в т.ч. кофейни.
Т.е. рекомендуемые туристам кофейни Стамбула в туристических буклетах и на сайтах — это новоделы сугубо для туристов, не было этих заведений ранее.
Да и уже давно Гранд-базар не тот (видать, стоимость аренды резко выросла, это теперь просто дорогой рынок, а не место для торгашества), Лайлели вообще вымерло.
Выпить "кофе по-турецки" сегодня можно в не туристических районах, на каком-нить рынке для местных на окраине города.
(рекомендую посетить один из таких рынков хотя бы даже не ради кофе, а потому что это интересно само по себе)
Но я еще помню времена, когда кофе и чай готовили на выдвижных точках вполне аутентично прямо под Гранд-Базаром, и мололи зерна ручными мельничками для заваривания в турке.
Какой там в опу "помол в пыль" на ручной мельничке?
I>Собственно, ты показал своей цитатой, что в турке можно заваривать любой помол.
Делать можно что угодно, ес-но.
Но ты же, блин, хотя бы немного образованный человек.
Должен владеть хотя бы азами физики и химии и понимать, что для мелкого помола турка банально не нужна.
Это просто часть антуража получается.
Спектакль.
I>Кофе по-турецки, тот самый, эт самый мелкий помол.
Это новомодный сленг, нет в природе никакого "кофе по-турецкому".
Это часть наёживания.
И не любят турки сплошь смолотый в пыль кофе, как пишут на многих сайтах — тупо брехня, продолжение развода.
Хотя, на многих других пишут обратное, что в турке не нужен мелкий помол, что верно.
В общем, интернет — помойка.
I>Браво — ты снова опроверг сам себя
Не я, а люди с сеном в голове, типа тебя и современных "популяризаторов" кофе.
Меня, как раз, никаким антуражем не проведёшь. ))
V>>Об этой особенности турки сегодня написано на каждом углу, т.е. давно уже секрет Полишинеля, но ты продолжаешь сверкать невежеством. )) I>Вероятно, ты дал не ту цитату Что вероятнее — процитировал не глядя.
Цитата та, ты смотри не на "кофе по-турецки", а на "заваривание в турке".
Это заодно показывает, кстате, насколько "умна" инфа в инете, бгг...
Что два плюс два сложить уже не могут.
Здравствуйте, Sinclair, Вы писали:
V>>Тебе уже озвучили всё, что требуется — "иерархия блокировок". V>>Эта терминология покрывает любые их имена cобственные. S>Терминология не очень важна. V>>Т.е., блокировки не обязательно называть RO, RW или еще как, типа intent, достаточно их пронумеровать, организовав их в иерархию. S>Нет, недостаточно.
Садись два.
Достаточно.
V>>Глубина иерархии зависит от глубины иерархии модели блокируемых ресурсов. S>Брр. Я правильно понял, что вы путаете совместимость блокировок и их гранулярность?
Чего-чего?
Нет такого понятия "совместимость блокировок" в матаппатаре блокировок (ограничений доступа к ресурсам) — это уже артефакт уровней изоляции, к собсно блокировкам не относится.
Продолжаешь сверкать невежеством.
Это как путать число и физическую величину, этим числом выражаемую.
Ладно, опять скучно.
Особенно когда сверкают невежеством, но ругают оппонента в твоей дурацкой манере.
Здравствуйте, vdimas, Вы писали:
V>Нет такого понятия "совместимость блокировок" в матаппатаре блокировок (ограничений доступа к ресурсам) — это уже артефакт уровней изоляции, к собсно блокировкам не относится.
Да ладно! А как тогда описываются в матаппарате блокировок отличия между shared и exclusive lock (RO и RW блокировки в вашей терминологии).
V>Продолжаешь сверкать невежеством.
Ну, ок. Блесните знанием. Пролейте свет истины на тёмные массы. Хотя бы в моём лице.
Давайте уберём "уровни изоляции", оставив только serializable.
Я правильно понимаю, что после этого нам не потребуется различать shared и exclusive блокировки?
Если неправильно, то поясните, что вы имели в виду.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[37]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, Ikemefula, Вы писали:
I>А мы не твою веру обсуждаем. Я тебе про факты — вокруг автоматы массово сменились точками с нормальными эспрессо машинами.
Я, короче, понял, в чём дело. Коллега просто смотрит не со стороны потребления, а со стороны B2B.
Знаете самую большую сеть кофеен в РФ? Газпромнефть.
Да, кофе у них говно. Но они его продают не кофеманам, а дальнобоям, которые его пьют, чтобы за рулём не упасть.
А по количеству точек они на порядок обходят какой-нибудь Coffee Like.
Вы вот этих вот говноматов просто не замечаете. У нас такие сейчас в каждом супермаркете стоят, включая магазин "у дома" на 45 квадратных метров. Я их тоже не замечаю — не входят в круг моих интересов.
А коллега vdimas в упор не замечает вот этих вот кофеен с многорожковыми кофе-машинами. И искренне считает, что автоматы их полностью вытеснили.
Ну, как вытеснили — например, у нас в университете кофе можно купить в 10 местах. В 7 из них стоят многорожковые Lavazza (цена стакана капучино +- 120р), в 2х (университетские столовка и кафешка) — говноматы (цена стакана капучино — 60р), в одном — говномат самообслуживания ака "приложите карту" (цена чашечки капучино — 45р).
То есть говноматы заняли 30% рынка. Но если посчитать весь район, включая автозаправки и магазины, то кофейни окажутся в меньшинстве.
Кстати — качество кофе из рассмотренной выше выборки, соответствует цене. Автоматов, которые бы варили по нажатию на кнопку такой кофе, который пить было бы приятно, я не встречал. Ни за 45р, ни за 60. Наверное, их всех увезли в Севастополь. Ну, если не считать домашних автоматов — мой, к примеру, варит кофе не сильно хуже, чем в средней кофейне.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[38]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, Sinclair, Вы писали:
S>А коллега vdimas в упор не замечает вот этих вот кофеен с многорожковыми кофе-машинами. И искренне считает, что автоматы их полностью вытеснили.
Он идет дальше и на полном серьезе утверждает, что это говноматы варят самый лучший эспрессо хотя тут же заявляет что кофе толком и не пьет.
С такой аргументацией трудно вообще понять его точку зрения.
S>То есть говноматы заняли 30% рынка. Но если посчитать весь район, включая автозаправки и магазины, то кофейни окажутся в меньшинстве.
Похоже, что так. Про эти вещи я както и забыл.
S>А если рассматривать именно кофейни — ну, вот, например, как здесь: https://marketmedia.ru/media-content/top-10-rossiyskikh-setey-kofeen/, то проникновение автоматов будет равно 0%. Ни в одной из этих сетей автоматы не используют.
Я про то и говорю. Сильно думаю, что какой нибудь посредственный McCafe выдает кофе намного лучше, чем говномат на заправке.
S>Кстати — качество кофе из рассмотренной выше выборки, соответствует цене. Автоматов, которые бы варили по нажатию на кнопку такой кофе, который пить было бы приятно, я не встречал. Ни за 45р, ни за 60. Наверное, их всех увезли в Севастополь.
Я видел дважды в офисах пары ит контор до пандемии. Их чистили регулярно, тщательно и засыпали дорогой, качественный кофе свежей обжарки.
С трудом представляю себе, что на заправке или вокзале будут присматривать хотя бы в половину от этого.
Здравствуйте, Sinclair, Вы писали:
V>>Нет такого понятия "совместимость блокировок" в матаппатаре блокировок (ограничений доступа к ресурсам) — это уже артефакт уровней изоляции, к собсно блокировкам не относится. S>Да ладно!
Ну да.
А ты вообще хорошо себя чувствуешь — почитал какое-то руководство для пользователей к какой-то СУБД и с этими "знаниями" наперевес побежал спорить.
Попутал с форумом домохозяек? ))
S>А как тогда описываются в матаппарате блокировок отличия между shared и exclusive lock
Нет таких отличий.
В базе есть механизм семафора, у того счётчик.
Остальные примитивы сигнализации производные.
S>RO и RW блокировки в вашей терминологии.
Отношение RO и RW блокировок примерно равны отношению блокировок строк и страницы целиком, где эти строки располагаются.
(разве что у каждой строки есть своя блокировка, зависит от уровня изоляции).
Заявки, блокирующие строки, эквиваленты читателям, а блокирующие всю страницу — писателям.
Изначально значение семафора ресурса "достаточно большое" (не имеет смысла ставить выше уровня конкурентности многопроцессорной системы).
При появлении писателя семафору ресурса присвается значение счётчика "минус кол-во читателей плюс один".
Когда последний читатель освободит ресурс, писатель сможет его захватить.
Одно но — на многопроцессорной машине в режиме вытесняющей многозадачности наших "очередей" нет, есть очереди уровня ОС, поэтому возможно голодание писателей, т.к. даже при ограничении доступа к ресурсу счётчиком 1, его могут захватить конкурентные потоки-читатели.
Проблема голодания писателей решается либо системой управляемых приложением очередей, либо доп.механизмом на семафоре со счётчиком 1 — на т.н. турникете.
Т.е., система прикладных очередей предпочтительней в случае сложных иерархических блокировок, реализуется, например, через асинхронщину или "зеленые потоки", когда мы сами управляем нагрузкой, бо лишние примитивы сигнализации всегда дороги, да еще потенциально вносят помехи в системах с вытесняющей многозадачностью — например, поток читателя должен пройти через турникет, т.е. дёрнуть примитив сигнализации дважды, но поток может быть вытеснен после первой фазы прохода через турникет и тогда этот поток затормозит всех — и читателей и писателей.
В общем, при организации сложных иерархий доступа к ресурсам рулит кооперативная многозадачность.
В этом смысле планировщики ОС тупые. ))
Не потому что алгоритмы планировщика тупые, а потому что эти алгоритмы не обладают информацией о происходящем на прикладном уровне.
В системе с явными очередями читатели поступают из многих очередей (столько очередей, какова конкурентность системы), а писатели поступают из одной.
При появлении первого писателя все вновь поступающие читатели ставятся в очередь писателей (либо эти очереди просто "перекрываются").
При появлении из той очереди первого читателя они опять раскидываются по очередям читателей до появления первого писателя (либо очереди читателей опять открываются) и т.д.по кругу.
Простой и элегантный алгоритм, рекомендую.
Этим же алгоритмом точно так же элегантно обслужишь отношение блокировок уровня строки и страницы.
S>Давайте уберём "уровни изоляции", оставив только serializable. S>Я правильно понимаю, что после этого нам не потребуется различать shared и exclusive блокировки?
Ты задаёшь новые вопросы не дожидаясь ответа на старые.
Я думаю, что ты и сам довольно просто сможешь ответить на такие вопросы, расписав происходящее (любой сценарий) на "ресурсах", очередях к ним и охраняющих ресурсы семафорах с разным значением счётчика.
Если значение счётчика семафора более 1, то ресурс могут "шарить" более одной заявки.
А вообще, насколько принципиально отличаются семафоры со счётчиком=1 от семафора со счётчиком=x?
ИМХО, отличие там на прикладном уровне.
Иногда может иметь значение отличие 2 от 3. ))
Есть еще сам прекрасный механизм очередей — очередь выдаёт новую заявку после того, как прежняя освободит ресурс(ы).
И да, небольшой хинт — при попытках расписывать происходящее на семафорах не имеет смысла думать семафорами уровня ОС, где очереди к семафорам "даны сверху", а сами ОС реализуют выталкивающую многозадачность.
Представь, что у тебя есть просто модель счётчика, управлять которым ты можешь атомарно.
Если не охота возиться с зелеными потоками, то в моделирующей программе это можно сделать, например, через цикл CAS:
Здравствуйте, vdimas, Вы писали: V>А ты вообще хорошо себя чувствуешь — почитал какое-то руководство для пользователей к какой-то СУБД и с этими "знаниями" наперевес побежал спорить.
V>Нет таких отличий. V>В базе есть механизм семафора, у того счётчик. V>Остальные примитивы сигнализации производные.
Очень интересно.
S>>RO и RW блокировки в вашей терминологии. V>Отношение RO и RW блокировок примерно равны отношению блокировок строк и страницы целиком, где эти строки располагаются. V>(разве что у каждой строки есть своя блокировка, зависит от уровня изоляции). V>Заявки, блокирующие строки, эквиваленты читателям, а блокирующие всю страницу — писателям.
Очень интересно. А read-заявки на строки эквивалентны write-заявкам на строки? У нас получилось четыре вида блокировок, кто из них кому эквивалентен?
V>Изначально значение семафора ресурса "достаточно большое" (не имеет смысла ставить выше уровня конкурентности многопроцессорной системы).
V>При появлении писателя семафору ресурса присвается значение счётчика "минус кол-во читателей плюс один".
Ага, то есть вы имеете в виду не "настоящий" семафор, а что-то самописаное, так?
Тогда было бы неплохо привести код. V>Когда последний читатель освободит ресурс, писатель сможет его захватить.
Хм. Непонятно вот что: как мы делаем замену значения семафора при "появлении писателя"?
Как будет выглядеть освобождение семафора писателем? Классический release делает простой инкремент — то есть захватить блокировку сможет не более 1 читателя/писателя.
Если мы сделаем опять инкремент на "большое значение", а в очереди несколько писателей, то может произойти совместный захват.
V>Одно но — на многопроцессорной машине в режиме вытесняющей многозадачности наших "очередей" нет, есть очереди уровня ОС, поэтому возможно голодание писателей, т.к. даже при ограничении доступа к ресурсу счётчиком 1, его могут захватить конкурентные потоки-читатели. V>Решается это либо системой управляемых приложением очередей, либо доп.механизмом на семафоре со счётчиком 1 — на т.н. турникете.
Отлично. То есть у нас уже как минимум самописанный семафор (поверх какого-то механизма синхронизации ОС) +турникет. Ну, либо очередь, управляемая приложением, что вообще множит всю идею единственного семафора на ноль.
Давайте добавим в смесь update блокировки. Как вы реализуете их на одном семафоре, вместе с shared и exclusive?
V>Т.е., система прикладных очередей предпочтительней в случае сложных иерархических блокировок, реализцется, например, через асинхронщину или "зеленые потоки", когда мы сами управляем нагрузкой, бо лишние примитивы сигнализации всегда дороги, да еще потенциально вносят помехи в системах с вытесняющей многозадачностью — например, поток читателя должен пройти через турникет, т.е. дёрнуть примитив сигнализации дважды, но поток может быть вытеснен после первой фазы прохода через турникет и тогда этот поток затормозит всех — и читателей и писателей.
Вижу, вы начинаете понимать сложности реализации разделения ресурсов в СУБД.
V>В общем, при организации сложных иерархий доступа к ресурсам рулит кооперативная многозадачность. V>В этом смысле планировщики ОС тупые. )) V>Не потому что алгоритмы планировщика тупые, а потому что эти алгоритмы не обладают информацией о происходящем на прикладном уровне.
Ок, давайте рассмотрим организацию сложных иерархий доступа к ресурсам.
V>В системе с явными очередями читатели поступают из многих очередей (столько очередей, какова конкурентность системы), а писатели поступают из одной. V>При появлении первого писателя все вновь поступающие читатели ставятся в очередь писателей (либо эти очереди просто "перекрываются"). V>При появлении из той очереди первого читателя они опять раскидываются по очередям читателей до появления первого писателя (либо очереди читателей опять открываются) и т.д.по кругу. V>Простой и элегантный алгоритм, рекомендую.
Непонятно описываете. V>Этим же алгоритмом точно так же элегантно обслужишь отношение блокировок уровня строки и страницы.
Это как это так? Я тупой, не понимаю, как устроен примитивы "захватить shared row lock", "отпустить shared row lock", "захватить exclusive row lock", "отпустить exclusive row lock" в такой системе.
Что такое "очереди перекрываются"? Как добавить в этот простой и элегантный алгоритм update lock?
И тем более я не понимаю, как одним и тем же алгоритмом мы будем обрабатывать ещё и shared page lock и exclusive page lock. Сколько у нас будет очередей?
V>И да, небольшой хинт — при попытках расписывать происходящее на семафорах не имеет смысла думать семафорами уровня ОС, где очереди к семафорам "даны сверху", а сами ОС реализуют выталкивающую многозадачность.
Да, семафорами уровня ОС это просто невозможно сделать. Ну, например, просто потому, что нет метода "заменить текущее значение семафора на -x" V>Представь, что у тебя есть просто модель счётчика, управлять которым ты можешь атомарно. V>Если не охота возиться с зелеными потоками, то в моделирующей программе это можно сделать, например, через цикл CAS: V>
Здравствуйте, Sinclair, Вы писали:
V>>В базе есть механизм семафора, у того счётчик. V>>Остальные примитивы сигнализации производные. S>Очень интересно.
Классика.
В основе всего атомарный счётчик.
В общем случае — атомарно изменяемая переменная.
V>>Заявки, блокирующие строки, эквиваленты читателям, а блокирующие всю страницу — писателям. S>Очень интересно. А read-заявки на строки эквивалентны write-заявкам на строки?
Write-заявки на строки страницы эквиваленты read-заявкам на страницу с т.з. write-заявок на страницу.
Ключевое здесь — уровни параллелизма операций скачут от много к одному и обратно.
S>У нас получилось четыре вида блокировок, кто из них кому эквивалентен?
Да хоть десять.
Я тебе показал отношение одной пары из иерархий блокировок.
Построй сколь угодно глубокую иерархию, согласно прикладной модели.
V>>При появлении писателя семафору ресурса присвается значение счётчика "минус кол-во читателей плюс один". S>Ага, то есть вы имеете в виду не "настоящий" семафор, а что-то самописаное, так?
Это и есть настоящий.
Тебя же не смущает, что семафор инициализируется произвольным значением своего счётчика?
А так же что в АПИ семафора можно изменять счётчик произвольно?
Или тебе требуется семафор непременно уровня ОС?
Проблемы с таким семафором я упомянул.
Для примера, критическая секция в 90% случаев не дёргает и даже не создаёт семафор уровня ОС, а обходится interlocked-счётчиком, облуживаемым юзер-спейсным кодом.
Рекурсивные критические секции или мьютексы оперируют еще идентификатором потока.
S>Тогда было бы неплохо привести код.
В конце привёл.
V>>Когда последний читатель освободит ресурс, писатель сможет его захватить. S>Хм. Непонятно вот что: как мы делаем замену значения семафора при "появлении писателя"?
В конце код.
S>Как будет выглядеть освобождение семафора писателем?
В зависимости от состояния очереди.
Если взята схема, где происходит управление очередями, то в этот момент очередь к ресурсу всего одна.
Если схема более "в лоб", то будет прибавление к семафору значения уровня параллелизма.
S>Классический release делает простой инкремент — то есть захватить блокировку сможет не более 1 читателя/писателя.
В Win API:
BOOL ReleaseSemaphore(
HANDLE hSemaphore,
LONG lReleaseCount,
LPLONG lpPreviousCount
);
S>Если мы сделаем опять инкремент на "большое значение", а в очереди несколько писателей, то может произойти совместный захват.
Очередь писателей одна.
Если эту очередь мы не обслуживаем явно, т.е. разводим хаос в потоках, тогда придётся сериализовать их через еще один семафор.
Собсно, "классическая" реализация RO-RW блокировки так и делается, но у неё есть серьёзные бока, о которых я упоминал.
V>>Одно но — на многопроцессорной машине в режиме вытесняющей многозадачности наших "очередей" нет, есть очереди уровня ОС, поэтому возможно голодание писателей, т.к. даже при ограничении доступа к ресурсу счётчиком 1, его могут захватить конкурентные потоки-читатели. V>>Решается это либо системой управляемых приложением очередей, либо доп.механизмом на семафоре со счётчиком 1 — на т.н. турникете. S>Отлично.
Не, "турникет" из классической реализации — зло.
S>То есть у нас уже как минимум самописанный семафор (поверх какого-то механизма синхронизации ОС) +турникет.
"Самописный" семафор имеет смысл в самописной же системе очередей заявок (задач).
Иначе будет хаос в потоках.
Собсно, даже task-like фреймворки, типа дотнетного, изкаробки не спасают, бо task stealing алгоритм такой же тупой.
Т.е. не владеет прикладной информацией.
Но дотнет даёт возможность написать собственный шедуллер тасков, и тогда можно будет наводить порядок согласно прикладной семантики.
S>Ну, либо очередь, управляемая приложением, что вообще множит всю идею единственного семафора на ноль.
Офигенные рассуждения. ))
Ты опять меня удивляешь...
Я ХЗ уже как возвращать тебя снова и снова на грешную землю.
Мне не нравится твой тон, твои предположения, твои рассуждения в целом, бо они попахивают запретом на мозговую деятельность как таковую.
В двух словах — целью разработки обычно является решение поставленных задач.
Если одной из задач является разруливание сложных/глубоких иерархий блокировок, то целевой разрабатываемый код и должен решать именно эту задачу (если эта задача уже не решена "фреймвороком", библиотеками и т.д., но тогда бы и задача, собсно, не стояла).
Т.е., забавно следует из твоего тона, что задачу управления доступом к ресурсам ты решил выделить в некий особый класс задач, которые разработчик не имеет права решать, не имеет даже права рассуждать о способах решения таких задач. ))
С другой стороны, это где-то перекликается с тем, как ты рассуждаешь о малоинтересных мне баззвордах, даже имеешь наглость пытаться подловить оппонента в невладении некоторыми баззвордами, при том что отказываешь себе и окружающим в понимании механизмов, лежащих за этими баззвордами.
ИМХО, разработчика разумного должно интересовать понимание механизмов, а не их имена собственные, розданные частными фирмами для подсистем своих поделий.
Тем более, что там всегда более-менее примитивно, не сложнее даваемого на 3-м курсе профильных специальностей.
S>Давайте добавим в смесь update блокировки. Как вы реализуете их на одном семафоре, вместе с shared и exclusive?
Откуда ты взял "на одном"?
Абстракция семафора — это примитив самого нижнего уровня, самый простой кирпичик.
V>>Т.е., система прикладных очередей предпочтительней в случае сложных иерархических блокировок, реализцется, например, через асинхронщину или "зеленые потоки", когда мы сами управляем нагрузкой, бо лишние примитивы сигнализации всегда дороги, да еще потенциально вносят помехи в системах с вытесняющей многозадачностью — например, поток читателя должен пройти через турникет, т.е. дёрнуть примитив сигнализации дважды, но поток может быть вытеснен после первой фазы прохода через турникет и тогда этот поток затормозит всех — и читателей и писателей. S>Вижу, вы начинаете понимать сложности реализации разделения ресурсов в СУБД.
И как мне отвечать на эту очередную твою тупизну?
Вот где ты увидел сложности?
Если тебе это сложно — смени род деятельности, какие проблемы?
Я тебе как ребенку расписал на пальцах аж пару решений простейшего алгоритма.
При этом не просто так указал на недостаток "классического" — как на факт голодания писателей, так и на ненадёжность классического решения проблемы голодания через турникет.
И вместо этого дал более простой и лишенный таких недостатков алгоритм.
Т.е. тебе уже всё разжевали, а ты проглотить не в состоянии, "сложности" у него.
Синклер, это уже зашквар, и ты мне в этой теме уже 3-й раз поднадоел.
Уже не для тебя пишу, а чтобы подобным тебе стало стыдно, за поверхностность, увлечение баззвордами и привычкой оперировать докой не глубже уровня "руководства пользователя".
V>>В общем, при организации сложных иерархий доступа к ресурсам рулит кооперативная многозадачность. V>>В этом смысле планировщики ОС тупые. )) V>>Не потому что алгоритмы планировщика тупые, а потому что эти алгоритмы не обладают информацией о происходящем на прикладном уровне. S>Ок, давайте рассмотрим организацию сложных иерархий доступа к ресурсам.
Уже всё давно рассмотрено.
Без явных управлений очередями заявок системы с глубокими иерархиями блокировок не живут, т.е. полагаться на то, что шедуллер ОС "сам вывезет" — глупо.
Не вывезет.
Поэтому, их так и не пишут, ес-но.
При том что расписать сколь угодно сложные сценарии на очередях и семафорах — как двумя пальцами об асфальт.
Так зачем жрать кактус, да еще принуждать к этому окружающих, рассуждая в духе "ааа, ну это самописные семафоры, нещитово"?
Сломанная какая-то логика.
Плюс сверкание невладением даже азами — ты ведь был не в курсе, как управляют заявками в сложных СМО, в своих эти рассуждениях про "самописные семафоры".
А как он может быть несамописный, когда порой привязан к строке, а строки не всегда влазят в оперативку, да и вообще кол-во системных хендлов заведомо ограничено? ))
Да и дороги они, эти системные хендлы.
V>>В системе с явными очередями читатели поступают из многих очередей (столько очередей, какова конкурентность системы), а писатели поступают из одной. V>>При появлении первого писателя все вновь поступающие читатели ставятся в очередь писателей (либо эти очереди просто "перекрываются"). V>>При появлении из той очереди первого читателя они опять раскидываются по очередям читателей до появления первого писателя (либо очереди читателей опять открываются) и т.д.по кругу. V>>Простой и элегантный алгоритм, рекомендую. S>Непонятно описываете.
Медитируй, там всё понятно.
V>>Этим же алгоритмом точно так же элегантно обслужишь отношение блокировок уровня строки и страницы. S>Это как это так? Я тупой, не понимаю, как устроен примитивы "захватить shared row lock", "отпустить shared row lock", "захватить exclusive row lock", "отпустить exclusive row lock" в такой системе.
Жаль.
S>Что такое "очереди перекрываются"?
Перестают обслуживаться.
S>Как добавить в этот простой и элегантный алгоритм update lock?
Пусть будет домашнее задание.
Я и так слишком подробно всё описал.
А твои вопросы вызваны тем, что ты еще не уделил этой простой схеме ни минуты.
Нарисуй очереди, ресурс, стрелки, писателей-читателей, протрассируй работу, и всё станет понятно.
Например, студентам понятно.
S>И тем более я не понимаю, как одним и тем же алгоритмом мы будем обрабатывать ещё и shared page lock и exclusive page lock.
Мда...
V>>И да, небольшой хинт — при попытках расписывать происходящее на семафорах не имеет смысла думать семафорами уровня ОС, где очереди к семафорам "даны сверху", а сами ОС реализуют выталкивающую многозадачность. S>Да, семафорами уровня ОС это просто невозможно сделать.
Разумеется, возможно.
Но система будет далека от оптимальной.
По причинам, которые я уже упоминал в прошлом и этом сообщении.
S>Ну, например, просто потому, что нет метода "заменить текущее значение семафора на -x"
Есть, соотв. сигнатуру ВинАПИ дал выше.
Защити код обращения к семафору критической секцией и это можно будет промоделировать на семафорах уровня ОС.
Еще небольшой хинт — т.к. обращение к АПИ ОС относительно дорогое само по себе, даже не беря во внимание потенциальные проблемы из-за хаотичного (с т.з. пркладного кода) шедуллинга, есть классический вариант "облегченного семафора", что-то типа такого:
В кишках дотнета, да и в других проектах аналоги сверкают регулярно.
V>>Представь, что у тебя есть просто модель счётчика, управлять которым ты можешь атомарно. V>>Если не охота возиться с зелеными потоками, то в моделирующей программе это можно сделать, например, через цикл CAS: V>>
S>Ну, вот пока что в голове полная схема не выстраивается. Ни с семафором, ни с очередями.
Уверен, ты пока не пробовал.
Попробовал бы — не писал бы того, что писал.
Пока что ты демонстрируешь неприкрытый эдакий протест против того, чтобы кто-то вообще эти вопросы кишками наружу выворачивал.
Бо иначе как тебе в следующий раз говорить с придыханием о своей любимой эзотерике, доступной лишь посвящённым?
Это ж пол-жизни, считай, коту под хвост, бо король, как обычно, оказался голым. ))
Здравствуйте, vdimas, Вы писали:
V>>>Твои фантазии не соответствуют временным рамкам "свежеобжаренности" кофе. I>>Цитирую себя "такой кофе обжарен самое худшее, это в прошлом месяце"
V>Не, это уже намного позже.
Тут стоит вспомнить предысторию, от 25го августа.
Вот это дичь твоя реакция на "свежеобжареный кофе":
В кафе при тебе зерна не "обжаривают" — слегка разогревают.
Это, скорее, часть антуража.
Обжаренным по технологии зёрнам не требуется повторная обжарка или разогрев.
Более того, при повторном "разогреве" зёрна теряют часть аромата.
Это что-то типа размена аромата из чашки на аромат в заведении. ))
То есть, про свежеобжареный кофе ты узнал не ранее 25 августа сего года.
I>>Цитирую некоего vdimas "живут эти автоматы не слишком долго" V>По меркам морального устаревания.
Они тупо дохнут от трафика. Автоматы ставят там, где основной доход не от кофе, а потому ими никто не занимается.
А в кофейне ты вспотеешь чистить эту штуковину. Очередь не будет ждать, пока ты прочистишь все трубочки для молока, гриндер и всё остальное. А при большом трафике автомат в норме встаёт на час-два. его надо или прочистить самому, или вызывать обслугу.
I>>Похоже, тебе трудно соглашаться с фактами V>Да мне все равно на ваши реалии.
Цитирую некоего vdimas:
Во всех перечисленных тобой заведениях будет ассортимент кофе из автоматов.
Как видишь, тебе не просто всё равно, ты лучше меня знаешь, что же в тех заведениях, куда я хожу.
Потом ты поменял показания, а именно — начал утверждать что в тех заведениях уже не автоматы, а эспрессо-машины, но БУ.
То есть, снова настолько всё равно, что лучше меня знаешь что же вижу.
V>Твои забавные рассуждения о заметном кол-ве любителей экзотики живо напомнили мне те времена,
Разговор про турку начался с того, что ты спутал её с эспрессо. Я то пишу в основном про эспрессо, а это никакая не экзотика.
I>>В норме, когда разбираешь автомат, там чуть не плесень, окаменелости и тд. I>>Из за того, что автомат в норме никто не чистит должным образом, кофе превращается в шмурдяк месяца за два при обычном трафике. V>И почему я должен читать эти фантазии?
А ты и не читаешь даже те цитаты, которые сам же тащишь сюда.
I>>Покупают в основном новое. Я же тебе показывал фото и ссылки на производителя. Похоже, ты нечитатель. V>Тот производитель не выпускает обычные рожковые автоматы.
Идея ясна?
V>Тонкий помол нужно вовремя прекращать заваривать, т.е. сливать кофе с гущи.
Это с любым помолом. Чем дольше завариваешь, тем больше нежелательных веществ попадает в воду, например, кофеин который даёт ту самую горечь.
I>>А вот для варки "по-турецки" нужен самый мелкий — читай себя же ниже V>Но в самой Турции такого названия нет, уупс?
Это не сильно важно, как в Турции называют тот или иной способ заваривания.
В турку в норме засыпают мелкий помол, мельче чем для эспрессо.
А что бы не было "горечи до абсурда", до кипения не доводят, снимают, когда корка подымется ровно один раз.
Вот и всё — с мелким помолом больше и не нужно.
V>Помол в пыль обычно делают заранее на текущий день. V>Обычный помол делают при тебе.
Любой помол делают прямо при тебе — кофемолка с регулировкой помола это норма в кофейнях.
Помол "заранее" делают только там, где нет внятной кофемолки.
V>>>
V>>>- мелкий или тонкий (прекрасно подходит для того, чтобы сварить ароматный кофе в турке на плите, а также для гейзерной кофеварки);
V>>>- сверхтонкий (наиболее редко используемый, подходит для приготовления особенного кофе по-турецки или для кофеварок, в которых напиток готовится путем прохождения пара через измельченные зерна, напоминающие муку).
V>Здесь та же путаница по-турецки, по-восточному, арабский и т.д. V>Это способ европейцев не называть вещи своими именами.
Важно, что ты свою же ссылку не читал, а теперь у тебя европейцы виноваты.
V>Сколько раз про "кофе по-восточному" в интернете прочитаешь, столько раз разные рецепты увидишь. V>"По-турецки" — нет такого рецепта даже у европейцев, это молодое поколение писак так пишет, судя по-всему. V>Есть "по-восточному".
Это ровно то же, просто в разных регионах разные названия. У нас встречается и то, и другое. И варят ровно так, как я тебе и сказал.
V>При этом автор верно говорит, что средний подходит для варки в турке, но про мелкий помол говорит, что это кофе "по-турецки".
Автор фактически утверждает, что в турке можно варить что угодно. Никто не запрещает, абы тебе самому было вкусно.
V>Должен владеть хотя бы азами физики и химии и понимать, что для мелкого помола турка банально не нужна.
Разные способы заваривания дают разный вкус. Это факт, который в своём уме крайне трудно игнорировать.
Вобщем, кофе стоит обсуждать не с тобой, а с теми кто его пьёт.
Здравствуйте, Ikemefula, Вы писали:
I>Тут стоит вспомнить предысторию, от 25го августа. I>Вот это дичь твоя реакция на "свежеобжареный кофе": I>
I>В кафе при тебе зерна не "обжаривают" — слегка разогревают.
I>Это, скорее, часть антуража.
I>Обжаренным по технологии зёрнам не требуется повторная обжарка или разогрев.
I>Более того, при повторном "разогреве" зёрна теряют часть аромата.
I>Это что-то типа размена аромата из чашки на аромат в заведении. ))
И где тут дичь?
I>То есть, про свежеобжареный кофе ты узнал не ранее 25 августа сего года.
Не, это я понял, что ты не в курсе временные сроки "свежеобжаренности".
Ну нельзя же всерьёз было утверждать, что где-то кофе залежалый, когда он до пару месяцев считается свежеобжаренным?
Ты не мог так рассуждать, даже помня твои предыдущие глупые залёты, бо там хоть какая-то сложность рассуждений требовалась, а тут явный бред.
I>>>Цитирую некоего vdimas "живут эти автоматы не слишком долго" V>>По меркам морального устаревания. I>Они тупо дохнут от трафика.
ОК.
И уезжают работать в твою любимую кофейню в виде б/у.
I>Автоматы ставят там, где основной доход не от кофе, а потому ими никто не занимается.
И опять показываешь, что не в теме.
Кофейная фирма арендует место для автомата у тех, для кого доход от аренды половины этого квадратного метра не основной.
Вообще странно, что ты сам не додумался до простого, даже если не знал до этого — никто в здравом уме не будет ставить у себя в магазине один автомат и возиться с его нетривиальным обслуживанием. ))
Это имеет экономический смысл только если счёт автоматам у соотв. конторы идёт на сотни-тысячи.
I>А в кофейне ты вспотеешь чистить эту штуковину. Очередь не будет ждать, пока ты прочистишь все трубочки для молока, гриндер и всё остальное. А при большом трафике автомат в норме встаёт на час-два. его надо или прочистить самому, или вызывать обслугу.
У нормальной кофейни или просто приличного ресторана всегда несколько таких автоматов.
Многорожковые обычно используются в аналогах "точек быстрого питания", т.е. в заведениях парой классов ниже, где люди в очереди к кассам стоят. ))
I>Цитирую некоего vdimas: I>
I>Во всех перечисленных тобой заведениях будет ассортимент кофе из автоматов.
I>Как видишь, тебе не просто всё равно, ты лучше меня знаешь, что же в тех заведениях, куда я хожу.
И ставлю 99.99% на то, что там подают эспрессо, бгг.
Т.е. уже автомат.
I>Потом ты поменял показания, а именно — начал утверждать что в тех заведениях уже не автоматы, а эспрессо-машины, но БУ.
Не потом, а сразу же тебе указали на то, что эспрессо-машины — это классические автоматы.
А нового поколения — это уже т.н. "суперавтоматы".
И вот это нытье про "смену показаний" — что ты хочешь себе выторговать?
Чтобы в следующий раз тебе журнальную статью на каждое твоё предложение писали?
Я вообще понятия не имел, что можно настолько плавать в предмете и ринуться пытаться обсуждать подробности.
Ты не знаешь про кофе аж ничего от слова совсем.
Это не критический недостаток, конечно... До тех пор, пока невежда не начнёт смешить тех, кто знает хотя бы азы.
I>То есть, снова настолько всё равно, что лучше меня знаешь что же вижу.
Да не видишь ты ни хрена.
Покупаешь батон хлеба и думаешь, что он прямо таким на дереве растёт.
Вот уровень твоих рассуждений.
"Я же кофе пью!!!" — аргумент!
Но хлеб-то ты тоже ешь. ))
V>>Твои забавные рассуждения о заметном кол-ве любителей экзотики живо напомнили мне те времена, I>Разговор про турку начался с того, что ты спутал её с эспрессо.
Чего? ))
I>Я то пишу в основном про эспрессо, а это никакая не экзотика.
Ты писал про какие-то там особые сорта.
Вот я и вспомнил времена, когда у нас в кофейнях на ура предлагалось чуть ли не мильон сортов, и народ, что характерно, заказывал всё подряд. ))
Прошли уже те времена, тю-тю.
Напробовались, всё понятно.
I>>>В норме, когда разбираешь автомат, там чуть не плесень, окаменелости и тд. I>>>Из за того, что автомат в норме никто не чистит должным образом, кофе превращается в шмурдяк месяца за два при обычном трафике. V>>И почему я должен читать эти фантазии? I>А ты и не читаешь даже те цитаты, которые сам же тащишь сюда.
Еще раз, почему я должен читать твои фантазии про то, как кто-то где-то плохо обслуживает ужасно дорогостоящий автомат?
Вот это — та самая дичь.
Вкусно хоть палец пососал? ))
I>>>Покупают в основном новое. Я же тебе показывал фото и ссылки на производителя. Похоже, ты нечитатель. V>>Тот производитель не выпускает обычные рожковые автоматы. I>Да успокойся с автоматами. Я тебе про оборудование, что в кофейнях.
Так это ты успокоиться не можешь.
Тебя подловили более десятка раз...
Похоже ты себе поставил цель — подловить меня хотя бы раз, бгг...
Поэтому проехать не можешь.
А тут подзалетел опять — кофейные автоматы эспрессо относятся к тому самому оборудованию в кофейнях.
Причём, к непременному оборудованию.
И на твоих фотах они тоже были.
I>Как забавно — ты начал отрицать уже по пятому кругу.
Пока что это ты отрицаешь очевидное — серьезные европейские производители уже НЕ производят рожковые профессиональные автоматы.
Ага, с эсрпессо-автоматами обделался, так хоть о мельничках поговорить.
Неинтересно.
I>Идея ясна?
Конечно ясна — попытка замылить свою чушь, которую ты нёс многие десятки постов, не удосужившись хотя бы заглянуть в актуальный ассортимент этого же производителя.
V>>Тонкий помол нужно вовремя прекращать заваривать, т.е. сливать кофе с гущи. I>Это с любым помолом.
Ой, опять продолжаешь залетать. ))
А ведь я тебе подсказал уже — это именно турки изобрели "турку" для заваривания одной порции, причём, по историческим меркам относительно недавно — как стали приторговывать им на разнос на улицах городов.
Но традиционно кофе в странах его произрастания заваривали сразу много, "на всю компанию" в высоких "чайниках", и оно, внезапно, отстаивается и настаивается.
Вопрос на сообразительность — а почему "чайник" для кофе непременно должен быть высокий?
I>Чем дольше завариваешь, тем больше нежелательных веществ попадает в воду, например, кофеин который даёт ту самую горечь.
На вкус и цвет.
Традиционно кофе пили чтобы взбодриться, а не "потому что я пижон-гурман".
Поэтому, настаивание работает в нужную сторону. ))
(мне даже лень считать твои залёты в одном этом посте)
I>>>А вот для варки "по-турецки" нужен самый мелкий — читай себя же ниже V>>Но в самой Турции такого названия нет, уупс? I>Это не сильно важно
Это важно.
Потому что через название кто-то, смотрю, пытается провести параллели, мол, раз называют "кофе по-турецки", значит в Турции пьют именно такое.
Дудки, "аргумент" не канает.
Это "по-арабски" в Турции и "по-восточному" у нас.
"По-турецки" не существует, это относительно новая фишка, еще лет 15 назад так не говорили.
А сейчас дошло до того, что турецкие новомодные кофейни отправляют своих бариста учиться в Италию.
Потому что новомодные кофейни рассчитаны на туристов, а турист с деньгой — европеец.
Вот такое забавное кино происходит.
В этом месте достаточно включить голову — если турок не умеет варить ваше "турецкое" кофе — может оно вовсе и не турецкое? ))
I>как в Турции называют тот или иной способ заваривания.
Ну, если кофе мелкого помола заваривают в якобы турке, которая по форме нифига не турка, а просто маленький ковшичек, удобный для глубокого закапывания — то конечно указание на то, что с традициями Турции это не имеет никакой связи — оно только раздражает, верно?
I>В турку в норме засыпают мелкий помол, мельче чем для эспрессо.
Для лохов напиток.
Классический мелкого помола делают не так.
I>А что бы не было "горечи до абсурда", до кипения не доводят, снимают, когда корка подымется ровно один раз.
Точно, тут уже корка.
Да развод это, смирись.
Для лохов.
I>Вот и всё — с мелким помолом больше и не нужно.
Мелкий помол в турке не нужен.
V>>Помол в пыль обычно делают заранее на текущий день. V>>Обычный помол делают при тебе. I>Любой помол делают прямо при тебе — кофемолка с регулировкой помола это норма в кофейнях.
Я тебе рассказываю, как оно было в Стамбуле еще в начале нулевых.
На каждом углу тележки — сладости, фрукты, рыбу при тебе готовят, чай/кофе и т.д. (чай тоже специфически готовят, кстате, и чай они тоже пьют в заметных кол-вах, в отличие от нас)
Не было возможности при тебе молоть кофе в пыль на ручной мельничке.
И 200 лет назад тоже не было.
Но на сегодня европеец уже испортил Турцию своими вкусами. ))
В последний раз я там был в 15-м году, зарёкся больше ездить — уже всё не то.
С тем же успехом можно уже никуда не ездить, "такого" и у нас полно.
I>Помол "заранее" делают только там, где нет внятной кофемолки.
Именно.
Т.е. традиционно всегда для мелкого помола в случае уличной торговли.
V>>>>
V>>>>- мелкий или тонкий (прекрасно подходит для того, чтобы сварить ароматный кофе в турке на плите, а также для гейзерной кофеварки);
V>>>>- сверхтонкий (наиболее редко используемый, подходит для приготовления особенного кофе по-турецки или для кофеварок, в которых напиток готовится путем прохождения пара через измельченные зерна, напоминающие муку).
V>>Здесь та же путаница по-турецки, по-восточному, арабский и т.д. V>>Это способ европейцев не называть вещи своими именами.
I>Важно, что ты свою же ссылку не читал, а теперь у тебя европейцы виноваты.
Я читал, и даже хорошо помню, что процитровал.
Например, ты убрал нужные строки, мелкий мошенник. ))
— крупный или грубый (идеально подходит для кофеварок (например, фильтрационной или экспресс-машины), а так же для грамотной варки кофе в турке в том случае, если хочется избавить напиток от любого осадка);
V>>Сколько раз про "кофе по-восточному" в интернете прочитаешь, столько раз разные рецепты увидишь. V>>"По-турецки" — нет такого рецепта даже у европейцев, это молодое поколение писак так пишет, судя по-всему. V>>Есть "по-восточному". I>Это ровно то же, просто в разных регионах разные названия.
Э, нет.
Это относительно новое, широко форсируемое название.
Но путаница в показаниях на разных сайтах выдаёт с головой недобросовестность тех, кто этим занимается.
Это, блин, тупое сугубо коммерчесское популяризирование.
I>У нас встречается и то, и другое. И варят ровно так, как я тебе и сказал.
Тогда ты еще не пробовал ни разу в жизни "кофе по-турецки".
Но ты можешь зайти в дорогой ресторан, не специализирующийся на "кофе быстрого питания" и заказать кофе в турке грубого помола без осадка.
V>>При этом автор верно говорит, что средний подходит для варки в турке, но про мелкий помол говорит, что это кофе "по-турецки". I>Автор фактически утверждает, что в турке можно варить что угодно.
Что равносильно тому, что турка не нужна, верно?
Но "грамотно" будет варить только грубый помол.
I>Никто не запрещает, абы тебе самому было вкусно.
Ну, если бы обсуждали только твои вкусы, не было бы этого спора, бо мне глубоко до фени, какой лично у тебя вкус.
Если тебя приучили пить кофе с песком — это твои сложности.
Я своё отношение к такому якобы "кофе" уже высказывал.
Кстате, вопрос про высокий "чайник" для мелкого помола в силе.
V>>Должен владеть хотя бы азами физики и химии и понимать, что для мелкого помола турка банально не нужна. I>Разные способы заваривания дают разный вкус.
А, ну ясно.
В твоей голове рекламщики дыру уже проделали. ))
I>Вобщем, кофе стоит обсуждать не с тобой, а с теми кто его пьёт.
Да не пил ты еще нормального кофе, не тешь себя иллюзиями.
Ты лопаешь что дают, как в советской столовой.
И вариантов у тебя нет.
Хотя бы потому что согласно твоим снимкам, в тех точках нет именно турок — там просто "ковшички", выдаваемые за оные.
Я же говорил уже:
Аборигенов на краю цивилизации тоже можно приучить к какому угодно "кофе", потом дать им сваренный по другому рецепту и он будет рвать на себе рубаху "это неправильный кофе!!!111".
Вот суть нашего спора.
Здравствуйте, vdimas, Вы писали:
I>>Тут стоит вспомнить предысторию, от 25го августа. I>>Вот это дичь твоя реакция на "свежеобжареный кофе": I>>
I>>В кафе при тебе зерна не "обжаривают" — слегка разогревают.
I>>Это, скорее, часть антуража.
I>>Обжаренным по технологии зёрнам не требуется повторная обжарка или разогрев.
I>>Более того, при повторном "разогреве" зёрна теряют часть аромата.
I>>Это что-то типа размена аромата из чашки на аромат в заведении. ))
V>И где тут дичь?
1 Прежде всего это поток телепатии. Я то вижу совсем другое.
2 Далее, ты описываешь вещи времён девяностых, как ушлые бармены оживляли дохлое зерно что бы слить выручку себе в карман.
I>>То есть, про свежеобжареный кофе ты узнал не ранее 25 августа сего года.
V>Не, это я понял, что ты не в курсе временные сроки "свежеобжаренности".
К твоему сведению я пью кофе каждый день примерно 20 лет. И хорошо знаком и с баристами, и обжарщиками, и с тем, как это всё устроено и работает.
Последние семь лет пью именно эспрессо, тот самый свежеобжареный моносорт.
I>>Они тупо дохнут от трафика. V>ОК. V>И уезжают работать в твою любимую кофейню в виде б/у.
Ты снова не понял — в кофейнях автоматов ровно ноль. Фотографии, инстаграм не помогают?
Пробуем еще раз
Вот кофейня Станция. Догадаешься, что это за аппарат? https://www.instagram.com/p/COtNEI5HRq6/
V>Вообще странно, что ты сам не додумался до простого, даже если не знал до этого — никто в здравом уме не будет ставить у себя в магазине один автомат и возиться с его нетривиальным обслуживанием. ))
Возится не магазин, а тот, кто установил автомат. Он же и взял метр в аренду у магазина.
V>Это имеет экономический смысл только если счёт автоматам у соотв. конторы идёт на сотни-тысячи.
Достаточно, что бы автомат просто сам себя окупал. Да, кофе вдвое-втрое дешевле чем в кофейне, но других издержек нет — платишь не аренду кофейни 10-50м, а аренду 1квм, все остальные издержки так же много меньше.
V>У нормальной кофейни или просто приличного ресторана всегда несколько таких автоматов.
Дадим слово Синклеру:
I>>Как видишь, тебе не просто всё равно, ты лучше меня знаешь, что же в тех заведениях, куда я хожу. V>И ставлю 99.99% на то, что там подают эспрессо, бгг. V>Т.е. уже автомат.
рожковая машина и автомат это две большие разницы. Автомат делает все шаги самостоятельно, ты только нажимаешь кнопку.
Рожковая эспрессомашина ничего такого не умеет. У неё две функции — включить пар/пролив. Всё, больше ничего не умеет.
Потому это никакой не автомат.
Смотри внимательно: https://www.instagram.com/p/COtNEI5HRq6/
Рядом стоит кофемолка, та самая, которой по твоим словам нету, бариста взбивает молоко вручную, паром от машины, и машина обычная рожковая, что очевидно.
V>Не потом, а сразу же тебе указали на то, что эспрессо-машины — это классические автоматы.
Очевидно, что нет. Рожковая эспрессо машина никогда автоматом не была Я тебе страшное скажу — большинство рожковых машин даже на полуавтомат не тянут.
I>>Разговор про турку начался с того, что ты спутал её с эспрессо. V>Чего? ))
До твоего пришествия в эту тему никто про турку не говорил. Раскрой глаза
V>Прошли уже те времена, тю-тю. V>Напробовались, всё понятно.
Прошли, потому что это был привозной кофе, читай — лежалый. А когда это свежеобжареный, всё играет очень ярко.
V>Еще раз, почему я должен читать твои фантазии про то, как кто-то где-то плохо обслуживает ужасно дорогостоящий автомат?
Не веришь мне, посмотри Синклера, он тоже здесь отметился.
V>А тут подзалетел опять — кофейные автоматы эспрессо относятся к тому самому оборудованию в кофейнях.
То есть, рожковую машину ты тоже автоматом назвал? Утюг у тебя тоже автомат?
Автомат должен по скромной оценке делать следующее
1. молоть
2. дозировать
3. тамперовать
4. включать-выключать пролив
5. чистить
V>Пока что это ты отрицаешь очевидное — серьезные европейские производители уже НЕ производят рожковые профессиональные автоматы.
Здравствуйте, vdimas, Вы писали:
V>Ключевое здесь — уровни параллелизма операций скачут от много к одному и обратно.
Ключевое здесь — одного счёткчика недостаточно для описания реалистичной иерархии блокировое
Поятно, что внутри всё строится на каких-то простых примитивах. Достаточно, грубо говоря, одного вида синхро-объектов, чтобы реализовать любую систему блокировок.
Но из этих синхрообъектов, списков, массивов, и атомарных переменных придётся строить довольно таки сложный велосипед.
V>Да хоть десять. V>Я тебе показал отношение одной пары из иерархий блокировок.
Ну вот опять. Вы берёте удобный вам сценарий и реализуете его. А потом делаете вид, что эта реализация покрывает всё множество прикладных сценариев.
А так не работает. V>Построй сколь угодно глубокую иерархию, согласно прикладной модели.
Из одного счётчика? Нет, не выйдет.
V>Это и есть настоящий. V>Тебя же не смущает, что семафор инициализируется произвольным значением своего счётчика?
Нет, не произвольным. Вы попробуйте сделать CreateSemaphore с отрицательным значением счётчика. Похоже, результат вас удивит.
V>А так же что в АПИ семафора можно изменять счётчик произвольно? V>Или тебе требуется семафор непременно уровня ОС? V>Проблемы с таким семафором я упомянул.
Проблемы с таким семафором начинаются с того, что в нём нет способа сделать счётчик отрицательным. Производительность и writers starvation — это уже так, вишенка на торте.
Поэтому приходится сделать вывод, что вы подразумеваете какой-то самописанный велосипед поверх системного семафора (или какого-то иного примитива синхронизации). V>В конце привёл.
(Вздыхает) Я ожидал, что вы покажете, как реализовать read/write lock на основе семафора. А не то, как сделать slim-версию семафора поверх семафора ОС.
В приведённом вами коде по-прежнему нет API, которые бы дали изменять счётчик произвольно. По-прежнему единичные acquire и release.
V>В конце код.
Ничего подобного в коде в конце нету.
S>>Как будет выглядеть освобождение семафора писателем?
V>В зависимости от состояния очереди. V>Если взята схема, где происходит управление очередями, то в этот момент очередь к ресурсу всего одна. V>Если схема более "в лоб", то будет прибавление к семафору значения уровня параллелизма.
И сразу же получаем фейл — если в очереди стоит более 1 писателя, то они тут же побегут исполняться, не дожидаясь друг друга.
V>В дотнете:
Ну ок, release вы сделали. А как вы собираетесь сделать аналог acquire() для писателей?
S>>Если мы сделаем опять инкремент на "большое значение", а в очереди несколько писателей, то может произойти совместный захват. V>Очередь писателей одна. V>Если эту очередь мы не обслуживаем явно, т.е. разводим хаос в потоках, тогда придётся сериализовать их через еще один семафор. V>Собсно, "классическая" реализация RO-RW блокировки так и делается, но у неё есть серьёзные бока, о которых я упоминал.
Ок, я понял. "Классическая" реализация RO-RW блокировки не взлетела, несмотря на обещания сделать реализацию, которая не отличает читателей и писателей.
Теперь речь идёт как минимум о двух очередях для двух видов блокировок. Причём очереди — несимметричные, ведут себя по-разному для читателей и писателей.
Что и требовалось доказать.
S>>То есть у нас уже как минимум самописанный семафор (поверх какого-то механизма синхронизации ОС) +турникет.
V>Т.е., забавно следует из твоего тона, что задачу управления доступом к ресурсам ты решил выделить в некий особый класс задач, которые разработчик не имеет права решать, не имеет даже права рассуждать о способах решения таких задач. ))
Ничего подобного. Я как раз хочу обсуждать решения таких задач.
А вы с потрясающим апломбом бросаетесь утверждениями, которые при внимательном рассмотрении оказываются фуфлом.
Напомню: начали вы с того, что захват произвольной блокировки в отсутствие contention — это "одна interlocked операция".
Мы ещё не добрались до мало-мальски рабочей реализации, а уже появились довольно-таки сложные штуки поверх системных абстракций.
V>С другой стороны, это где-то перекликается с тем, как ты рассуждаешь о малоинтересных мне баззвордах, даже имеешь наглость пытаться подловить оппонента в невладении некоторыми баззвордами, при том что отказываешь себе и окружающим в понимании механизмов, лежащих за этими баззвордами.
Да почему отказываю-то? Я как раз хочу раскопать механизмы, лежащие за этими баззвордами. А вы вместо того, чтобы заниматься этим, отвлекаетесь на терминологические споры и тривиальные реализации легковесных аналогов для системных примитивов.
V>ИМХО, разработчика разумного должно интересовать понимание механизмов, а не их имена собственные, розданные частными фирмами для подсистем своих поделий. V>Тем более, что там всегда более-менее примитивно, не сложнее даваемого на 3-м курсе профильных специальностей.
Отлично. Давайте разбираться с механизмами.
S>>Давайте добавим в смесь update блокировки. Как вы реализуете их на одном семафоре, вместе с shared и exclusive?
V>Откуда ты взял "на одном"?
Оттуда, что вы только что рассказывали, что виды и совместимость блокировок — это ненужная терминология, и что в вашей реализации есть ровно один вид блокировок. V>Абстракция семафора — это примитив самого нижнего уровня, самый простой кирпичик.
Отлично. Я так думаю, к концу следующей недели, если вы не сольётесь из темы, мы получим примерно ту же самую реализацию всех видов блокировок, что и у всех.
И окажется, что нет никакой "единой иерархии", а есть нормальная реализация схем совместимости блокировок, отражающая и их гранулярность, и их совместимость. Всё, как в учебнике.
И операция "прочесть строку" в коде исполнения запроса будет честно захватывать shared intent lock на страницу, а потом read lock на строку.
При этом каждый из этих захватов вовсе не будет сводиться к "одной interlocked операции", а будет перед CAS бегать по таблицам блокировок, да ещё и под критической секцией.
V>Если тебе это сложно — смени род деятельности, какие проблемы?
У меня всё в порядке с родом деятельности. Вы просто теряете нить рассуждений. Сложность здесь означает не "сложность в понимании", а "сложность в исполнении". Количество инструкций, которые нужно выполнить перед тем, как сработает заветный LEA [EAX+EDX*16].
V>Я тебе как ребенку расписал на пальцах аж пару решений простейшего алгоритма.
Ничего вы не расписали. V>И вместо этого дал более простой и лишенный таких недостатков алгоритм.
Где? Вот эти вот абстрактно-космические рассуждения про системы очередей — это типа "объяснения алгоритма"? Ну-ну. V>Уже не для тебя пишу, а чтобы подобным тебе стало стыдно, за поверхностность, увлечение баззвордами и привычкой оперировать докой не глубже уровня "руководства пользователя".
Как по мне, так всё ровно наоборот.
V>Поэтому, их так и не пишут, ес-но.
V>При том что расписать сколь угодно сложные сценарии на очередях и семафорах — как двумя пальцами об асфальт. V>Так зачем жрать кактус, да еще принуждать к этому окружающих, рассуждая в духе "ааа, ну это самописные семафоры, нещитово"?
Не нещитово, а кода в студии нет.
V>А как он может быть несамописный, когда порой привязан к строке, а строки не всегда влазят в оперативку, да и вообще кол-во системных хендлов заведомо ограничено? )) V>Да и дороги они, эти системные хендлы.
А то.
S>>Непонятно описываете.
V>Медитируй, там всё понятно.
Нет, плохо объясняете.
V>>>Этим же алгоритмом точно так же элегантно обслужишь отношение блокировок уровня строки и страницы. S>>Это как это так? Я тупой, не понимаю, как устроен примитивы "захватить shared row lock", "отпустить shared row lock", "захватить exclusive row lock", "отпустить exclusive row lock" в такой системе.
V>Жаль.
Ну, я уверен, что все, кто понял из ваших сумбурных объяснений детали механизма, поставят вам плюс. Пока что выглядит именно так, что вы сами не понимаете, как устроена система разделения ресурсов в настоящих СУБД. И дальше руководства пользователя, в котором написано "из соображений эффективности мы используем кооперативную многозадачность и ручной механизм очередей" не читали.
Иначе бы не писали чушь про "одну интерлокед операцию" и про то, что можно развести читателей с писателями на одном семафоре.
V>Перестают обслуживаться.
Что за магия прекращает обслуживания очередей?
V>Пусть будет домашнее задание. V>Я и так слишком подробно всё описал.
Ну-ну. Вы заметили закономерность: как только доходит до конкретики, вы незамедлительно обвиняете собседника в тупости и сливаетесь?
И про составление плана запроса из предкомпилированных кубиков — ровно так же: годы идут, а вы до сих пор не попробовали дотянуть свою идею до хотя бы псевдокода.
Неужто уже поняли, что не взлетит?
V>Нарисуй очереди, ресурс, стрелки, писателей-читателей, протрассируй работу, и всё станет понятно. V>Например, студентам понятно.
Отож. Просто когда мы будем рисовать ресурс, стрелки, писателей, читателей, и апдейтеров, окажется, что чудес не бывает, и невозможно свести все виды блокировок к одной плоской модели.
К примеру, добавление update lock заставит вас перепроектировать систему очередей и правил их обслуживания. Да, где-то внутри будут какие-то простые примитивы — или там ожидание на событиях, или CAS операции и кооперативщина. Но обойтись без понимания того, что такое intent lock, и чем update lock отличается от exclusive lock, не получится.
S>>Ну, например, просто потому, что нет метода "заменить текущее значение семафора на -x"
V>Есть, соотв. сигнатуру ВинАПИ дал выше.
Ох уж мне эти сказочники. Попробуйте сделать Release с отрицательным значением счётчика, а я на вас посмотрю.
V>Защити код обращения к семафору критической секцией и это можно будет промоделировать на семафорах уровня ОС.
Брр.
V>Еще небольшой хинт — т.к. обращение к АПИ ОС относительно дорогое само по себе, даже не беря во внимание потенциальные проблемы из-за хаотичного (с т.з. пркладного кода) шедуллинга, есть классический вариант "облегченного семафора", что-то типа такого: V>В кишках дотнета, да и в других проектах аналоги сверкают регулярно.
Да, это хорошо известная штука. Но она не решает функциональную проблему. В
V>Уверен, ты пока не пробовал. V>Попробовал бы — не писал бы того, что писал.
V>Пока что ты демонстрируешь неприкрытый эдакий протест против того, чтобы кто-то вообще эти вопросы кишками наружу выворачивал.
Я как раз настаиваю на выворачивании всех вопросов кишками наружу. А ваша позиция — какая-то странная. Вы одной рукой декларируете желание и умение разбираться в технических деталях, но как речь заходит именно о них — показываете какие-то отдельные фрагменты, которые не решают поставленную задачу, и сбегаете из топика.
Фу таким быть.
V>Бо иначе как тебе в следующий раз говорить с придыханием о своей любимой эзотерике, доступной лишь посвящённым?
Чего? Какой ещё эзотерике? Нет никакой эзотерики.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Ikemefula, Вы писали:
V>>Ага, с эсрпессо-автоматами обделался, так хоть о мельничках поговорить. I>А кто тебе мешает соседнюю страницу глянуть?
USA?
А почему бы тебе не узнать, как в Америке пьют кофе в 99% случаев?
Ты сильно удивишься.
Я лично охренел. ))
Стоит несколько довольно-таки больших чайников уже готового кофе разных марок на тёплой плите, не дающей чайникам остыть, ты себе из них наливаешь смесь сам в свой стакан и идёшь с этим стаканом на кассу, платишь за объём стакана, независимо от сортов налитого туда кофе.
Кофе они пьют чуть ли не полулитровыми пластиковыми (!!!) стаканами, примерно в которых кока-колу в макдональдсах раздают.
И почти всегда наливают туда же при самостоятельном приготовлении "смеси" молоко или сливки.
И как ты по ссылке отличишь профессиональные автоматы от домашних?
I>Ты извини, но дальше я скипнул. Цитата "серьезные европейские производители уже НЕ производят рожковые" выдаёт тебя с головой
Бгг, смотрим.
По твоим американским ссылкам однорожковые автоматы ровно те, которые на родном сайте производителя находятся в разделе "кофемашин для домашнего использования": https://www.nuovasimonelli.it/en/our-products/home/
Для твоей эрудиции небольшая деталь — в машинах домашнего сектора обычно отсутствует датчик уровня воды, что неприемлимо для профессионального использования.
Здравствуйте, Sinclair, Вы писали:
V>>Ключевое здесь — уровни параллелизма операций скачут от много к одному и обратно. S>Ключевое здесь — одного счёткчика недостаточно для описания реалистичной иерархии блокировое
Для работы той же условной переменной и связанной с ожиданием на ней очереди тоже одного счётчика недостаточно, поэтому, с твоим пониманием "ключевого" позволю себе не согласиться.
В работе алогитма RO-RW, действительно ключевое — это изменение режима работы целевого семафора.
Различные алгоритмы реализации RO-RW лишь по-разному обыгрывают механику этого изменения, но в сути происходящего они одинаковы.
S>Поятно, что внутри всё строится на каких-то простых примитивах. Достаточно, грубо говоря, одного вида синхро-объектов, чтобы реализовать любую систему блокировок.
Ну да, необходимо каким-либо образом обеспечить атомарность изменения переменных.
В однопроцессорных машинах достаточно было запретить прерывания на время изменения переменной, для обеспечения атомарности.
В многопроцессорных требуется, например, мьютекс.
Но если есть возможность атомарно изменять некую одну переменную без мьютекса, то лучше так, бо унутре семафоры, HEVENT-ы и системные мьютексы все-равно реализованы через CAS, т.е. нет смысла не применять CAS для реализации семафора, если для мьютекса уже нужен CAS. ))
S>Но из этих синхрообъектов, списков, массивов, и атомарных переменных придётся строить довольно таки сложный велосипед.
Или крайне простой велосипед — очередь.
Это зависит от способа представления вычислительных задач.
И вот это — тоже ключевое.
Если вычислительная задача представлена потоком, обслуживаемым ОС, то операционка сама обслуживает очереди этих потоков к ресурсу — процессорному времени.
Толком управлять очередью потоков из юзверского кода невозможно, плюс даваемые операционкой примитивы сигнализации обслуживают только самые базовые сценарии, причём, в современных процах с защищённой памятью — крайне неэффективно.
Собсно, поэтому, если стоит задача разработки системы сложных блокировок, то опираться на даваемые операционкой ср-ва стоит с осторожностью, т.е. следует учитывать/измерять, насколько ср-ва ОС адекватны решаемой задаче. В обсуждаемой предметной области серверных приложений — неадекватны.
Именно поэтому мейнстримом уже относительно давно для серверных приложений является оборачивание вычислительных задач в объекты-таски пользовательского уровня, с управлением очередями задач из юзверского (по отношению к операционке) кода.
В простонародье это называют "асинхронщиной", но это поверхностное представление.
Асинхронные эти задачи только с т.ч. потоков ОС, но сами по себе выч. задачи, управляемые юзверским слоем, в своей логике исполнения в 99.99% синхронны.
Это основная причина, из-за которой я утверждал, что ключевые слова async/await в дотнете не нужны.
Коль механизм диспетчеризации отделён от логики разрабатываемой разработчиком программы, спрятан где-то унутре, то и нет смысла оперировать async-await, достаточно на уровне дотнета оперировать вычислительными потоками по принципу т.н. зеленых потоков.
V>>Я тебе показал отношение одной пары из иерархий блокировок. S>Ну вот опять. Вы берёте удобный вам сценарий и реализуете его. А потом делаете вид, что эта реализация покрывает всё множество прикладных сценариев.
И в чём у тебя проблема?
Если CONS способно связать пару узлов, то можно привязать и третий, и сорок третий.
Отношение блокировок различных по иерархии моделей сущностей в базе — это всегда изменение уровня параллелизма к ресурсу при движении от объектов верхнего уровня к нижним:
База -> таблица -> страница таблицы -> строка таблицы.
Подставь вместо "таблица" еще индекс по аналогии — не суть.
Отношение для пары было показано.
Какие еще могут быть сложности обобщить на произвольную по глубине иерархию?
Забудь про базы и таблицы (это сильно мешает, смотрю), пронумеруй хоть от одного до ста некие уровни иерархий ресурсов и распиши себе.
S>А так не работает.
Это потому что у тебя наблюдается хорошо заметная ломка, что лично меня улыбает.
Ты не привык рассуждать очередями задач, не привык расписывать управление задачами на очередях, для тебя, походу, является кощунством вообще думать в эту сторону, коль ты рассуждал в духе "а, ну это самописный семафор!". ))
На забавную эту твою пихологическую проблему мне нечего ответить.
Дай себе время привыкнуть.
Поупражняйся порасписывать алгоритмы сложных блокировок через явное управление очередями заявок и всё пройдёт.
Здравствуйте, vdimas, Вы писали:
V>>>Ага, с эсрпессо-автоматами обделался, так хоть о мельничках поговорить. I>>А кто тебе мешает соседнюю страницу глянуть?
V>Я смотрел и тебе ссылки тоже давал.
Вот по этой ссылке видна разница между суперавтоматом и профессиональной машиной.
I>>Ты извини, но дальше я скипнул. Цитата "серьезные европейские производители уже НЕ производят рожковые" выдаёт тебя с головой
V>Бгг, смотрим. V>По твоим американским ссылкам однорожковые автоматы ровно те, которые на родном сайте производителя находятся в разделе "кофемашин для домашнего использования": V>https://www.nuovasimonelli.it/en/our-products/home/
"серьезные европейские производители уже НЕ производят рожковые" vdimas
Ты снова сам себя опроверг.
Что ты теперь скажешь, что бренд вероятно "несерьезный" ? Может другой какой глянем? У меня под боком выбор из пары десятков.
Вот еще пример https://www.cimbali.com/products/
Здесь всё предельно просто — традиционные машины, полностью автоматичские и дозаторы-гриндеры.
Очевидно, традиционные машины и есть те самые рожковые. И это профессиональное оборудование — сеть McCafe имено на таких
Кстати говоря, ты так и не показал, какая же сеть кофеен на тех самых "супер-автоматах".
Собствено, теперь беседа сводится к валидации твоих аргументов. Ты выглядишь как студент, который яростно спорит с QA, что баг де не баг, а просто QA не должен был туда кликать.
UPD: нашел кофе в турке по твоему рецепту, все как положено — 7-8 раз доводить до кипения, заранее заготовленый помол, и тд.
Итого — кисло-горький вкус, без капли ароматов и оттенков. Такой кофе получается завариванием выдохшейся дешевой лаваццы в кружке, если его залить крутым! кипятком, да еще не дать сформироваться корке.
Собственно, за все время, пока я обедал, это минут тридцать-сорок, ни одного посетителя у этой точки не было. Крайне странное явление, учитывая что фудкорты были заполнены основательно.
Вобщем, допивать шмурдяк не стал.
V>Или крайне простой велосипед — очередь. V>Это зависит от способа представления вычислительных задач.
Можно обсудить оба способа.
V>Собсно, поэтому, если стоит задача разработки системы сложных блокировок, то опираться на даваемые операционкой ср-ва стоит с осторожностью, т.е. следует учитывать/измерять, насколько ср-ва ОС адекватны решаемой задаче. В обсуждаемой предметной области серверных приложений — неадекватны.
Ок, зачем тогда вы их начали обсуждать? Предлагаете заведомо неадекватное решение, да ещё и неполное?
V>Именно поэтому мейнстримом уже относительно давно для серверных приложений является оборачивание вычислительных задач в объекты-таски пользовательского уровня, с управлением очередями задач из юзверского (по отношению к операционке) кода. V>Это основная причина, из-за которой я утверждал, что ключевые слова async/await в дотнете не нужны.
А какова будет нотация описания пользовательских задач? Руками переписывать всё в state machine?
Я не уверен, что это будет нагляднее, чем код с async/await.
Возвращаемся к главному вопросу: как выглядит код исполнения типичного запроса? Предположим, мы выполняем что-то вроде
select count(id) from sales s inner join city c on s.cityId=c.id where c.name = 'Севастополь' and s.Amount > 150
Можете набросать то, что будет исполняться движком СУБД? Если это будет императивный код с семафорами — что и когда будет захватываться и отпускаться.
Если это будет набор объектов-тасков — то какие это будут объекты-таски?
Что-то мне подсказывает, что вы опять отделаетесь общими словами.
V>И в чём у тебя проблема? V>Если CONS способно связать пару узлов, то можно привязать и третий, и сорок третий.
Проблема — в деталях. Пока что у вас все рассуждения — уровня "процессор исполняет ассемблерные инструкции, поэтому нужно просто превратить программу в набор инструкций и их исполнить".
V>Забудь про базы и таблицы (это сильно мешает, смотрю), пронумеруй хоть от одного до ста некие уровни иерархий ресурсов и распиши себе.
Опять нумерация. Для каждого уровня иерархии потребуется свой объект ресурса. Вот вам кажется, что можно реализовать page lock так, как будто он блокирует сразу "пачку" единиц, а row lock их блокирует по одной.
Да, но это же только часть решения. В мире СУБД эта часть называется intent lock и да, перед захватом блокировки строки нужно захватить блокировку страницы. (Есть и альтернативные решения, но они слишком дорогие на практике и их никто не применяет).
Но вы-то пишете так, как будто это и есть решение для row lock, а меж тем строки — это отдельные ресурсы, и их захватывать надо тоже.
Причём очевидным образом эти ресурсы должны создаваться динамически: никто не создаёт заранее миллиарды семафоров для каждой строки в базе. И миллиарды очередей тоже заранее не создаёт.
Поэтому хоть захват блокировки, хоть постановка в очередь сопровождается отдельной операцией поиска/создания объекта, которая закрыта, естественно, ещё одной блокировкой.
То есть захват минимального row lock — это как минимум четыре интерлокед операции, и это на happy path, когда во всей системе ровно одна исполняемая транзакция.
V>Это потому что у тебя наблюдается хорошо заметная ломка, что лично меня улыбает.
Смешно. V>Ты не привык рассуждать очередями задач, не привык расписывать управление задачами на очередях, для тебя, походу, является кощунством вообще думать в эту сторону, коль ты рассуждал в духе "а, ну это самописный семафор!".
Да при чём тут психология и кощунство? Вы рассуждаете в терминах некоторой конструкции, свойства которой полагаете очевидными. Меня всего лишь интересовало, как именно эта конструкция устроена.
Как устроен системный семафор, я и так знаю. Мне было непонятно, то ли вы просто не в курсе ошибки 87, то ли имеете в виду какую-то самодельную реализацию. Во втором случае интересовало то, как эта реализация устроена, т.к. рассуждать о свойствах неизвестно чего я не умею. Покажете устройство вашего семафора — есть что обсуждать. Не показываете — обсуждать нечего. Вот и всё.
А вы зачем-то тратите моё и своё время на обсуждение каких-то не имеющих отношения к делу банальностей.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.