KamoCRM

Anggota _ hak cipta _ diterapkan hanya menulis perbedaan, dan membaca peran dalam jumlah besar

Performancekamo-shared-library
Diantar
23 September 2026 pukul 14.39 UTC
Pengarang
Kamo
Kommit
c4924af

Dua perbaikan terkait untuk HimberRightsAppliedService, keduanya dalam file yang sama: 1. * * * * * * * * * * * * * (via recalcChunk) dan * * * * * * * * * * * * * * * * * * tanpa syarat dihapus dan dimasukkan kembali setiap satu dari anggota baris-baris hak cipta, setiap kali mereka lari. Layanan SecurityService 's Anggota RightsBackfilllService memanggil jalur orglebar untuk EVERY org pada EVERY pod boot (a self-heal, by design - lihat javacdoc sendiri), dan recompute adalah idempoten: a steady-state boot re-turunan set identik. Diukur dalam pg _ stat _ pernyataan produksi: ~ 12.7M INSERT terhadap tabel baris ~ 30K-row - kira-kira 300 tabel penuh menulis ulang, satu per boot, hampir semua dari mereka menulis kembali persis apa yang sudah ada. Kedua metode sekarang diff yang baru-dihitung set terhadap apa anggota _ rights _ diterapkan sudah memegang (satu besar membaca untuk seluruh potongan) dan hanya jelas + menulis ulang anggota yang haknya sebenarnya berbeda. Sebuah boot no- op sekarang biaya satu baca dan nol menulis. KalkulaterMemberRights (inti dari kedua jalur tulis di atas dan baca saja polling Pemasyarakatan Hak Asasi Komputer pada setiap sesi menyegarkan) berjalan member.getRoles (), * * * * * * * * * * * * * * * job-title roles () / getRights () dan member.getRights () sebagai koleksi malas terpisah - ditambah satu beban malas lebih lanjut per peran yang berbeda, untuk peran hak sendiri. Tak terbatas setiap anggota. Enam ruas repositori opsional baru (MemberRoleRepositori, DepartmentRoleRepositori, Departments RightRepositori, JobTitleRoleRepositori, JobTitleRightRepositori, DimberRightRepositori - yang pertama dan terakhir sudah ada) menggantikan mereka malas beban dengan tetap, jumlah kecil dari massal query, masing-masing dengan peran apos; s hak sendiri JOIN- FETCHed. Tidak sengaja sebuah @ EntityGraph berakar di Anggota / Anggota Tim: keduanya adalah @ Inheritansi (JOINED), dan sebuah grafik entitas yang mengambil lebih lanjut Asosiasi dari entitas JOINED adalah bentuk yang tepat yang mengambil / memimpin turun dalam produksi pada Hibernasi 6.2.13 (hilang FROM - clause entry untuk tabel akar - lihat LeadAsneeRef). Setiap orang baru repositori bukan berakar di entitas CHILD (tidak ada yang membawa @ Inheritansi) dan disaring oleh ID orangtua. Ruas EntityManager dengan @ PersistenceContext dicoba pertama kali dan dibalikkan: ini diproses oleh Spring 's JPA-aware postprocessor whenever spring-orm is on the classpath, so a manually- new' d layanan dalam konteks dengan tidak ada EntityManagerFactory bean (SignginReadRetry Uji hand- rolling Spring konteks, yang latihan @ RetryOnDbKonflik melalui proksi AOP nyata) gagal BEAN CRETION Langsung. Ruas repositori pilihan menurunkan cara sama yang telah dilakukan Modelresver: @ Autowired (dibutuhkan = false) meninggalkan mereka tanpa kacang tipe itu, dan enam pembantu jatuh kembali ke jalur lazy-load asli, tidak berubah, dalam setiap tes yang ada. SesionRefreshController terus komputasi hidup (bukan dari snapshot yang bertahan) - titik akhir yang titik seluruh adalah "apa yang benar sekarang", yang secara eksplisit tidak selalu apa yang bertahan terakhir.

Semua perubahan

Seperti apa yang Anda lihat pengiriman?

Semuanya tiba di ruang kerja Anda sendiri. Mulai dengan rencana gratis dan baca halaman ini lagi dalam sebulan.

Mulai Bebas SelamanyaLihat Harga