| 
 | 
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Смотрите господа и товарищи Есть таблица и есть желание получать из нее количество записей- назовем ето счетчиком собственно выглядит все просто - берем селект каунт и записываем значение в дто но каждый раз делать такие селекты я не хочу ,поэтому я кеширую этот счетчик и тут вопрос нужна ли тут тред сейф коллекция - concurrentHashMap,если значение все равно выгребается из бд,а как я понимаю на стороне бд с тред сейвом все норм .Счетчик инвалидируется при новой записи/удалении,но как я понял из документации метод put все равно будет не синхронизирован и два потока смогут теоретически записать в какой то момент одинаковые ключи поэтому вопрос философский тут больше - наверно все таки тред сейф колекция тут будет бесполезна без synhronized блоков стоит отметить что этот метод дергается контроллером - контроллер обычный ,не реактивный. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 18:09 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, зачем тебе коллекция-то? Несколько счетчиков чтоли? https://www.pixelstech.net/article/1585457836-Why-accessing-Java-HashMap-may-cause-infinite-loop-in-concurrent-environment ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 18:26 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, В чем проблема? Ну пишите/читайте значения кеша в synchronize блоке. А так зачем изобретать велосипед, когда в Spring есть аннотации для кеширования?! @Cacheable <:o) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 18:36 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Андрей Панфилов asv79, зачем тебе коллекция-то? Несколько счетчиков чтоли? https://www.pixelstech.net/article/1585457836-Why-accessing-Java-HashMap-may-cause-infinite-loop-in-concurrent-environment да,это грубо говоря группа - а счетчик - количество человек в ней.А групп там много и на каждую нужно отображать текущее количество человек в ней. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 18:47 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  mad_nazgul asv79, В чем проблема? Ну пишите/читайте значения кеша в synchronize блоке. А так зачем изобретать велосипед, когда в Spring есть аннотации для кеширования?! @Cacheable <:o) Я чо то не оддуплил как тут @Cacheble прикрутить ,но я пытался ,щас попробую еще раз) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 18:49 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, Нужно чтобы правильно работали транзакции в многопользовательской среде. - юзверь А добавил 3 товара но не закоммитил - юзверь Б удалил 10 товаров. Сколько счетчик? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 18:55 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp asv79, Нужно чтобы правильно работали транзакции в многопользовательской среде. - юзверь А добавил 3 товара но не закоммитил - юзверь Б удалил 10 товаров. Сколько счетчик? так как источником правды у нас является бд,то товаров будет -10 транзакции работают правильно и с этим все норм ,меня интересует лишь вопрос какую мапу использовать конкуретную - но в ней один хрен пут/гет не конкурентны либо обычную ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 18:59 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, Если ничего не трогать, то действительно, бери себе из бд В ЛЮБОМ ПОТОКЕ твой count и никаких ошибок. За этим следит СУБД. А вот раз ты придумал велосипед, то много чего надо продумать. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 18:59 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 PetroNotC Sharp asv79, Нужно чтобы правильно работали транзакции в многопользовательской среде. - юзверь А добавил 3 товара но не закоммитил - юзверь Б удалил 10 товаров. Сколько счетчик? так как источником правды у нас является бд,то товаров будет -10 транзакции работают правильно и с этим все норм ,меня интересует лишь вопрос какую мапу использовать конкуретную - но в ней один хрен пут/гет не конкурентны либо обычную Странный вопрос. Мапа это Key=value А count ОДНО ЧИСЛО. Причем мапа? У тебя всегда мысли бегут впереди рта. Ты еще все всем тут не объяснил и думаешь что все все поняли. Счас ddl начну просить)))) Чем запрос не устроил? Он ВСЕГДА актуальный? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:05 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp asv79, Если ничего не трогать, то действительно, бери себе из бд В ЛЮБОМ ПОТОКЕ твой count и никаких ошибок. За этим следит СУБД. А вот раз ты придумал велосипед, то много чего надо продумать. почему же велосипед? вполне себе нормальная практика- зачем мне ,если я точно знаю,что состояние не менялось - делать лишний запрос в бд- это дорого очень кеширование тут само собой напрашивается ,вопрос лишь в реализации ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:05 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp asv79 пропущено... так как источником правды у нас является бд,то товаров будет -10 транзакции работают правильно и с этим все норм ,меня интересует лишь вопрос какую мапу использовать конкуретную - но в ней один хрен пут/гет не конкурентны либо обычную Странный вопрос. Мапа это Key=value А count ОДНО ЧИСЛО. Причем мапа? У тебя всегда мысли бегут впереди рта. Ты еще все всем тут не объяснил и думаешь что все все поняли. Счас ddl начну просить)))) Чем запрос не устроил? Он ВСЕГДА актуальный? петро ты опять не прочитал тему- счетки идут на группы в которых есть люди) групп много ,соотвественно ключом мапы является id группы,значением счетчик ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:06 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, >так как источником правды у нас является бд,то товаров будет -10 = угу. А в кеше ппотухшем не - 10 ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:06 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 PetroNotC Sharp asv79, Если ничего не трогать, то действительно, бери себе из бд В ЛЮБОМ ПОТОКЕ твой count и никаких ошибок. За этим следит СУБД. А вот раз ты придумал велосипед, то много чего надо продумать. почему же велосипед? вполне себе нормальная практика- зачем мне ,если я точно знаю,что состояние не менялось - делать лишний запрос в бд- это дорого очень кеширование тут само собой напрашивается ,вопрос лишь в реализации ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:09 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 PetroNotC Sharp пропущено... Странный вопрос. Мапа это Key=value А count ОДНО ЧИСЛО. Причем мапа? У тебя всегда мысли бегут впереди рта. Ты еще все всем тут не объяснил и думаешь что все все поняли. Счас ddl начну просить)))) Чем запрос не устроил? Он ВСЕГДА актуальный? петро ты опять не прочитал тему- счетки идут на группы в которых есть люди) групп много ,соотвественно ключом мапы является id группы,значением счетчик ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:10 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp asv79, >так как источником правды у нас является бд,то товаров будет -10 = угу. А в кеше ппотухшем не - 10 так чтобы он не протухал его надо инвалидировать при инсерт/делете ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:10 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp asv79 пропущено... почему же велосипед? вполне себе нормальная практика- зачем мне ,если я точно знаю,что состояние не менялось - делать лишний запрос в бд- это дорого очень кеширование тут само собой напрашивается ,вопрос лишь в реализации состояние меняется при каждой транзакции- если был апдейт/делит ,ты верно уловил направление - но эти инсерты делаются батчем в рамках одной транзакции - тоесть если накинули 1 к - то и счетчки вырастет на 1к и на методах инсерта /делета у меня этот кеш инвалидируется - так что тут все в порядке ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:15 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 PetroNotC Sharp asv79, >так как источником правды у нас является бд,то товаров будет -10 = угу. А в кеше ппотухшем не - 10 так чтобы он не протухал его надо инвалидировать при инсерт/делете Как? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:15 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, Ты явно забыл про пакетный insert и каскад)))) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:17 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp asv79 пропущено... петро ты опять не прочитал тему- счетки идут на группы в которых есть люди) групп много ,соотвественно ключом мапы является id группы,значением счетчик не тормоза мне не нужны- с мапой все работает супер быстро ,тут вопрос лишь в конкуретности ,сейчас у меня там конкарент мапа- я думаю нужна ли она мне ,если верить докам некторые из ее методов не трейд сейф,хотя работает она так же быстро ,как и обычная мапа ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:17 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, > с мапой все работает супер быстро , = но протухает и нет конкурентного доступа)))) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:19 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, Возьми готовое. Кеш второго уровня хибера ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:21 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp asv79, > с мапой все работает супер быстро , = но протухает и нет конкурентного доступа)))) но запись неконкурента я не хочу тащить в код синхронайзед блоки ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:25 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, Я спросил как он не протухает на insert into from (select....) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:27 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp asv79, Возьми готовое. Кеш второго уровня хибера у нас хелелькаст на проекте ,но не хочу туда простой счетчик писать - я думаю что для этого подойдет именно хешмапа - самое дешевое и быстрое решение ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:29 | 
  
  
  
   | 
||
| 
 
Тема чтобы потрындеть 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp asv79, Я спросил как он не протухает на insert into from (select....) я ж тебе ответил на методах инсерта /делита кеш инвалидируется тоесть я заново делают селект каунт и пучу это в мапу - перезаписывая текущее значение но надо понимать что такие манипуляции у нас достаточно редки ,в основном идет запрос на получение и вот тут кеш и будет работать ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.06.2021, 19:32 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=59&msg=40079947&tid=2120411]:  | 
    0ms | 
get settings:  | 
    9ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    63ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    54ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 10ms | 
| total: | 171ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...