Tuesday, September 07, 2004

Servlet tips: Replikasi HttpSession pada lingkungan distributed web application

Dari artikel: Java theory and practice: State replication in the Web tier

Beberapa web application server (servlet container) yang mensupport clustering atau melakukan replikasi data user (yang biasa disimpan pada session) dengan melakukan serializing objek yang berada di HttpSession yang kemudian ditransfer ke node cluster yang bersangkutan sehingga node tersebut dapat melakukan pemrosesan tersendiri terhadap request dari client. Begitu pula pada sistem load balancing.

Ada tiga pendekatan (cara) replikasi objek session yaitu dengan :
- JDBC-based replication
- File-based replication
- Memory-based replication

untuk memilih opsi mana yang akan kita pilih memperhitungkan/membandingkan cost yang dibutuhkan dari ketiga cara tersebut (web application server yang bagus biasanya mensupport 3 cara replikasi tersebut).

Beberapa tips untuk meningkatkan performansi:
  • Buatlah objek yang disimpan di session seminimal mungkin.
  • Jangan mem-by-pass setAttribute(). Jika kita telah merubah objek pada session lakukan setAttibute() untuk menyimpannya kembali di session, kalau tidak data perubahan tidak akan tersimpan.
  • Gunakan fined-grained object (object yang kecil) yang akan disimpan di atribut session. Ini akan mempercepat proses serializing objek saat di replikasi.
  • Jika tidak digunakan lagi segera invalidate objek. Ini akan menghemat memori karena object tidak menunggu dihilangkan saat session timeout.
  • Usahakan session tetap bersih. Buang session jika tidak lagi diperlukan, sehingga tidak ada lagi yagn perlu di replikasi.

No comments:

Followers