Pull to refresh
-19
0

Программист

Send message

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


Ок. Это мы выяснили. Там похоже нет места для кеша.


"Теперь вы говорите про кеширование акций, они и так кешируются, в уже "разобранном" виде. Знать заранее какие акции потребуются невозможно, для этого надо посчитать их для конкретной корзины. Акции меняются не часто, но чаще чем раз в сутки/час."

В статье вы писали что "К тому же большая часть акций создается заранее, со сроком начала действия указанным в будущем, к этому моменту состояние в рамках этих акций почти наверняка будет консистентным."

Я подумал что акция обычно  создаётся заранее и применяется в некий период,с такого дня по такой то день. То есть время акций (старт и окончание) измеряется с точностью до дня). Можно конечно описать акцию и в вечернее, к примеру время, но тогда у нас у акции будет два времени: время использования акции (например 8 марта) и время действия акции (весь день или с 18:00 до 21:00) . - нас, в этом случае для заполнения нашего гипотетического кеша на инстансе сервиса, заботит только "время использования акции".

Например, акции на 8 марта создаются, по-видимуму, по крайней мере не позже 7 марта, ведь их надо ещё прорекламировать (реально наверное за неделю до 8 марта). И они начинают действовать с 8 марта.

Я думал так. И тогда зачем обращаться к хосту с акциями чаще чем раз в день? - поэтому и предложил такой алгоритм заполнения кеша акций.

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

Механизм кеша действительно простой и часто эффективный.

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

P.S. "Одним из главных недостатков в подходе который вы предлагаете, это то, что если во время синхронизации отдельных инстансов сервиса, произойдет изменение каких либо акций, то инстансы будут находиться в неконсистентном состоянии вплоть до следующей удачной синхронизации."

Этого замечания я не понял. Как это может произойти? - например, 8 марта инстанс сервера обнаруживает что в кеше нет акций на 8 марта и делает запрос на хост (базу) акций для заполнения кеша акциями на 8 марта. База акций вполне позволяет вернуть на этот запрос от инстанса все акции на 8 марта, независимо от того что кто-то во время этого запроса что-то правит в ней.  - другое дело что если кто-то правит (вводит) 8 марта акции на 8 марта, то конечно они могут не попасть в ответ на запрос с инстанса сервиса 8 марта. Но изменять акции на какой-то день в тот же день - это недопустимо наверное. Ибо акции должны начать применяться с 00:00 часов наступившего конкретного дня. (00:00 тут не абсолютно, можно настроить кеш на начало открытие магазинов, но в общем случае есть же и магазины online и им точно нужны акции по крайней мере с 00:00 часов для корректной работы их).

P.P.S. для того чтобы я получал на почту сообщение что вы мне ответили тут, то отвечайте именно на моё сообщение, а не на ваше же (как вы выше ответили (добавили как бы) ненароком), иначе мне сообщение о вашем ответе таком не приходит на почту.

Я зацепился взглядом за строку "В глаза сразу бросилось отсутствие кеширования."

Кеши бывают разные. Не всегда имеет смысл держать в кеши всё. Иногда достаточно держать "наиболее запрашивает данные", выполняя для запроса остальных обычные запросы.

"1 Периодические запросы в БД с целью отдать акции, время изменения которых (updatedAt) больше, ранее сохраненной временной метки

2. Слушать события изменения коллекции используя change streams"

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

Таким образом данные акций из кеша синхронизируются с удалённой базой акций.

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

Введение такого кеширования позволяет отказаться от "узкого места" коррдинатора, про который вы упоминаете: "координатором более сложен в реализации. Не стоит забывать, что являясь единственным источником истины, он так же является единой точкой отказа."

"Всевозможных состояний корзины огромное множество."

Теоретически да, но практически как? Может случиться что на практике состояние корзины можно определить заранее. И тогда, к примеру для 99% или 88% или 77% таких случаев просчитать все варианты акций, а для остальной экзотики уже считать иначе.

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

В вашей статье я насчитал пять очередей/стеков:

очереди задач (Task Queue)

очередь микрозадач

стек вызовов (Call Stack)

очередь событий

очередь выполнения

Это столько есть на самом деле или некоторые из этих названий есть синонимы?

Ничего плохого когда рационализаторство приносит прибыль.

И очень плохо когда рационализаторство приносит убыток.

"Вы описываете что-то из времён Евклида. В современной физике у термина "постулат" никакого специального смысла нет. Это синоним "аксиомы".

С современной физикой согласен. Насколько лет назад физики-экспериментаторы "открыли" скорость больше скорости света. - что тогда делать с СТО? - а никто не встал на её защиту. Дюжина современных физиков-теоретиков сходу выкатился свои теории в которых, постулировалась поди, скорость выше скорости света. - то есть им не надо было и думать. Они уже имели в своих столах такие теории. Но пока они их не публиковали и никому не показывали. Но над ними работали. Потом их снова спрятали в свои ящики. До "лучших времён".

Через пару недель выяснилось что физики-теоретики где-то "недопаяли" какой-то контакт и поэтому получили ошибку. - меня тогда удивило с какой скоростью они, без всякого почтения к СТО, известили на весь мир что в их эксперименте получена скорость выше скорости света. И ещё меня удивило как в их формулах, по обработке результатов эксперимента их, вообще могла взяться скорость больше скорости света. Ведь из формул СТО никак нельзя получить скорость больше скорости света. Какие же формулы использовали тогда эти физики- экспериментаторы? Просто поделили расстояние на время, поди.

Но ведь СТО появилась не сейчас, когда физик может постулировать что угодно, хоть бесконечное количество вселенных или дюжину дополнительных пространств.

СТО появилась в начале прошлого века. И тогда постулаты не высасывали из пальца. Всегда смотрели на опыт. Опыт Michelson–Morley и дал им то значение скорости которое уже было определено в первом постулате СТО, как самая максимальная скорость во всех инерциальных системах отсчёта.

Первый постулат СТО ничего не может сказать об обязательном наличии такой максимальной скорости, но говорит о том, что если какая величина скорости будет обнаружена в опыте в одной инерциальной системе отсчёта равной в этом опыте в другой инерциальной отсчёта, то она и будет максимальной скоростью во всех инерциальных системах отсчёта. И искать другую максимальную скорость больше не надо. Совсем.

(О законе сохранения энергии. Да, ошибся я, он выводится из однородность времени. Вы правы. А из изотропности пространства - выводится закон сохранения момента импульса. При этом "однородность" — "одно из ключевых свойств времени в классической механике. Является фундаментальным обобщением опытных фактов." (Википедия) - Тут снова появляется типа "постулат-аксиома-свойство" и "опытные факты". - да, были времена когда-то. :-)).

Да всё у вас получилось.

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

Вот провели опыт Michelson–Morley и нашли что в двух системах отсчёта есть скорость которая не равна нулю и которая имеет постоянную величину в этих системах отсчёта. Опыт дал что это оказалась скорость света в вакууме.

И всё. В остальных она будет также иметь такую же величину и она же будет максимальной скоростью во всех инерциальных системах отсчёта - больше искать максимальную нет смысла.

И это вытекает не из постулата о скорости, а из постулата об эквивалентности инерциальных систем отсчета.

Тут явно надо определиться с понятием "постулат".

Вообще "постулат" в физике это что-то принимаемое в теории, но всё равно вытекаемое обычно из опыта.

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

То что этой скоростью оказалась скорость света в вакууме, а не скорость нейтрино в вакууме или скорость гравитонов в вакууме - это найдено из опыта. Нужно ли найденное из опыта постулировать? Может и можно но особого смысла нет.

Что касается "изотропности" - то из неё вытекает Закон сохранения энергии. Вряд ли он иметь отношение к СТО.

"Итого, в СТО два постулата: эквивалентность инерциальных систем отсчета (как и было) и постоянство скорости света"

Неверно. Достаточно одного постулата - эквивалентность инерциальных систем отсчета.

Из него вытекает вывод: что если в каких-то двух инерциальных системах отсчета скорость чего-то больше нуля в одной системе отсчета и равна скорости этого же в в другой системе отсчета, то эти скорости этого же будут равны во всех системах отсчета и эта равная всюду величина скорости этого будет максимальной во всех системах отсчета.

И всё. Ничего ни про свет или что иное.

И что дальше? А дальше такая скорость была найдена экспериментально.

Из постулата эквивалентности инерциальных систем отсчета вовсе не вытекает что она должна быть вообще, что она должна существовать. - Просто если она есть и равна по величине в двух инерциальных системах отсчета то она будет такой же по величине и во всех инерциальных системах отсчета и мало того, она будет максимальной скоростью во всех инерциальных системах отсчета.

Из известного опыта совершенно экспериментально выяснилось что в двух инерциальных системах отсчёта есть такая равная в этих инерциальных системах отсчета скорость - ею оказалась скорость света в вакууме.

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

Почему именно скорость света в вакууме? - СТО этого не знает и не постулирует. Так уж вышло. Вот нашли. Что именно свет в вакууме. Для СТО неважно что именно. Из постулата СТО (одного!) просто вытекает ЕСЛИ есть такая хотя бы в двух инерциальных системах отсчета одинаковая скорость (и больше нуля, конечно) , то она такая же во всех инерциальных системах отсчета и мало того - эта скорость максимальная скорость будет и выше её нет и искать не надо больше.

Так что максимальность скорости света во всех инерциальных системах отсчета вытекает из равенства скорости света хотя бы в двух инерциальных системах отсчета, что было не постулировано, а экспериментально найдено. - так уж свезло. :-)

Смотрите. Дадим определение вначале:

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

В настоящее время нефальсифицируемые теории мало кто рассматривает вовсе (исключение - "Теория Струн", на которую и гранты дают, но которая пока(!?) не фальсифицируемая) .

Тогда - Является ли описание падения испытателя или любого устройства в чёрную дыру, с пересечение горизонта событий ЧД фальсифицируемым?

Два ответа у меня есть:

1) с точки зрения внешнего объекта не является. Ибо никакая информация о том что происходит после пересечения горизонта событий до него от испытателя или устройства не доходит, да и вообще, с его точки зрения ни один атом не пересечёт горизонт событий сколько бы времени он не наблюдал за ним.

2) с точки зрения падающего в ЧД фальсифицируемость теории вполне возможна, но тут возникает философский вопрос - считать ли теорию фальсифицируемой если об этом может узнать только и только уже пересёкший горизонт событий человек?


Это напоминает "загробную жизнь" - считать ли теорию о "загробной жизни" фальсифицируемой, если узнать об этом может только умерший человек, который не может (ибо пересёк "реку Харон") послать сигнал живущим людям?

Иначе говоря - считать ли теорию о "падении в ЧД" фальсифицируемой, если узнать об этом может только упавший в ЧД человек, который не может (ибо пересёк "горизонт событий ЧД") послать любой сигнал находящимся снаружи горизонта событий ЧД людям?

Я думаю что это дело вкуса, но на мой взгляд верно 1 - и тогда теория о падении чего-то в ЧД с точки зрения внешнего наблюдателя является нефальсифицируемой, - отсюда и всякие размышления (теории) о потери информации смысла не имеют пока. - Пока не придумают эксперимент как послать сигнал из-под горизонта событий людям вне чёрной дыры находящимся. Что в настоящее время вызывает такие же трудности как и "сигнал с того света".

"Как можно говорить о том что информация в черной дыре пропадает от того что пуда что то попадает?"

Вот именно. С точки зрения внешнего наблюдателя ни один атом не пересекает горизонт событий.

Похоже нас с вами только двое кто это понимает.

На вопрос же астрономам про это, астрономы отвечают так: а рано или поздно мы не видим ту материю что как-бы падает в чёрную дыру и нам УДОБНЕЕ считать что чёрная дыра "поглотила" эту материю.

Когда им возражаешь, что по Теории ОТО этого быть не может с точки зрения внешнего наблюдателя, то астрономы отвечают - раз мы уже НЕ МОЖЕМ уловить никакой сигнал от "зависшей" над горизонтом событий массы, то почему бы нам для УДОБСТВА не считать что чёрная дыра поглотила эту массу.

Но ведь по теории ОТО это невозможно, - говоришь им. В ответ они говорят: Для нас, астрономов, это не имеет значения. Мы анализируем то что ВИДИМ, а не то что по Теории ОТО должно происходить.

Нет. Проблема слияния чёрных дыр, да и появления чёрной дыры,динамика этих процессов- это сугубо теория и мы не об этом. Там хватает гипотез и теорий. Своих.

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

Другой вывод - люди есть внешние наблюдатели по отношению с чёрной дырой. - если не рассматривать гипотезу что наша Вселенная, и мы вместе с ней, находится внутри некой чёрной дыре. Но это мы тут не рассматриваем. Эту экзотику.

Что на практике?- подлетает звезда к чёрной дыре, её масса образует аккреционный диск, в котором возникает гигантская температура и происходит излучение во вне и мы видим это излучение. Далее всё что осталось от этого излучения повисает над горизонтом событий чёрной дыры.

Далее около чёрной дыры появляется новая звезда которая снова "наматывается" на чёрную дыру увеличивая акреционный диск и снова повышение температуры и снова выброс излучения.

И так повторяется снова и снова. С точки зрения внешнего наблюдателя масса чёрной дыры как-бы растёт - это проявляется в динамике рядом пролетаюших звёзд- по этой динамике и определяется масса чёрной дыры. Она действительно выросла. Но при этом "росте" ни один атом не пересекает горизонт событий чёрной дыры.

Фактически мы имеем некую чёрную дыру с некой неизвестной изначальной массой, на которую намотаны массы остальных звёзд, которые время от времени образуют аккреционный диск, который время от времени излучает во вне.

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

Так есть ли информационный парадокс чёрный звезды вообще?

Растёт. И акреция вещества происходит. И что?

Допустим мы наблюдаем за космическим аппаратом который поглощает чёрной дырой. Рано или поздно мы перестанем видеть присылаемые им световые сигналы ибо они сдвинутся в длинноволновой край спектра. Но согласно ОТО он никогда, с точки зрения стороннего наблюдателя, не пересчёт горизонт событий.

Допустим мы 10 миллиардов лет наблюдаем как чёрная дыра поглощает кучу звёзд увеличиваясь по массе, посылая всплески света от акреции звёзд около её, но согласно ОТО, для стороннего наблюдателя, то есть для нас, ни один атом из кучи поглощеных чёрной дырой звёзд не пересечёт горизонт событий этой чёрной дыры.

То есть информация не исчезнет. И никакого парадокса нет.

А как же быть с испарением чёрной дыры? Но раз ни один атом не пересекает горизонт событий чёрной дыры, с точки зрения стороннего наблюдателя, то и испаряться нечему.

Да, после того как акреционный диск перестанет светится чёрная дыра для внешнего наблюдателя физически будет выглядеть как объект с увеличенной на поглощённую массу звезды объект. Но согласно ОТО, с точки зрения стороннего наблюдателя ни один атом не пересечёт горизонт событий этой чёрной дыры. Все поглощённые звёзды размажутся и зависнут около горизонта событий чёрной дыры, никогда не пересекая его.

Никогда не понимал этой проблемы пропажи информации.

С точки зрения ОТО для внешнего наблюдателя ни один атом никогда не поглотится чёрной дырой. Так и подвиснет навечно над горизонтом событий.

Автор - твоё решение верное. Смысла что-то делать в современной России нет никакого. Как ни крути.

Возможно автор перевода и виноват, но автор исходной статьи явно сгенерил её с помощью ИИ, ибо понять хоть одно предложение в этой статье нельзя. Похоже эта статья есть фейк.

А чем плох вариант писать простую реализацию бека используя express и настроить возможность запуска разных вариантов dev сервера

А тем что его нужно писать, деплоить, поддерживать, менять - а зачем? - Если фронтенду нужен только урл и данные в json и именно это и обеспечивает Mock Service Worker.

Отдельный моксервер вообще не вносит в проект никаких вмешательств

Не понял. В вашем же коде будет урл на этот тестовый моксервер. Вам надо будет как-то переключаться между тестовым сервером и настоящим же при деплое на продакшен!

Нет никакой прямой зависимости от бэкаэнда.

Да само наличие тестового бэкаэнда и есть зависимость от него. Его надо обслуживать, собирать, развёртывать. Зачем это делать на тестах то? Какая причина то существования тестового бэкаэнда?

Отпущены наверняка чтобы не усложнять вопрос.

Так ведут себя люди которые не посещали школу. Или пропустили уроки геометрии за 7-класс. Логику сейчас изучают только там. Больше нигде в школе.

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

- в воскресенье сосед ходит в баню. Завтра воскресенье. Пойдёт ли твой сосед в баню?

Ответ - нет, ибо сосед заболел.

Вывод экспериментаторов тогда был такой- люди не посещавшие школу руководствуются только и только "житейской логикой". С ней вполне можно жить. И даже преуспевать.

С ней одно нельзя - решать логические задачи и спорить.

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Registered
Activity