девелопня
607 subscribers
157 photos
13 videos
126 links
мой тг t.me/renatmd5
сообщество - https://t.me/flowwwgarden
Download Telegram
В какой IDE работаете, господа и дамы?
Anonymous Poll
49%
VS Code
41%
Jetbrains(Pycharm, WebStorm and etc)
4%
Vim/Emacs
4%
Cursor
2%
Свой варик в комменты
4
Лично я считаю топ 1 вариантом это джетбрейнс ПО.
Щас раскидаю:
- лучший дебагер(дебагеры от майкрасофт это ужас, а к pdb я еще не готов))))
- все из под коробочки, это же блять IDE))
- удобная работа с SSH и дев контейнерами
- не уебский интерфейс
- удобная работа с окружениями, да вс код?)?)

Да конечно есть и минусы, написано на джабе поэтому иногда тупит(решается перезапуском или чисткой кеша), и не такая гибкая штучка как ультрахайп блокнотик от микромягких.
15
заказал себе наконец то заебись петличку и свет😱
Please open Telegram to view this post
VIEW IN TELEGRAM
138🎉75
приехалоо
17
я теперь не эмо
369😢7😍3🎉21
я теперь бомж😁
2110
видос на подходе
🔥10🎉31
This media is not supported in your browser
VIEW IN TELEGRAM
🔥162
дорогие немногочисленные девочки нашего комьюнити, с праздником вас🌹🌹
Please open Telegram to view this post
VIEW IN TELEGRAM
20🥰4
ребяточки, видос каминг сун я просто заработался..
1342😢1
legenda
338🔥2
в воскресенье видос ребят
105🔥2
Forwarded from Fedkin is thinking
⚡️Cache stampede

Представим, код метода getData() выглядит так

def getData():
dataFromCache = getFromCache()
if dataFromCache:
return dataFromCache
dataFromDb = getFromDb()
updateCache(dataFromDb)
return dataFromDb


Что произойдет если два потока почти одновременно не найдут данные в кеше? Пойдут загружать из БД

А если 100 потоков?

Понять масштабы можно на таком примере:
- В кеш может поступать до 300 запросов в секунду
- Время загрузки из бд — 2 секунды

И получается, если ключ в кеше протухнет, то за первые две секунды в базу попрутся 600 параллельных тяжелых запросов. Учитывая, что из-за этих запросов БД может деградировать, запросы могут начать выполняться еще дольше

---

Что с этим делать?

1. Локи

В примере выше хорошо бы зашел double-checked locking

def getData():
dataFromCache = getFromCache()
if dataFromCache:
return dataFromCache
withLock {
dataFromCache = getFromCache()
if dataFromCache:
return dataFromCache
dataFromDb = getFromDb()
updateCache(dataFromDb)
return dataFromDb
}


Можно конечно сразу лочить, но тогда для подавляющего большинства запросов добавится лишний оверхед. А в случае дабл чека будет лочиться только когда кеш протух

2. Прогрев кеша / фоновые апдейты

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

3. Вероятностные рефреши

Есть еще техника, когда кеш обновляется с некоторой вероятностью, даже если значение еще не протухло. Это может быть полезно, если полностью прогреть кеш невозможно, но вероятность cache stampede хочется снизить

---

Пишите в комментах, что из этого используете)
15
видос ин прогресс
завоз качества будет!
94
видос мега имба, щас грузить?
167🔥2
макс саппорт!!!
чьи пацаны?
2611🔥62
следующий видос не заставит себя ждать, и вы ахуеете я обещаю
1153
сначала мужчина говорит что у него нет депрессии
а потом😭
18
пашок😭
RIP
😢29