From 8e1acc3a0f09a8c40d351d56e2f23b75cb07d03c Mon Sep 17 00:00:00 2001 From: Martin Goik <goik@hdm-stuttgart.de> Date: Fri, 9 Jan 2015 08:17:38 +0100 Subject: [PATCH] EhCache config --- Sda2/Ref/Fig/jpacache.svg | 716 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 686 insertions(+), 30 deletions(-) diff --git a/Sda2/Ref/Fig/jpacache.svg b/Sda2/Ref/Fig/jpacache.svg index 55d2f2890..66e029d1f 100644 --- a/Sda2/Ref/Fig/jpacache.svg +++ b/Sda2/Ref/Fig/jpacache.svg @@ -28,7 +28,7 @@ inkscape:cx="526.18109" inkscape:cy="372.04724" inkscape:document-units="px" - inkscape:current-layer="layer12" + inkscape:current-layer="layer15" showgrid="true" inkscape:window-width="1920" inkscape:window-height="1176" @@ -2875,7 +2875,7 @@ inkscape:groupmode="layer" id="layer12" inkscape:label="Controlling the cache" - style="display:inline"> + style="display:none"> <text xml:space="preserve" style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans" @@ -2900,39 +2900,685 @@ y="153.30226">EntityManagerFactory factory = ...;</tspan><tspan sodipodi:role="line" x="49.172424" - y="175.80226" + y="188.30226" id="tspan6406">javax.persistence.Cache jpaL2Cache = factory.getCache();</tspan><tspan sodipodi:role="line" x="49.172424" - y="198.30226" - id="tspan6408"> </tspan><tspan + y="223.30226" + id="tspan6408" /><tspan sodipodi:role="line" x="49.172424" - y="220.80226" + y="258.30225" id="tspan6410">jpaL2Cache.evict(<tspan - style="fill:#aa0000;font-size:28px" + style="font-size:28px;fill:#aa0000" id="tspan6420">Employee.class</tspan>, <tspan - style="fill:#d40000;font-size:28px" + style="font-size:28px;fill:#d40000" id="tspan6422">new Long(1)</tspan>);</tspan><tspan sodipodi:role="line" x="49.172424" - y="243.30226" - id="tspan6412"> </tspan><tspan + y="293.30228" + id="tspan6412" /><tspan sodipodi:role="line" x="49.172424" - y="265.80225" + y="328.30228" id="tspan6414">jpaL2Cache.evict(<tspan - style="fill:#d40000;font-size:28px" + style="font-size:28px;fill:#d40000" id="tspan6424">Employee.class</tspan>);</tspan><tspan sodipodi:role="line" x="49.172424" - y="288.30225" - id="tspan6416"> </tspan><tspan + y="363.30228" + id="tspan6416" /><tspan sodipodi:role="line" x="49.172424" - y="310.80225" + y="398.30228" id="tspan6418">jpaL2Cache.evictAll();</tspan></text> </g> + <g + inkscape:groupmode="layer" + id="layer13" + inkscape:label="Hibernate supported Cache implementations" + style="display:none"> + <text + xml:space="preserve" + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans" + x="10" + y="44.094482" + id="text3278-3-4-0-8-1-9-7" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3280-5-4-5-5-2-9-9" + x="10" + y="44.094482">Hibernate supported Cache implementations</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:sans;-inkscape-font-specification:sans" + x="10" + y="164.09448" + id="text3595" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3597" + x="10" + y="164.09448" + style="font-weight:bold;font-family:Sans;-inkscape-font-specification:Sans Bold">Cache name</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:sans;-inkscape-font-specification:sans" + x="230" + y="164.09448" + id="text3599" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3601" + x="230" + y="164.09448" + style="font-weight:bold;font-family:Sans;-inkscape-font-specification:Sans Bold">Description</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" + x="20" + y="214.09448" + id="text3603" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3605" + x="20" + y="214.09448">EHCache</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" + x="20" + y="324.09448" + id="text3608" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3610" + x="20" + y="324.09448">OSCache</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" + x="20" + y="444.09448" + id="text3612" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3614" + x="20" + y="444.09448">warmCache</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" + x="20" + y="574.09448" + id="text3616" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3618" + x="20" + y="574.09448">JBoss Cache</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" + x="220" + y="214.09448" + id="text3620" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3622" + x="220" + y="214.09448">Caches in memory / on disk, supports clustered caching</tspan><tspan + sodipodi:role="line" + x="220" + y="249.09448" + id="tspan3652">and the optional Hibernate query result cache.</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" + x="220" + y="324.09448" + id="text3624" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3626" + x="220" + y="324.09448">Supports caching to memory and disk in a single JVM. </tspan><tspan + sodipodi:role="line" + x="220" + y="359.09448" + id="tspan3648">Rich set of expiration policies. Query cache</tspan><tspan + sodipodi:role="line" + x="220" + y="394.09448" + id="tspan3650">support.</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" + x="220" + y="444.09448" + id="text3628" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3630" + x="220" + y="444.09448">A cluster cache based on JGroups. It uses clustered</tspan><tspan + sodipodi:role="line" + x="220" + y="479.09448" + id="tspan3646">invalidation. No Hibernate query cache support.</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" + x="220" + y="574.09448" + id="text3632" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + x="220" + y="574.09448" + id="tspan3636">Fully transactional replicated clustered cache based on</tspan><tspan + sodipodi:role="line" + x="220" + y="609.09448" + id="tspan3638">JGroups multicast library. Supports replication or</tspan><tspan + sodipodi:role="line" + x="220" + y="644.09448" + id="tspan3640">invalidation, synchronous or asynchronous</tspan><tspan + sodipodi:role="line" + x="220" + y="679.09448" + id="tspan4630">communication, optimistic and pessimistic locking.</tspan><tspan + sodipodi:role="line" + x="220" + y="714.09448" + id="tspan3642">Supports Hibernate query cache.</tspan></text> + <flowRoot + xml:space="preserve" + id="flowRoot3654" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"><flowRegion + id="flowRegion3656"><rect + id="rect3658" + width="1026.1128" + height="509.80234" + x="12.293106" + y="218.38341" + style="font-family:Sans;-inkscape-font-specification:Sans" /></flowRegion><flowPara + id="flowPara3660"></flowPara></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot3662" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"><flowRegion + id="flowRegion3664"><rect + id="rect3666" + width="1023.9434" + height="342.0376" + x="16.631849" + y="406.39563" + style="font-family:Sans;-inkscape-font-specification:Sans" /></flowRegion><flowPara + id="flowPara3668"></flowPara></flowRoot> <rect + style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" + id="rect3670" + width="1030" + height="610" + x="10" + y="124.09448" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 210,124.09448 0,610" + id="path4584" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 10,174.09448 1030,0" + id="path4586" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 8.688732,535.65642 1029.999968,0" + id="path4586-0" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 12.304351,405.49412 1030.000049,0" + id="path4586-4" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 11.581228,285.45556 1029.999972,0" + id="path4586-43" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:sans;-inkscape-font-specification:sans" + x="419.41187" + y="506.90985" + id="text4632" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4634" + x="419.41187" + y="506.90985" /></text> + </g> + <g + inkscape:groupmode="layer" + id="layer14" + inkscape:label="Concurrency Features" + style="display:none"> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:sans;-inkscape-font-specification:sans" + x="108.46858" + y="561.86725" + id="text4639" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4641" + x="108.46858" + y="561.86725"></tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="20" + y="144.09448" + id="text4667" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4669" + x="20" + y="144.09448">Provider</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="220" + y="144.09448" + id="text4671" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4673" + x="220" + y="144.09448">Read-only</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="380" + y="144.09448" + id="text4675" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4677" + x="380" + y="144.09448">Nonstrict read-write</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="670" + y="144.09448" + id="text4679" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4681" + x="670" + y="144.09448">Read-write</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="960.30853" + y="215.49092" + id="text4683" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4685" + x="960.30853" + y="215.49092"></tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="840" + y="144.09448" + id="text4687" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4689" + x="840" + y="144.09448">Transactional</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="20" + y="184.09448" + id="text4693" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4695" + x="20" + y="184.09448">EHCache</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="20" + y="224.09448" + id="text4697" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4699" + x="20" + y="224.09448">OSCache </tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="20" + y="264.09448" + id="text4701" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4703" + x="20" + y="264.09448">SwarmCache</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="20" + y="304.09448" + id="text4705" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4707" + x="20" + y="304.09448">JBoss Cache</tspan></text> + <text + xml:space="preserve" + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans" + x="10" + y="44.094482" + id="text3278-3-4-0-8-1-9-7-3" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3280-5-4-5-5-2-9-9-2" + x="10" + y="44.094482">Cache concurrency features</tspan></text> + <rect + style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" + id="rect4730" + width="1020" + height="220" + x="10" + y="104.09448" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 210,104.09448 0,220" + id="path4732" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 10,154.09448 1020,0" + id="path4734" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 11.647114,193.86629 1019.999986,0" + id="path4734-4" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 8.0314941,234.36123 1020.0000059,0" + id="path4734-6" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 9.4777418,274.13305 1019.9999582,0" + id="path4734-1" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 370.5335,102.42005 0,220" + id="path4732-0" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 660.50618,106.03567 0,220" + id="path4732-2" + inkscape:connector-curvature="0" /> + <path + style="color:#000000;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 831.16342,102.42005 0,220" + id="path4732-8" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="280" + y="184.09448" + id="text4800" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4802" + x="280" + y="184.09448">x</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="930" + y="304.09448" + id="text4800-9" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4802-5" + x="930" + y="304.09448">x</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="730" + y="224.09448" + id="text4800-92" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4802-90" + x="730" + y="224.09448">x</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="730" + y="184.09448" + id="text4800-98" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4802-1" + x="730" + y="184.09448">x</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="480" + y="264.09448" + id="text4800-8" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4802-3" + x="480" + y="264.09448">x</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="480" + y="224.09448" + id="text4800-84" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4802-0" + x="480" + y="224.09448">x</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="480" + y="184.09448" + id="text4800-3" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4802-2" + x="480" + y="184.09448">x</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="280" + y="304.09448" + id="text4800-6" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4802-05" + x="280" + y="304.09448">x</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="280" + y="264.09448" + id="text4800-80" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4802-906" + x="280" + y="264.09448">x</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="280" + y="224.09448" + id="text4800-7" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4802-16" + x="280" + y="224.09448">x</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="20" + y="414.09448" + id="text4906" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + x="20" + y="414.09448" + id="tspan4914" + style="font-family:Sans;-inkscape-font-specification:Sans">➢ Read-write: Two transactions try modifying data</tspan><tspan + sodipodi:role="line" + x="20" + y="449.09448" + id="tspan4918" + style="font-family:Sans;-inkscape-font-specification:Sans"> ⟹isolated at "read committed"</tspan></text> + <text + xml:space="preserve" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="20" + y="524.09448" + id="text4920" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4922" + x="20" + y="524.09448" + style="font-family:Sans;-inkscape-font-specification:Sans">➢Nonstrict read-write: cache is not locked at all</tspan><tspan + sodipodi:role="line" + x="20" + y="559.09448" + id="tspan4924" + style="font-family:Sans;-inkscape-font-specification:Sans"> ⟹ no guarantee at all</tspan></text> + </g> + <g + inkscape:groupmode="layer" + id="layer15" + inkscape:label="Invalidation" + style="display:inline"> + <text + xml:space="preserve" + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans" + x="10" + y="44.094482" + id="text3278-3-4-0-8-1-9-7-3-3" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3280-5-4-5-5-2-9-9-2-6" + x="10" + y="44.094482">Invalidation</tspan></text> + <text + xml:space="preserve" + style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="70.866142" + y="132.33167" + id="text4948" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4950" + x="70.866142" + y="132.33167">➢ Time based (TTL)</tspan></text> + <text + xml:space="preserve" + style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="70" + y="194.09448" + id="text4948-4" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4950-5" + x="70" + y="194.09448">➢ LRU</tspan></text> + <text + xml:space="preserve" + style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="70" + y="254.09448" + id="text4948-4-6" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4950-5-2" + x="70" + y="254.09448">➢ LFU</tspan></text> + <text + xml:space="preserve" + style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="70" + y="324.09448" + id="text4948-4-3" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4950-5-7" + x="70" + y="324.09448">➢ FIFO</tspan></text> + <text + xml:space="preserve" + style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + x="70" + y="394.09448" + id="text4948-4-9" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4950-5-8" + x="70" + y="394.09448">➢ User defined</tspan></text> + <a + id="a5016" + xlink:href="http://ehcache.org/generated/2.9.0/html/ehc-all/index.html#page/Ehcache_Documentation_Set/co-evict_builtin_algorithms.html" + xlink:title="http://ehcache.org/generated/2.9.0/html/ehc-all/index.html#page/Ehcache_Documentation_Set/co-evict_builtin_algorithms.html"> + <text + sodipodi:linespacing="125%" + id="text5012" + y="503.29422" + x="214.76781" + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans;-inkscape-font-specification:sans" + xml:space="preserve"><tspan + y="503.29422" + x="214.76781" + id="tspan5014" + sodipodi:role="line" + style="-inkscape-font-specification:Sans;font-family:Sans">Ehcache <tspan + style="fill:#0000ff;-inkscape-font-specification:Sans;font-family:Sans" + id="tspan5020">Cache Eviction Algorithms</tspan></tspan></text> + </a> + </g> <g style="display:none" inkscape:label="Helpful links" @@ -2966,8 +3612,8 @@ y="164.09448" id="tspan6847-0">➢<tspan id="tspan7005" - style="stroke:#0000ff">Pitfalls of the Hibernate Second-Level /</tspan></tspan><tspan - style="stroke:#0000ff" + style="fill:#0000ff;stroke:#0000ff">Pitfalls of the Hibernate Second-Level /</tspan></tspan><tspan + style="fill:#0000ff;stroke:#0000ff" sodipodi:role="line" x="30" y="209.09448" @@ -2988,24 +3634,34 @@ x="36.582817" y="275.83444" id="tspan7013"><tspan - id="tspan3312" - style="stroke:#000000">➢</tspan> Hibernate: Truly Understanding the Second-Level</tspan><tspan + id="tspan3312" + style="stroke:#000000">➢</tspan><tspan + style="fill:#0000ff" + id="tspan3593"> Hibernate: Truly Understanding the Second-Level</tspan></tspan><tspan sodipodi:role="line" x="36.582817" y="320.83444" - id="tspan3264"> and Query Caches</tspan></text> + id="tspan3264" + style="fill:#0000ff"> and Query Caches</tspan></text> </a> - <text - sodipodi:linespacing="125%" - id="text7007-7" - y="364.09448" - x="40" - style="font-size:36px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans" - xml:space="preserve"><tspan - id="tspan7013-3" - y="364.09448" + <a + id="a3587" + xlink:href="https://docs.jboss.org/hibernate/orm/4.0/devguide/en-US/html/ch06.html" + xlink:show="https://docs.jboss.org/hibernate/orm/4.0/devguide/en-US/html/ch06.html"> + <text + xml:space="preserve" + style="font-size:36px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans" x="40" - sodipodi:role="line">➢ </tspan></text> + y="364.09448" + id="text7007-7" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + x="40" + y="364.09448" + id="tspan7013-3">➢ Hibernate <tspan + style="fill:#0000ff" + id="tspan3591">caching </tspan></tspan></text> + </a> </g> <script ns1:version="1.5.5" -- GitLab