Thursday, March 19, 2009

OpenJPA: Olmadi

OpenJPA testlerini yaparken baytkodlari tekrar islemden gecirdigini (enhance) ve bunu derleme zamaninda yapmamizi bekledigini farkettim. Hibernate bunu islem aninda (dinamik olarak) yapiyor. Bu enhance isi bana bir zamanlarin JDO'su ve Kodo'yu hatirlatti; baktim bu projelerden adamlar OpenJPA'ye gecmisler. Isin asli belli oldu. OpenJPA: OUT. Slice Hibernate ile kullanilabilirse ne ala (pek zannetmiyorum), yoksa Shards'i JPA usulu kullanmanin bir yolunu bulacagiz. Aslinda Shards projesi bunun farkinda ve uzerinde calisiyor. Doc'ta soyle demisler:

"Many of you will quickly realize that the configuration mechanism we've provided won't work if you're configuring your SessionFactory via JPA. It's true. We expect this deficiency to be addressed shortly."

Bu durumda bizim yapacagimiz, obje mimarimizi, semamizi sharding kavramina hazir hale getirmek ve Shards JPA destegini ekler eklemez ona gecmek. Teknolojinin en uc noktasinda (bleeding edge) olmak boyle bir sey. Hareketli bir hedefle calismayi ogrenmek gerekiyor.

4 comments:

Melih Birim said...

Tamam güzelde, şimdi ben anlamadım Slice OpenJPA'a da işe yaramıyor mu? Bunu mu demek istedin Burak? Yoksa Hibernate ile Shade'e mi döneceğiz artık bu işlemler için?

Burak Bayramli said...

Slice, OpenJPA ile ise yariyor. Ben sadece OpenJPA'in baytkod manipulasyonu yapmasi sebebiyle hem ondan hem de sonuc olarak Slice'dan vazgectim. Ikisi paket olarak geliyorlar cunku.

Su anda secenekler, Hibernate ve Shards, ya da evde pisirilecek bir tur cozum. MySQL Proxy ile denemelerimiz suruyor, orada gelecek var. Shards'i begenmeyenler ama hala Java bazli cozum isteyenler icin Hibernate'in kodlari ile oynamak ve alternatif cozumler uretmek mumkun. Benim aklima gelen bir fikir, HB'in DB connection'larini kullanan kisminda biraz takla atarak, verinin icerigine bakip, istenen connection'a yonlendirme yapmak. Shards bunu SessionFactory uzerinden yapiyor.

Melih Birim said...

Evet Burak, yazdığın çözümler doğru ve mantıklı, sanırım biraz daha beklemek gerekecek. Şu anda zaten mysql proxy gibi bir inhouse programla bu işlemi yapıyoruz ama kütüphaneler gelirsi işlemler değişebilir tabiki.

Burak Bayramli said...

Melih Bey, biz anahtar-deger teknigini baz alan yeni bir DB'ye gectik; MySQL Proxy icin gelistirme yapacak eleman bulma zorlugu bir yana, oteki cozumleri de beklemek istemedik.

Gelseler de bir katman daha getirmeleri acisindan bize pek uygun gelmedi. Bizim cozum Voldemort ve Katta kullanan kumelenmis JBoss iceren bir cozum olacak.

http://sayilarvekuramlar.blogspot.com/2009/03/proje-voldemort-ii.html

http://sayilarvekuramlar.blogspot.com/2009/03/proje-voldemort-i.html