kodiiing / core

Core backend for Kodiiing
Apache License 2.0
0 stars 2 forks source link

refactor: remove unecessary database transaction #25

Closed YogiPristiawan closed 12 months ago

YogiPristiawan commented 12 months ago

Closes #

📑 Deskripsi

✅ Checks

ℹ Informasi Tambahan

Menghapus database transaction yang menurut saya "tidak terlalu berguna" untuk mengurangi roundtrip (begin, query, commit or rollback) https://postgrespro.com/list/thread-id/2064946.

As @aldy505 said on https://github.com/kodiiing/core/pull/23#discussion_r1406160646 , aku mencoba menggunakan struktur table yang mirip dengan struktur table user_profile saat ini (tidak ada unique constraint pada kolom yang akan diinsert datanya) namun ternyata pada transaction ke 2 (kanan) ketika ingin insert data dengan id = 2 dan nama = 'dewi' tidak terjadi blocking. Dan ketika ke-2 transaction tersebut dicommit tidak terjadi error dan akan menambahkan 2 rows. image

Namun berbeda jika terdapat unique constraint pada kolom yang akan diinsert datanya, maka akan terjadi blocking, seperti yang terlihat pada transaction ke 2 (kanan) ketika ingin insert data dengan id = 4 dan name = 'dewi'. Transaction ke 2 (kanan) akan menunggu sampai transaction ke 1 commit atau rollback, dan akan mengembalikan success atau error. image

Menurutku, berdasarkan kasus di atas, sepertinya untuk saat ini database transaction dengan isolation level tersebut belum terlalu diperlukan karena cuman terdapat 1 operasi, dan kolom yang akan diinsert datanya tidak mengandung unique constraint.

*cmiiw ya @aldy505

codecov[bot] commented 12 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (37a3cb6) 50.25% compared to head (c94138d) 50.25%.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #25 +/- ## ======================================= Coverage 50.25% 50.25% ======================================= Files 3 3 Lines 195 195 ======================================= Hits 98 98 Misses 79 79 Partials 18 18 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.