Forwarded from Акула (в) IT
ARIES (7/8)
Алгоритм восстановления. Фаза Undo.
Наконец Фаза 3 — Undo. После исполнения первых двух фаз, таблица незавершённых транзакций TT может быть не пуста. Эти транзакции не успели сделать коммит. Значит они должны откатиться, чтобы сохранить свойство атомарности.
Во время Undo транзакции должны откатиться в обратном хронологическом порядке относительно порядка, в котором они записывались. Для этого пока в TT есть записи Undo-фаза использует следующий алгоритм:
1. Выбирается запись с самым большим LSN.
2. Если запись update — эта запись откатывается при помощи CRL записи в WAL. Той самой записи, которая обычно записывается в WAL при роллбеках. Фактически ARIES подменяется неуспешные транзакции на успешные, которые просто сделали роллбек. В TT добавляется новая CLR запись для дальнейшего анализа.
3. Если эта запись CLR -> вместо неё добавляется её значение undoNextLSN. Если этого значения нет, запись удаляется из TT.
Посмотрим на примере выше. WAL всё ещё выглядит следующим образом:
Undo фаза смотрим в TT. Видит там запись
А TT обновится до
Добавление новой CLR записи в WAL следует такому же write-ahead протоколу, как и добавление обычных записей. Другими словами, эта запись не может попасть на диск, пока она не будет сохранена в журнал WAL.
При откате 32 записи видно, что эта транзакция связана с записью 30 (поле prevLSN). Это значение копируется в undoNextLSN CLR записи. Таким же образом undoData копируется в redoTheUndoData.
Пусть в этот момент происходит ещё 1 рестарт. ARIES же обещает, что всё будет работать и при рестартах. Посмотрим!
Снова запустим анализ. После анализа первых 4 записей (30-33) состояние TT и DPT такое же, как было и раньше в конце первого рестарта.
Но анализ ещё не завершен, ведь есть запись под номером 34. После обработки этой записи DPT не изменится, а вот TT поменяется на
Как видите это ровно такое же состояние, в котором был TT во время undo фазы предыдущего рестарта. ARIES пришёл ровно в тоже самое состояние, что и раньше.
Redo фаза снова обновит состояние буферов страниц. Останется только завершить процесс восстановления в undo фазе. Снова смотрим на запись с самым большим LSN — это запись 34. Пункт 3 алгоритма говорит, что если запись является CLR, значение в TT должно обновиться на undoNextLSN. Новое состояние TT:
Снова ищем самый большой LSN по TT. Находим 30. Запись update, поэтому надо откатить при помощи CLR. У записи нет prevLSN, значит это последняя CLR запись. Теперь состояние WAL будет:
А в TT получится:
Остался последний шаг — вытаскиваем самый больше LSN из TT — 35. Это CLR, значит значение в TT для транзакции 1 в соответствии с пунктом 3 нужно обновить на undoNextLSN, но там "-". Это значит, мы произвели полный откат транзакции и запись можно удалить. Наконец-то в TT больше нет записей. Состояние базы данных успешно восстановлено.
Алгоритм восстановления. Фаза Undo.
Наконец Фаза 3 — Undo. После исполнения первых двух фаз, таблица незавершённых транзакций TT может быть не пуста. Эти транзакции не успели сделать коммит. Значит они должны откатиться, чтобы сохранить свойство атомарности.
Во время Undo транзакции должны откатиться в обратном хронологическом порядке относительно порядка, в котором они записывались. Для этого пока в TT есть записи Undo-фаза использует следующий алгоритм:
1. Выбирается запись с самым большим LSN.
2. Если запись update — эта запись откатывается при помощи CRL записи в WAL. Той самой записи, которая обычно записывается в WAL при роллбеках. Фактически ARIES подменяется неуспешные транзакции на успешные, которые просто сделали роллбек. В TT добавляется новая CLR запись для дальнейшего анализа.
3. Если эта запись CLR -> вместо неё добавляется её значение undoNextLSN. Если этого значения нет, запись удаляется из TT.
Посмотрим на примере выше. WAL всё ещё выглядит следующим образом:
30. [-, 1, X, "u", k+=2, k-=2]
31. [-, 2, Y, "u", n-=3, n+=3]
32. [30, 1, X, "u", k+=9, k-=9]
33. [31, 2, Y, "c"]
-- RESTART
Undo фаза смотрим в TT. Видит там запись
1, 32 и начинает её откатывать при помощи clr записи. После отката новое состояние WAL будет:
30. [-, 1, X, "u", k+=2, k-=2]
31. [-, 2, Y, "u", n-=3, n+=3]
32. [30, 1, X, "u", k+=9, k-=9]
33. [31, 2, Y, "c"]
34. [32, 1, X, "clr", k-=9, 30]
А TT обновится до
1, 34
Добавление новой CLR записи в WAL следует такому же write-ahead протоколу, как и добавление обычных записей. Другими словами, эта запись не может попасть на диск, пока она не будет сохранена в журнал WAL.
При откате 32 записи видно, что эта транзакция связана с записью 30 (поле prevLSN). Это значение копируется в undoNextLSN CLR записи. Таким же образом undoData копируется в redoTheUndoData.
Пусть в этот момент происходит ещё 1 рестарт. ARIES же обещает, что всё будет работать и при рестартах. Посмотрим!
30. [-, 1, X, "u", k+=2, k-=2]
31. [-, 2, Y, "u", n-=3, n+=3]
32. [30, 1, X, "u", k+=9, k-=9]
33. [31, 2, Y, "c"]
34. [32, 1, X, "clr", k-=9, 30]
-- RESTART 2
Снова запустим анализ. После анализа первых 4 записей (30-33) состояние TT и DPT такое же, как было и раньше в конце первого рестарта.
DPT:
X, 30
Y, 31
TT:
1, 32
Но анализ ещё не завершен, ведь есть запись под номером 34. После обработки этой записи DPT не изменится, а вот TT поменяется на
1, 34
Как видите это ровно такое же состояние, в котором был TT во время undo фазы предыдущего рестарта. ARIES пришёл ровно в тоже самое состояние, что и раньше.
Redo фаза снова обновит состояние буферов страниц. Останется только завершить процесс восстановления в undo фазе. Снова смотрим на запись с самым большим LSN — это запись 34. Пункт 3 алгоритма говорит, что если запись является CLR, значение в TT должно обновиться на undoNextLSN. Новое состояние TT:
1, 30
Снова ищем самый большой LSN по TT. Находим 30. Запись update, поэтому надо откатить при помощи CLR. У записи нет prevLSN, значит это последняя CLR запись. Теперь состояние WAL будет:
30. [-, 1, X, "u", k+=2, k-=2]
31. [-, 2, Y, "u", n-=3, n+=3]
32. [30, 1, X, "u", k+=9, k-=9]
33. [31, 2, Y, "c"]
34. [32, 1, X, "clr", k-=9, 30]
35. [34, 1, X, "clr", k-=3, -]
А в TT получится:
1, 35
Остался последний шаг — вытаскиваем самый больше LSN из TT — 35. Это CLR, значит значение в TT для транзакции 1 в соответствии с пунктом 3 нужно обновить на undoNextLSN, но там "-". Это значит, мы произвели полный откат транзакции и запись можно удалить. Наконец-то в TT больше нет записей. Состояние базы данных успешно восстановлено.
Forwarded from Акула (в) IT
ARIES (8/8)
Заключение.
ARIES — эффективный и достаточно простой алгоритм записи и восстановления. Он работает за счёт полного повтора истории. Как было показано на примере, он продолжает работать даже при множественных рестартах подряд. ARIES может работать в steal + no-force режиме buffer manager. Другими словами, он не требует чтобы коммиты записывали грязные страницы на диск, а также позволяет записывать страницы даже во время транзакций.
ARIES проводит восстановление в три шага.
Сначала происходит анализ записей в WAL. При анализе восстанавливается состояние таблицы грязных страниц DPT, а также таблицы незавершённных транзакций TT.
В следующей фазе — Redo, состояние буферов страниц в памяти приводится в полное соответствие с WAL. После исполнения Redo, внутреннее состояние страниц идентично тому, каким оно было до начала процесса восстановления.
Наконец, в фазе Undo откатываются транзакции, которые не успели сделать коммит до начала рестарта. Во время Undo каждой update записи WAL, относящейся к незавершённой транзакции, в обратном хронологическом порядке записывается CLR запись. Точно такая же запись обычно записывается в WAL при роллбеках в нормальном режиме работы. Такой подход позволяет с одной стороны, упростить алгоритм восстановления при повторных рестартах, а с другой, ограничить максимальное количество новых записей в WAL, которые будут созданы во время восстановления. При создании CLR использует протокол write-ahead, как и при обычной записи в нормальном режиме.
Я уже вышел за все мыслимые и немыслимые рамки размера поста, поэтому, пожалуй, закончу. Есть ещё пара вещей, о которых не рассказал.
Первое — это чекпоинты. База данных периодически может снимать текущее состояние таблицы грязных страниц DPT и незавершённых транзакций TT и записывать в какое-нибудь надежное место. Такой подход позволяет во время фазы анализа ARIES не просматривать вообще весь журнал, а сначала восстановить чекпоинт, и накатывать обновление уже с него.
Второе — каждая фаза ARIES может не только без проблем пережить рестарт, но также может запускаться параллельно и безопасно в несколько потоков. Это достигается за счёт локов на уровне страницы. Более того, во время каждой фазы БД может делать чекпоинты. Так к примеру чекпоинт после фазы анализа позволит не делать анализ повторно, если второй рестарт произойдёт сразу.
Третье — я сказал, что ARIES позволяет делать гранулярные локи, т.е. лочить и на уровне страницы, и на уровне отдельной строчки, но не сказал как. С локами в базах вообще всё сложно, когда-нибудь про лок-менеджеры напишу отдельный пост.
Четвёртое — есть распределёный ARIES! D-ARIES: A Distributed Version of the ARIES Recovery Algorithm (ссылка). А ещё ARIES (вернее WAL) оптимизирован под жёсткие диски. SSD последовательная запись нужна в меньшей степени, т.е. на них можно сделать более эффективный алгоритм. Пример такого алгоритма есть в работе From ARIES to MARS: transaction support for next-generation, solid-state drives (ссылка). Это всё добро тоже в беклоге.
Источники:
[1] ARIES whitepaper https://dl.acm.org/doi/10.1145/128765.128770
[2] Прекрасное youtube видео про ARIES от Dr. Jens Dittrich https://www.youtube.com/watch?v=S9nctHdkggk . Там целый университетский курс видео-лекций про базы данных.
[3] Ramakrishnan, Gehrke — Database Management System Third Edition (ссылка)
[4] Peter Bailis Joseph M. Hellerstein Michael Stonebraker — Readings in Database Systems Fifth Edition. Она же Red Book. (ссылка)
Ссылка на первый пост из 8.
Заключение.
ARIES — эффективный и достаточно простой алгоритм записи и восстановления. Он работает за счёт полного повтора истории. Как было показано на примере, он продолжает работать даже при множественных рестартах подряд. ARIES может работать в steal + no-force режиме buffer manager. Другими словами, он не требует чтобы коммиты записывали грязные страницы на диск, а также позволяет записывать страницы даже во время транзакций.
ARIES проводит восстановление в три шага.
Сначала происходит анализ записей в WAL. При анализе восстанавливается состояние таблицы грязных страниц DPT, а также таблицы незавершённных транзакций TT.
В следующей фазе — Redo, состояние буферов страниц в памяти приводится в полное соответствие с WAL. После исполнения Redo, внутреннее состояние страниц идентично тому, каким оно было до начала процесса восстановления.
Наконец, в фазе Undo откатываются транзакции, которые не успели сделать коммит до начала рестарта. Во время Undo каждой update записи WAL, относящейся к незавершённой транзакции, в обратном хронологическом порядке записывается CLR запись. Точно такая же запись обычно записывается в WAL при роллбеках в нормальном режиме работы. Такой подход позволяет с одной стороны, упростить алгоритм восстановления при повторных рестартах, а с другой, ограничить максимальное количество новых записей в WAL, которые будут созданы во время восстановления. При создании CLR использует протокол write-ahead, как и при обычной записи в нормальном режиме.
Я уже вышел за все мыслимые и немыслимые рамки размера поста, поэтому, пожалуй, закончу. Есть ещё пара вещей, о которых не рассказал.
Первое — это чекпоинты. База данных периодически может снимать текущее состояние таблицы грязных страниц DPT и незавершённых транзакций TT и записывать в какое-нибудь надежное место. Такой подход позволяет во время фазы анализа ARIES не просматривать вообще весь журнал, а сначала восстановить чекпоинт, и накатывать обновление уже с него.
Второе — каждая фаза ARIES может не только без проблем пережить рестарт, но также может запускаться параллельно и безопасно в несколько потоков. Это достигается за счёт локов на уровне страницы. Более того, во время каждой фазы БД может делать чекпоинты. Так к примеру чекпоинт после фазы анализа позволит не делать анализ повторно, если второй рестарт произойдёт сразу.
Третье — я сказал, что ARIES позволяет делать гранулярные локи, т.е. лочить и на уровне страницы, и на уровне отдельной строчки, но не сказал как. С локами в базах вообще всё сложно, когда-нибудь про лок-менеджеры напишу отдельный пост.
Четвёртое — есть распределёный ARIES! D-ARIES: A Distributed Version of the ARIES Recovery Algorithm (ссылка). А ещё ARIES (вернее WAL) оптимизирован под жёсткие диски. SSD последовательная запись нужна в меньшей степени, т.е. на них можно сделать более эффективный алгоритм. Пример такого алгоритма есть в работе From ARIES to MARS: transaction support for next-generation, solid-state drives (ссылка). Это всё добро тоже в беклоге.
Источники:
[1] ARIES whitepaper https://dl.acm.org/doi/10.1145/128765.128770
[2] Прекрасное youtube видео про ARIES от Dr. Jens Dittrich https://www.youtube.com/watch?v=S9nctHdkggk . Там целый университетский курс видео-лекций про базы данных.
[3] Ramakrishnan, Gehrke — Database Management System Third Edition (ссылка)
[4] Peter Bailis Joseph M. Hellerstein Michael Stonebraker — Readings in Database Systems Fifth Edition. Она же Red Book. (ссылка)
Ссылка на первый пост из 8.
подвезли докладов наконец с pycon.ru
== Данил Ахтаров. Кеширование — делаем всё правильно
https://youtu.be/L0xmgTW3QAo
aiocache
ring
лучше ЮЗАТЬ алгоритмы инвалидации! А НЕ
== Данил Ахтаров. Кеширование — делаем всё правильно
https://youtu.be/L0xmgTW3QAo
aiocache
ring
лучше ЮЗАТЬ алгоритмы инвалидации! А НЕ
TTL или MAX_SIZE
юзать лучше KeyDb а не RedisYouTube
Данил Ахтаров. Кеширование — делаем всё правильно
В докладе поделюсь опытом настройки политики кэширования данных в Python-приложениях.
Наверное, каждый, кто решал эту проблему, столкнулся с ней в неподходящий момент. Давайте сразу настроим «агрессивное» кэширование, а дальше будем оптимизировать инфраструктуру…
Наверное, каждый, кто решал эту проблему, столкнулся с ней в неподходящий момент. Давайте сразу настроим «агрессивное» кэширование, а дальше будем оптимизировать инфраструктуру…
== Антон Палий. Python и метрики. Мониторинг наше все
https://youtu.be/Sz4E9u7s2UM
- про типы метрик Counter/Gauge/Histogram
- про push/pull
- про интеграцию на питоне с прометеусом
- про реестры метрик
- про коллекторы: GC, Mem, Proc
https://youtu.be/Sz4E9u7s2UM
- про типы метрик Counter/Gauge/Histogram
- про push/pull
- про интеграцию на питоне с прометеусом
- про реестры метрик
- про коллекторы: GC, Mem, Proc
YouTube
Антон Палий. Python и метрики. Мониторинг наше все
Пшшш, Хьюстон, у нас много данных. Пшшшш, нам нужно их отправить вам. Но данные постоянно меняются, вы сможете их обрабатывать в режиме реального времени?
У нас есть замечательные инструменты для технического и бизнесового мониторинга. Они позволяют нам…
У нас есть замечательные инструменты для технического и бизнесового мониторинга. Они позволяют нам…
== Построение мониторинга python-приложений с использованием openTelemetry
https://youtu.be/_nl1e4TWQ0Q
ШИКАРНЕЙШИЙ доклад про OpenTelemetry
НАКОНЕЦ есть для питона! а-е
observability
- tracing (jaeger, zipkin, elastic APM)
- metrics (prometheus, influx data)
- logs (elastic)
opentracing + opencensus = opentelemetry
синхронные метрики - те которые дают сразу результат, работают в контексте
асинхронные метрики - те которые запускаются по рассписанию и дают срез состояния
писать структурированные логи = хорошо для парсинга
обязательно писать request_id (можно взять из open-telemetry)
+ трейсы работают. НАДО ЮЗАТЬ
- метрики пока еще не готовы
- логов нет... ждем
https://youtu.be/_nl1e4TWQ0Q
ШИКАРНЕЙШИЙ доклад про OpenTelemetry
НАКОНЕЦ есть для питона! а-е
observability
- tracing (jaeger, zipkin, elastic APM)
- metrics (prometheus, influx data)
- logs (elastic)
opentracing + opencensus = opentelemetry
синхронные метрики - те которые дают сразу результат, работают в контексте
асинхронные метрики - те которые запускаются по рассписанию и дают срез состояния
писать структурированные логи = хорошо для парсинга
обязательно писать request_id (можно взять из open-telemetry)
+ трейсы работают. НАДО ЮЗАТЬ
- метрики пока еще не готовы
- логов нет... ждем
YouTube
Владислав Лаухин. Построение мониторинга python-приложений с использованием opentelemetry
Одно из главных требований к современным бэкенд-приложениям это observability. Для этого приложение должно генерировать большое количество разного рода информации — логи, метрики, трейсы.
Более того, эту информацию необходимо собирать и отправлять в специализированные…
Более того, эту информацию необходимо собирать и отправлять в специализированные…
шикарный сборник паттернов проектирования API
==
Microservice API Patterns https://microservice-api-patterns.org/
==
Microservice API Patterns https://microservice-api-patterns.org/
microservice-api-patterns.org
Patterns for API Design
Our Patterns for API Design, also known as Microservice API Patterns (MAP), capture proven solutions to problems commonly encountered when specifying, implementing and maintaining message-based APIs.
MAP focusses on message representations – the payloads…
MAP focusses on message representations – the payloads…
Forwarded from oleg_log (Oleg Kovalov)
Ну все, Postgres 9.6 не поддерживается больше, остались красивые ХХ релизы только.
https://www.postgresql.org/support/versioning/
https://www.postgresql.org/support/versioning/
Forwarded from DevBrain
5 ноября вышла вторая альфа Python 3.11 и по мнению людей, которым можно доверять, 3.11 на ~30% быстрее чем 3.10.
В первую очередь рост производительности это работа над идеями по оптимизации в рамках Faster CPython Project. Узнать о новых фичах в 3.11 можно по ссылке.
В первую очередь рост производительности это работа над идеями по оптимизации в рамках Faster CPython Project. Узнать о новых фичах в 3.11 можно по ссылке.
Python.org
Python Release Python 3.11.0a2
The official home of the Python Programming Language
== Фильтрация шума сигнала
https://habr.com/ru/post/588270/
- Среднее арифметическое
- Медианный фильтр
- Экспоненциальное бегущее среднее и адаптивный коэффициент
- Фильтр Калмана !
== Совет по обработке данных 1-Kalman фильтр общего понимания
https://russianblogs.com/article/1215523020/
== Lulu_smoothing
https://en.wikipedia.org/wiki/Lulu_smoothing
== Weighted median
https://en.wikipedia.org/wiki/Weighted_median
== Симметричные НЧ-ВЧ фильтры
https://habr.com/ru/company/ruvds/blog/574922/
== Оконные функции своими руками
https://habr.com/ru/post/514170/
== Проектирование оконных функций, суммирующихся в единицу с заданным уровнем перекрытия
https://habr.com/ru/post/430536/
https://habr.com/ru/post/588270/
- Среднее арифметическое
- Медианный фильтр
- Экспоненциальное бегущее среднее и адаптивный коэффициент
- Фильтр Калмана !
def kalman(f, q=0.25, r=0.7):код конечно лучше не брать в таком виде. но идея понятна
if not hasattr(kalman, "Accumulated_Error"):
kalman.Accumulated_Error_Sq = 1
kalman.kalman_adc_old = 0
if abs(f-kalman.kalman_adc_old) / 50 > 0.25: # здесь необходимо пояснение констант нот
Old_Input = f*0.382 + kalman.kalman_adc_old*0.618 # возможно, здесь тоже
else:
Old_Input = kalman.kalman_adc_old
Old_Error_Sq = kalman.Accumulated_Error_Sq + q**2
H = Old_Error_Sq / (Old_Error_Sq + r**2)
kalman_adc = Old_Input + H * (f - Old_Input)
kalman.Accumulated_Error_Sq = (1 - H) * Old_Error_Sq
kalman.kalman_adc_old = kalman_adc
return kalman_adc
== Совет по обработке данных 1-Kalman фильтр общего понимания
https://russianblogs.com/article/1215523020/
== Lulu_smoothing
https://en.wikipedia.org/wiki/Lulu_smoothing
== Weighted median
https://en.wikipedia.org/wiki/Weighted_median
== Симметричные НЧ-ВЧ фильтры
https://habr.com/ru/company/ruvds/blog/574922/
== Оконные функции своими руками
https://habr.com/ru/post/514170/
== Проектирование оконных функций, суммирующихся в единицу с заданным уровнем перекрытия
https://habr.com/ru/post/430536/
Хабр
Фильтрация шума сигнала
Фильтрация шума очень важная вещь, при работе с различными датчиками. Сигнал, получаемый от них всегда приходит с шумами, и важно уметь их грамотно отфильтровать. Качественная фильтрация шума способна...
== HDMI. Не то чем кажется...
https://youtu.be/j3OY38dCSK0
https://youtu.be/j3OY38dCSK0
YouTube
HDMI. Не то чем кажется...
На данном этапе это один из самых современных интерфейсов передачи данных. Знаете ли вы сколько науки скрыто внутри?
Статьи на Пульс: https://pulse.mail.ru/source/3768777279273129127/
От телевизоров до VGA мониторов: https://youtu.be/YI9Gv1C7Fqw
Статьи на Пульс: https://pulse.mail.ru/source/3768777279273129127/
От телевизоров до VGA мониторов: https://youtu.be/YI9Gv1C7Fqw
давно не обновлял пакеты
и оказалось есть удобная тула в самом пипе
и оказалось есть удобная тула в самом пипе
pip list --outdatedhttps://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2
- Layered architecture
- Event-driven architecture
- Microkernel Architecture
- Microservices Architecture
- Space-Based Architecture
- Layered architecture
- Event-driven architecture
- Microkernel Architecture
- Microservices Architecture
- Space-Based Architecture
Medium
Software Architecture Patterns: 5 minute read
Main software architecture patterns in a nutshell.
== Как работает компьютер? Шины адреса, управления и данных. Дешифрация. Взгляд изнутри!
https://youtu.be/-knefdASOz8
== Логические элементы И, ИЛИ, Исключающее ИЛИ. История, Теория, Применение.
https://youtu.be/bXdiYU3IUJA
+ дешефратор
+ Дтриггер
+ РС триггер
+ счетчи
+ мультиплексор
== ВСЁ что Вы хотели знать о РЕЛЕ. Виды и способы подключения -- в Теории и на Практике!
https://youtu.be/SagbSOhlFlc
== POWER BANK для Макбука своими руками, или чудеса платы BMS.
https://youtu.be/q6M5MXQw9ZU
== Как правильно подключить любой светодиод? Питание, формула расчёта для светодиодов.
https://youtu.be/uAnlWi3IxSc
не плохой канал, кстати
https://youtu.be/-knefdASOz8
== Логические элементы И, ИЛИ, Исключающее ИЛИ. История, Теория, Применение.
https://youtu.be/bXdiYU3IUJA
+ дешефратор
+ Дтриггер
+ РС триггер
+ счетчи
+ мультиплексор
== ВСЁ что Вы хотели знать о РЕЛЕ. Виды и способы подключения -- в Теории и на Практике!
https://youtu.be/SagbSOhlFlc
== POWER BANK для Макбука своими руками, или чудеса платы BMS.
https://youtu.be/q6M5MXQw9ZU
== Как правильно подключить любой светодиод? Питание, формула расчёта для светодиодов.
https://youtu.be/uAnlWi3IxSc
не плохой канал, кстати
YouTube
Как работает компьютер? Шины адреса, управления и данных. Дешифрация. Взгляд изнутри!
ПОДДЕРЖАТЬ КАНАЛ (ЮMoney): https://musicboy.ru/majortomworkshop
КАРТА СБЕР: 5336 6900 6775 7700
ПОДДЕРЖАТЬ (ежемесячно): https://www.youtube.com/majortomworkshop/join
https://boosty.to/majortom
https://news.1rj.ru/str/majortomworkshop
ЗАКАЗАТЬ Футболку, Кепку, Аксессуары…
КАРТА СБЕР: 5336 6900 6775 7700
ПОДДЕРЖАТЬ (ежемесячно): https://www.youtube.com/majortomworkshop/join
https://boosty.to/majortom
https://news.1rj.ru/str/majortomworkshop
ЗАКАЗАТЬ Футболку, Кепку, Аксессуары…
== Какой вклад внесло функциональное программирование в современные языки
https://habr.com/ru/company/typeable/blog/589257/
https://habr.com/ru/company/typeable/blog/589257/
Хабр
Какой вклад внесло функциональное программирование в современные языки?
Современные языки программирования обладают большим набором разнообразных средств и удобных фишек, что позволяет писать совершенно разный код на одном и том же языке для одной и той же задачи....
== CPU limits and aggressive throttling in Kubernetes
https://medium.com/omio-engineering/cpu-limits-and-aggressive-throttling-in-kubernetes-c5b20bd8a718
- A primer on containers & kubernetes
- How CPU request and limit is implemented
- How CPU limit works in multi-core environments
- How do you monitor CPU throttling
- How do you recover
https://medium.com/omio-engineering/cpu-limits-and-aggressive-throttling-in-kubernetes-c5b20bd8a718
- A primer on containers & kubernetes
- How CPU request and limit is implemented
- How CPU limit works in multi-core environments
- How do you monitor CPU throttling
- How do you recover
Medium
CPU limits and aggressive throttling in Kubernetes
A deep dive into Kubernetes CPU throttling and its impact on service performance and reliability.
== Что такое быстрая USB зарядка и как она работает в современных смартфонах?
https://youtu.be/zoTYmZZWIeo
Очень толковый видос, очень много для себя узнал.
- делители напряжения для детекта режимов заряда.
- и что главное ток определяет сам смартфон а не зарядка.
- зарядка является ограничителем максимального тока
= USB PD
- USB Direct Charge
- а эппл в ЮСБ-Ц использует еще 2 сигнальных провода для того что бы сам ноут мог бы управлять током и напряжением
- самсунг наоборот использует другие 2 пина. веселуха
== Как работает DC-DC преобразователь напряжения с накопительным дросселем - Buck Converter?
https://youtu.be/Ly-rezvQI5U
https://youtu.be/zoTYmZZWIeo
Очень толковый видос, очень много для себя узнал.
- делители напряжения для детекта режимов заряда.
- и что главное ток определяет сам смартфон а не зарядка.
- зарядка является ограничителем максимального тока
= USB PD
- USB Direct Charge
- а эппл в ЮСБ-Ц использует еще 2 сигнальных провода для того что бы сам ноут мог бы управлять током и напряжением
- самсунг наоборот использует другие 2 пина. веселуха
== Как работает DC-DC преобразователь напряжения с накопительным дросселем - Buck Converter?
https://youtu.be/Ly-rezvQI5U
YouTube
Что такое быстрая USB зарядка и как она работает в современных смартфонах?
ПОДДЕРЖАТЬ КАНАЛ (ЮMoney): https://musicboy.ru/majortomworkshop
КАРТА СБЕР: 5336 6900 6775 7700
ПОДДЕРЖАТЬ (ежемесячно): https://www.youtube.com/majortomworkshop/join
https://boosty.to/majortom
https://news.1rj.ru/str/majortomworkshop
ЗАКАЗАТЬ Футболку, Кепку, Аксессуары…
КАРТА СБЕР: 5336 6900 6775 7700
ПОДДЕРЖАТЬ (ежемесячно): https://www.youtube.com/majortomworkshop/join
https://boosty.to/majortom
https://news.1rj.ru/str/majortomworkshop
ЗАКАЗАТЬ Футболку, Кепку, Аксессуары…
Forwarded from DevBrain
2 классные python батарейки для реализации retry-механизма:
— Tenacity, https://github.com/jd/tenacity
— backoff, https://github.com/litl/backoff/
— Tenacity, https://github.com/jd/tenacity
— backoff, https://github.com/litl/backoff/
GitHub
GitHub - jd/tenacity: Retrying library for Python
Retrying library for Python. Contribute to jd/tenacity development by creating an account on GitHub.
== Частота, тайминги, ранги, каналы, чипы. Самый полный гайд.
https://youtu.be/1Chc21etvqI
14-15-14-34 = это колличество тактов
tCL - tRCD - tRP - tRAS
tCL - задержка между выбором столбца и началом передачи данных
tCRD - задержка между активацией строки и выбором столбца
tRP - задержка на зарядку строки командой precharge и активацией новой строки
tRAS задержка между активацией строки и срабатывание команды на подзарядку PRECHARGE
SAMSUNG B-DIE самый раскачиваемый чип памяти
двухранговая память это по факту два виртуальных модулей на одной плате - 10%-20% быстрей. дороже. не гонится
T-TOPOLOGY (параллельная адресация) - лучше работают с 4мя модулями, хуже с двумя
DAISY-CHAIN (последовательная адресация) - лучше с двумя и хуже с 4мя модулями
действительно самый полный гайд что находил)
https://youtu.be/1Chc21etvqI
14-15-14-34 = это колличество тактов
tCL - tRCD - tRP - tRAS
tCL - задержка между выбором столбца и началом передачи данных
tCRD - задержка между активацией строки и выбором столбца
tRP - задержка на зарядку строки командой precharge и активацией новой строки
tRAS задержка между активацией строки и срабатывание команды на подзарядку PRECHARGE
SAMSUNG B-DIE самый раскачиваемый чип памяти
двухранговая память это по факту два виртуальных модулей на одной плате - 10%-20% быстрей. дороже. не гонится
T-TOPOLOGY (параллельная адресация) - лучше работают с 4мя модулями, хуже с двумя
DAISY-CHAIN (последовательная адресация) - лучше с двумя и хуже с 4мя модулями
действительно самый полный гайд что находил)
== Inductive bias и нейронные сети
https://telegra.ph/Inductive-bias-i-nejronnye-seti-1-11-09
Inductive bias — это априорные знания о природе данных, которые человек некоторым образом вкладывает в модель машинного обучения.
сделать модель без inductive bias в принципе невозможно
https://telegra.ph/Inductive-bias-i-nejronnye-seti-1-11-09
Inductive bias — это априорные знания о природе данных, которые человек некоторым образом вкладывает в модель машинного обучения.
сделать модель без inductive bias в принципе невозможно
Telegraph
Inductive bias и нейронные сети
В этой статье я расскажу, что такое inductive bias, зачем он нужен и где встречается в машинном обучении. Спойлер: везде. Любая нейросеть имеет inductive bias (даже та, что в человеческом мозге, хе-хе) Также вы узнаете: почему inductive bias — это очень хорошо…
== От RS232 до USB
https://youtu.be/46mumUSiIXA
- RS232 четкие значения напряжения для нуля и единицы. до 15метров
- RS422 дифференциальная пара, имеет значение только разница потенциалов. до 5км.
- USB-- до 127 устройств . полудуплекс
- USB 2.0 увеличена скорсть
- USB 3.0 Полный дуплекс!
- USB-C более продуманная версия и более технологичная чем 3.0
== RS232. Теория
https://youtu.be/BTDYAvUEFV8
https://youtu.be/46mumUSiIXA
- RS232 четкие значения напряжения для нуля и единицы. до 15метров
- RS422 дифференциальная пара, имеет значение только разница потенциалов. до 5км.
- USB-- до 127 устройств . полудуплекс
- USB 2.0 увеличена скорсть
- USB 3.0 Полный дуплекс!
- USB-C более продуманная версия и более технологичная чем 3.0
== RS232. Теория
https://youtu.be/BTDYAvUEFV8
YouTube
От RS232 до USB
Иногда кажется невероятным как у крайне непохожих друг на друга интерфейсов передачи данных находятся родственные связи.
Интерфейс RS232: https://youtu.be/BTDYAvUEFV8
Статьи на Пульс: https://pulse.mail.ru/source/3768777279273129127/
Интерфейс RS232: https://youtu.be/BTDYAvUEFV8
Статьи на Пульс: https://pulse.mail.ru/source/3768777279273129127/