Mengapa Anda Tidak Boleh Menahan Koneksi DB Selama Pemanggilan LLM
Latensi AI bukan hanya waktu yang dihabiskan model untuk berpikir. Ini juga mencakup bagaimana Anda mengelola koneksi database.
Menahan koneksi DB saat menunggu LLM atau API embedding dapat menguras connection pool Anda. Pemanggilan eksternal yang lambat membuat sesi tetap terbuka jauh lebih lama dari yang seharusnya.
Saya menelusuri repo Honcho untuk melihat perbaikan mereka. Mereka mengganti satu sesi berumur panjang dengan sesi singkat yang spesifik untuk tugas tertentu.
Pola Lama
- Buka sesi DB
- Baca pengaturan pengguna
- Panggil LLM (lambat)
- Panggil API Embedding (lambat)
- Simpan hasil
- Tutup sesi DB
Pola Baru
- Buka sesi DB untuk pemeriksaan awal (pre-flight checks)
- Baca nilai yang diperlukan ke dalam variabel
- Tutup sesi DB
- Panggil API LLM dan Embedding (tidak menahan koneksi DB)
- Buka sesi DB baru yang singkat untuk menyimpan hasil
- Tutup sesi DB
Tujuannya bukan untuk meninggalkan database; melainkan untuk menjaga konsistensi transaksi tetap terpisah dari waktu tunggu jaringan.
Lima langkah untuk mengelola koneksi Anda
- Tentukan batasan konsistensi Anda.
- Ambil semua nilai yang diperlukan ke dalam variabel sebelum melakukan pemanggilan API eksternal apa pun.
- Tutup scope database.
- Lakukan tugas eksternal yang lambat.
- Buka scope penulisan baru yang singkat untuk menyimpan hasil akhir.
Catatan: Jika Anda menggunakan pgvector, pencarian berjalan di dalam database, jadi Anda harus tetap membuka sesi selama operasi tersebut.
Memperpendek masa pakai sesi meningkatkan skalabilitas, tetapi waspadai error detached-object pada ORM Anda dan pastikan data tetap konsisten di seluruh snapshot transaksi.
Sumber: https://dev.to/junhyun-dev/neurin-llm-hocul-jung-db-connectioneul-jabji-anhneun-iyu-3abg
Komunitas belajar opsional: https://t.me/GyaanSetuAi
