Size: a a a

2020 July 16

IB

Igor Bereza in pro.jvm
вообще вот так надо сиквенс задавать
источник

IB

Igor Bereza in pro.jvm
думаю у тебя используется хиберовский внутренний генератор
источник

N

Nick in pro.jvm
Ильдар Садыков
Всем привет!
Предусловие: PostgreSQL 11.8 && java 11 && Spring JPA 2.1 && Hibernate 5.4.3

Описание:
Для генерирования идентификаторов используются след. аннотации @GeneratedValue(strategy = GenerationType.SEQUENCE) @SequenceGenerator(allocationSize = default 50)
Шаг инкремента в БД сиквенса равен 50.
4 инстанса приложения.  

Проблема: рандомно ошибки только на проде ERROR: duplicate key value violates unique constraint "..._pkey"

Может кто сталкивался с такой проблемой
хибер и несколько инстансов? да вы экстримал
источник

ИС

Ильдар Садыков... in pro.jvm
Igor Bereza
на проде nextval у сиквенса можешь вызвать?
проверяли, там всё норм (
источник

ИС

Ильдар Садыков... in pro.jvm
Igor Bereza
вообще вот так надо сиквенс задавать
да, это если переопределять дефолтное значение 50
источник

ИС

Ильдар Садыков... in pro.jvm
Nick
хибер и несколько инстансов? да вы экстримал
вроде тут всё норм долдно быть, каждый из инстансов под себя атомарно аллоцирует по 50 идентификаторов
источник

N

Nick in pro.jvm
Ильдар Садыков
вроде тут всё норм долдно быть, каждый из инстансов под себя атомарно аллоцирует по 50 идентификаторов
Хибер и несколько инстансов априори херово работают, а уж с выделением идентификаторов думаю и подавно
источник

РН

Роман Нагаев... in pro.jvm
Ильдар Садыков
Всем привет!
Предусловие: PostgreSQL 11.8 && java 11 && Spring JPA 2.1 && Hibernate 5.4.3

Описание:
Для генерирования идентификаторов используются след. аннотации @GeneratedValue(strategy = GenerationType.SEQUENCE) @SequenceGenerator(allocationSize = default 50)
Шаг инкремента в БД сиквенса равен 50.
4 инстанса приложения.  

Проблема: рандомно ошибки только на проде ERROR: duplicate key value violates unique constraint "..._pkey"

Может кто сталкивался с такой проблемой
получение PK и инсерт в одной транзакции?
источник

N

Nick in pro.jvm
Если у кого есть опыт использования нескольких инстансов с хибером, работающих с одними и теми же данными в одинаковом режиме запись/чтение, то хотелось бы послушать были ли проблемы и какие
источник

A

Anton in pro.jvm
Nick
Если у кого есть опыт использования нескольких инстансов с хибером, работающих с одними и теми же данными в одинаковом режиме запись/чтение, то хотелось бы послушать были ли проблемы и какие
Шардировать данные возможно?
источник

ИС

Ильдар Садыков... in pro.jvm
Роман Нагаев
получение PK и инсерт в одной транзакции?
нет
источник

РН

Роман Нагаев... in pro.jvm
можно в эту сторону покопать
источник

ИС

Ильдар Садыков... in pro.jvm
Роман Нагаев
можно в эту сторону покопать
ок, спасибо
источник

N

Nick in pro.jvm
Anton
Шардировать данные возможно?
допустим да
источник

A

Anton in pro.jvm
Nick
допустим да
Так можно развести нагрузку запросов на 2 базы.
А холодный/горячий резерв уже решать с одним мастером данных.

А если без шардирования, то есть же схема с синхронизацией кеша 2го уровня, там 2 инстанса, одна база. Например с Ignite In-Memory Data Fabric  как кеш 2го уровня. (https://apacheignite-mix.readme.io/docs/hibernate-l2-cache)
Но сам это не пробовал, слишком сложно выглядит отладка такого счастья, когда проще само приложение растащить по отделтным инстансам базы.
источник

N

Nick in pro.jvm
Anton
Так можно развести нагрузку запросов на 2 базы.
А холодный/горячий резерв уже решать с одним мастером данных.

А если без шардирования, то есть же схема с синхронизацией кеша 2го уровня, там 2 инстанса, одна база. Например с Ignite In-Memory Data Fabric  как кеш 2го уровня. (https://apacheignite-mix.readme.io/docs/hibernate-l2-cache)
Но сам это не пробовал, слишком сложно выглядит отладка такого счастья, когда проще само приложение растащить по отделтным инстансам базы.
вот и я про то же, что слишком много проблем. В свое время  хватанул приколов на отладке 3 прилаг, которые в одну базу смотрели, проще было отказаться от все что связано с кешированием в хибере и перелопачивать все пересекающиеся запросы и выводить часть из них на ручной контроль
источник

y

yegor256 in pro.jvm
You need a place to host your private Java artifacts (or Rubygems, NuGet, Docker, Npm, etc.)? You can use Artifactory or Nexus, but you will most likely have to pay for them. Instead, check Artipie (I'm one of its developers and it's open source). It's in beta-testing mode now and it's free for everybody. You heard it right: you can host your private artifacts for free! However, it's for good people only. To get an account there you have to come to our chat and ask for access: @artipie
источник

AK

Alexey Kuzin in pro.jvm
На elegant objects присягу давать нужно?
источник

AK

Alexander Komarov in pro.jvm
Alexey Kuzin
На elegant objects присягу давать нужно?
надо быть готовым что из всех артефактов будут удалены утилитные классы и dto
источник

y

yegor256 in pro.jvm
жестокие вы)
источник