1 / 30

Oracle Coherence

Oracle Coherence. Nagy Péter. Történeti áttekintés. 2000 aug. – Tangosol alapítása (Massachusetts) Java, J2EE alkalmazások teljesítmény problémáinak megoldása 2001 febr. – Coherence 1.0 2005 - BEA, DataSynapse együttműködés 2007 márc. – Oracle 2008 jún. – Coherence 3.4

cerise
Download Presentation

Oracle Coherence

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Oracle Coherence Nagy Péter

  2. Történeti áttekintés • 2000 aug. – Tangosol alapítása (Massachusetts) • Java, J2EE alkalmazások teljesítmény problémáinak megoldása • 2001 febr. – Coherence 1.0 • 2005 - BEA, DataSynapse együttműködés • 2007 márc. – Oracle • 2008 jún. – Coherence 3.4 • Peer-to-peer mesh architektúra • Párhuzamos feldolgozás (JSR 236/237) • Java, .NET, C++ • Toplink, Hibernate,... • XTP ~ Coherence • JCache expert group

  3. Teljesítmény és skálázhatóság • Skálázhatóság • Cél nagy mennyiségű adat/kérés kezelése • Sok és/vagy nagy motor (scale out) • Teljesítmény • Cél a nagy sebesség • Motor felturbózása, minőségi alkatrészek(scale up) A kettőt kombinálni nem egyszerű!

  4. Alkalmazások skálázhatósága • Tervezési lépés • Nem funkcionális követelmények felderítése • Algoritmusok, adatstruktúrák • Fejlesztői felelősség, folyamatos életciklus kezelés • Tapasztalat • PoC • Tervezés hiányában: adott idő után felmerülő probléma • Nincs drop-in megoldás • Scale-up • Quick-fix megoldások • Kód review, újratervezés(!)

  5. Oracle Coherence Data Grid In-Memory Data Grid Alkalmazásban használt objektumok (Objektum orientált, ORM, CRUD) Több szerveren között megosztott konzisztens, transzparens adatréteg Kis válaszidő Nagy kapacitás Skálázhatóság (kiszámítható) Nincs szűk keresztmetszet Nagy rendelkezésre-állás Folyamatos rendelkezésre-állás Hibatűrő Nincs adatvesztés Párhuzamos és eseményvezérelt feldolgozás Java, .NET, C++ kliensek Plug into (Hibernate,Toplink) Nem csak egy egyszerű cache! Web Services Enterprise Applications Real Time Clients Data Services Oracle Coherence Data Grid Databases Web Services Mainframes

  6. Fejlesztői/telepítői oldaról • Egy szimpla könyvtár • Standard “JAR” vagy • Standard “DLL” (.Net 1.1 és 2.0) • Elérhető kiegészítések további (keret)rendszerekhez (adatbázisok, Spring, Toplink, Hibernate...) • Egyszerű felhasználás a kódban • Single System Image = Simple programming paradigm • „RemoteException” mentes „elosztott” programozás

  7. Coherence felhasználási területek Általános cache felhasználási területek: HTTP Session Caching (állapottal rendelkező alkalmazások) Oldalak, dokumentumok, stb. Alkalmazás adatok: Your Own Java Objects (YOJOs;-) Load Balancing Adat elosztás a clusteren (a konfiguráció függvényében) Párhuzamos feldolgozás Esemény alapú műveletek Adatbázis terheltség csökkentése read-through write-through (szinkron) write-behind (aszinkron) … A cache segíti az alsóbb rétegek tehermentesítését.

  8. Coherence az alkalmazás rétegben Object Relational Mapping Alkalmazás Adatbázis Relational Object Java SQL

  9. Hogyan működik a Data Grid? X ? • „Adatterítés” a clusterben lévő szervereken • Automatikus és szinkron replikáció egy másik szerverrel • Single System Image: bárhonnan bármelyik adat elérhető • A szerverek figyelik egymás állapotát • Több szerver együttműködve detektálja a hibás szervert • A működő szerverek átveszik a kieső szerepét • Folyamatos működés: leállás és adatvesztés nélkül

  10. <Insert Picture Here> Coherence Cache topológiák

  11. Lokális cache séma • Lokális cache • Direkt referencia a POJO-ra, az alkalmazás Heap-en belül • Miért: • Házilagos cache megoldások lecserélése • Kompatibilis az összetettebb Coherence topológia sémákkal, bővíthető • Hogyan: • SafeHashMap kiterjesztés (nagyobb teljesítmény, thread-safe) • Konfigurálható lejárati idők: • LFU, LRU, Hybrid (LFU+LRU), Time-based, Never, Pluggable

  12. Lokális cache séma

  13. Replikált cache séma • Brute-force megvalósításaa clusterezettcache-nek • Cél • Extra gyors olvasási teljesítmény • Megoldás • Minden résztvevő ugyanazt tartalmazza • Minimális válaszidő • Automatikus, transzparens replikáció és szinkronizáció • Konfigurálható lejárati idők : • LFU, LRU, Hybrid (LFU+LRU), Time-based, Never, Pluggable

  14. Replikált cache séma

  15. Replikált cache séma (frissítés)

  16. Replikált cache séma • Cost Per Update: ha sok a módosítás nem lehet érdemben skálázni a rendszert. • Minden résztvevőt frissíteni kell! • Cost Per Entry: mivel mindenhol minden tárolva van ezért relatíve nagy cache méret minden egyes heap-en. • Szintén skálázhatósági probléma! • Méretezés • Value = binary size (Externalizable, ExternalizableHelper) • Key ~ 30byte • Index (opcionálisan)

  17. Elosztottcache séma – Partícionált Cél: Extrém skálázhatóság Megoldás: A Cacheben tárolt adatok particionálása Transzparens maradjon Backup tárolás LineárisSkálázhatóság Konfigurálható lejárati idők: LFU, LRU, Hybrid (LFU+LRU), Time-based, Never, Pluggable

  18. Partícionáltcache séma

  19. Partícionáltcache séma (frissítés)

  20. Partícionáltcache séma Minden résztvevő lát mindenkit Legfeljebb 2-hop (ugrás) a hozzáféréskor Legfeljebb 4-hop frissítéskor Figyelmen kívűl hagyja a cluster méretét Ezért skálázható jól a Coherence! Lineáris skálázhatóság Cache tárolási és számítási kapacitásnövelhető a cluster növelésével Load-Balance a clusteren Peer-to-peerkommunikáció Nem igényel multicast kommunikációt

  21. Partícionáltcache séma

  22. Partícionáltcache séma Előnyök: Kiszámíthatóhozzáférési és frissítési idő(a cluster méretének ismeretében) Problémamentes, automatikushibafelismerés/helyreállítás A mentés lesz az elsődleges Majd az elsődleges létrehozúj mentést A Cache üzemelése alatt, párhuzamosan Cache kapacitásalineárisan nő a cluster méretével Dinamikusan, runtime skálázható Megszorítások: Mentés költsége (még így is kisebb, mint replikált esetben) Szerializáció költsége Hálózati ugrások költsége (ha nincs meg lokálisan) Létező, de közel konstans időigény a műveleteknél

  23. Közelicache séma (Lokális + partícionált) Cache of a cache Cél: Skálázható teljesítmény Partícionált megoldás sokszor hálózaton keresztüli forgalmat igényel Lokális cache (L1) az elosztott séma felett (L2) Megoldás: A lokális cache teljesítményét egyesíteni a partícionált séma kapacitásával. Konfigurálható ‘front’ és ‘back’ topológia Konfigurálható lejárati idő: LFU, LRU, Hybrid (LFU+LRU), Time-based, Never, Pluggable Koherencia: többféle cache-invalidációsstratégia.

  24. Közelicache séma

  25. Közelicache séma (frissítés)

  26. Közelicache séma(+ Storage opció)

  27. Roadmap • Oracle termékekkel történő integráció (pluggable) • SOA Suite • WebCenter • Business Intelligence • Content Management • …

  28. Demó • Cache létrehozás • Olvasás/írás • Lekérdezések • Szerializáció • Események kezelése • Feldolgozás

  29. Linkek • http://wiki.tangosol.com • http://www.oracle.com/technology/products/coherence

  30. Kérdések

More Related