Size: a a a

2020 June 22

AS

Alexander Shavelev in Go-go!
Roman Sharkov
не, тут singleflight отрабатывает как надо, дело в race condition’е
выше Даниель кидал гуд схему
где-то видел еще не создавать пустую ентри и лочить
а через атомик компейр и свом маркать что кто-то ее уже обновляет
источник

RS

Roman Sharkov in Go-go!
Alexander Shavelev
выше Даниель кидал гуд схему
где-то видел еще не создавать пустую ентри и лочить
а через атомик компейр и свом маркать что кто-то ее уже обновляет
дак там проблема в том, что уже на самом начале exclusive lock 🙂
источник

RC

Roman Covanyan in Go-go!
и как сюда картинку прислать?
источник

RS

Roman Sharkov in Go-go!
exclusive lock = baaad lock, slow lock
источник

с

сонная википедия... in Go-go!
Roman Covanyan
и как сюда картинку прислать?
никак, запретили
источник

RC

Roman Covanyan in Go-go!
Daniel Podolsky
жду твою
источник

RS

Roman Sharkov in Go-go!
это ооооооооооооочень медленно 🙂
источник

AS

Alexander Shavelev in Go-go!
Roman Sharkov
дак там проблема в том, что уже на самом начале exclusive lock 🙂
в теории можно заменить на рлок
а уже для обновления (в ентри будет атомик поле)
которое через компер энд своп сможет захватить только 1 горутина
источник

RC

Roman Covanyan in Go-go!
ну да ну да
источник

RC

Roman Covanyan in Go-go!
ну ка замеры в студию!
источник

DP

Daniel Podolsky in Go-go!
мы же встряли на весь fetch в локе. и выстроили фетчи в очередь
источник

@

@mr_tron in Go-go!
Roman Covanyan
и как сюда картинку прислать?
         ,_---~~~~~----._         
 _,,_,*^____      _____``*g*\"*,
/ __/ /'     ^.  /      \ ^@q   f
[  @f | @))    |  | @))   l  0 _/  
\`/   \~____ / __ \_____/    \  
 |           _l__l_           I  
 }          [______]           I  
 ]            | | |            |  
 ]             ~ ~             |  
 |                            |  
  |                           |
источник

с

сонная википедия... in Go-go!
Alexander Shavelev
выше Даниель кидал гуд схему
где-то видел еще не создавать пустую ентри и лочить
а через атомик компейр и свом маркать что кто-то ее уже обновляет
ну сихнронизировать кеш и фетчи по одному ключу отдельно
источник

RC

Roman Covanyan in Go-go!
Daniel Podolsky
мы же встряли на весь fetch в локе. и выстроили фетчи в очередь
а дальше кластеризация, но это я уже писать не буду
источник

RS

Roman Sharkov in Go-go!
Roman Covanyan
ну ка замеры в студию!
товарищ, вы предлагаете:

Lock()
http.Get()
Unlock()


вас ничего не смущает?))
источник

RC

Roman Covanyan in Go-go!
нет
источник

RC

Roman Covanyan in Go-go!
конкретно в этом месте нет
источник

DP

Daniel Podolsky in Go-go!
Roman Covanyan
а дальше кластеризация, но это я уже писать не буду
моя схема лучше :)
источник

ВС

Владимир Столяров... in Go-go!
Roman Covanyan
а дальше кластеризация, но это я уже писать не буду
Так это, Lock блокирует взятие Rlock
источник

RS

Roman Sharkov in Go-go!
Roman Covanyan
конкретно в этом месте нет
это всё-равно что запретить семье ходить в туалет, пока вы на работе)))
извиняюсь за дибильный пример)
источник