180 likes | 316 Views
So you think you can scale?. Oracle Coherence i praksis OUGN vårseminar , april 2010, Øyvind Brusevold. Utfordringen. Coherence. Oracle Coherence.
E N D
So you think you can scale? Oracle Coherence i praksis OUGN vårseminar, april 2010, Øyvind Brusevold
Utfordringen Coherence
Oracle Coherence • ” Coherence provides replicated and distributed (partitioned) data management and caching services on top of a reliable, highly scalable peer-to-peer clustering protocol” • “Coherence has no single points of failure” • … eller “verdensdyresteHashMap” (from Purdy himself)
I kode importcom.tangosol.net.CacheFactory; importcom.tangosol.net.*; NamedCachecache = CacheFactory.getNamedCache(”bouvet.mycache”); Object obj = cache.get(”mykey”); ... // Gjør interessante ting med obj cache.put(”mykey”, obj);
Cache topologier • Lokal • Replikert • Distribuert ( partisjonert) • Near • Kombinerer det beste fra lokal og distribuert • Coherence*Web
Coherence konfigurasjon … <cache-mapping> <cache-name>bouvet*</cache-name> <scheme-name>near-largeback</scheme-name> </cache-mapping> … <near-scheme> <scheme-name>near-largeback</scheme-name> <scheme-ref>default-near</scheme-ref> <back-scheme> <distributed-scheme> <scheme-ref>distributed-largeback</scheme-ref> </distributed-scheme> </back-scheme> </near-scheme> …
Coherence i arkitekturen JVM 1 Session Application JVM 1 Session Application Cache JVM 2 JVM 2 CoherenceCache CoherenceCache
Nasjonale prøver • Gjennomføring av nasjonale prøver i skoleverket • 60’ elever pr. trinn. • 60’ – 100’ brukere pr uke. • Topp: ca 183’ brukere på en uke • (inkl. eksempelprøver) • Intensivt både på lesing og skriving • Samarbeid mellom Inspera og Bouvet
Inspera • InsperaContent Server • Lang historikk med Coherence • Enkel arkitektur i forhold til caching • Caching bygd inn i applikasjonen • Facade, Factory
Utfordringer • Dynamiske forespørsler • Standard web-caching er vanskelig • Minimere database-tilgang • Database-tilgang skalerer ikke særlig bra • Hotspots i applikasjonen • Tilgangskontroll • Loadbalancing
Løsninger • Caching av innhold • Må caches i jvm grunnet tilgangskontroll • Caching av privilegier • For øvrig: cache alt som kan caches! • Hotspots: Lokalt og Replikert • Cache besvarelser! • Nearcachefor elevers besvarelser. • Lagres til DB ved innlevering. • Load-balancing: • Coherence*Web og HAProxy
Coherence*Web • Eget forhåndskonfigurert cluster for sessionmanagement • Kan brukes med de fleste Servlet Containere • Et servletfilter som legger session-objektet i cache. • Modifiserer web.xml og jsp’er
Nye utfordringer! • Vi trenger mer CPU! • Ok. Bare legg til flere app-servere • Med identisk konfig så legges de automatisk til clusteret • Vi trenger mer minne! • Ok. Bare legg til flere Coherence-servere. • Legges også automatisk til clusteret. • Forutsatt at ram er tilgjengelig. • Distribuert vs. replikertcache.
Advancedstuff • Indekser • Map/reduce • Write-behind • L2 cache (hibernate, toplinketc) • Partitioning
Coherence utgaver • Standard • Enterprise • Overvåking, indeksering, write-behind • Grid • Separate clusters
Silver bullet? • Ingen silverbullet i skalering og clustering • Coherence er det nærmeste jeg har kommet!
Links • Produkt • http://www.oracle.com/technology/products/coherence/index.html • Wiki • http://coherence.oracle.com/display/COH35UG/Coherence+3.5+Home • HAProxy: • http://haproxy.1wt.eu/ • Nasjonale Prøver • http://www.udir.no/Artikler/_Nasjonale-prover/Eksempeloppgaver-til-nasjonale-prover-2009/