Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
12.1.3 Hidden Gems
Harvey Raja ConsulFng Member Technical Staff Fusion Middleware, Coherence Month 07, 2014
Oracle ConfidenFal – Internal/Restricted/Highly Restricted
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement The following is intended to outline our general product direcFon. It is intended for informaFon purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or funcFonality, and should not be relied upon in making purchasing decisions. The development, release, and Fming of any features or funcFonality described for Oracle’s products remains at the sole discreFon of Oracle.
Note: The speaker notes for this slide include instrucFons for when to use Safe Harbor Statement slides.
Tip! Remember to remove this text box.
Oracle ConfidenFal – Internal/Restricted/Highly Restricted 3
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
DeserializaFon Accelerator
Asynchronous Index Build
Guardian stats
Project Shrapnel
Asynchronous EntryProcessors
Pop the hood…
1
2
3
4
5
Oracle ConfidenFal – Internal/Restricted/Highly Restricted 4
6
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
DeserializaFon Accelerator
• Anybody want ObjectLocalBackingMap?
• Hold deserialized value in MapIndex
• ReflecFonExtractor queries (BinaryEntry.getValue) will use deserialized value
• OpFmized MapIndex implementaFon Oracle ConfidenFal – Internal/Restricted/Highly Restricted 5
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Asynchronous Index Maintenance
• ParFFon Transfer blocks access to the parFFon for the window of transfer
• Pre 12.1.3 this included updated MapIndex with the newly owned entries
• 12.1.3 MapIndex is updated asynchronously by a thread in the pool
• Query request waits unFl index update job completes
Oracle ConfidenFal – Internal/Restricted/Highly Restricted 6
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle ConfidenFal – Internal/Restricted/Highly Restricted 7
C
NamedCache.get(K)
Build Index
NamedCache.get(K)
NamedCache.get(K)
Synchronous Index Update
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle ConfidenFal – Internal/Restricted/Highly Restricted 8
Asynchronous Index Update
C
NamedCache.get(K)
Build Index
NamedCache.get(K)
NamedCache.get(K)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Guardian Improvements • Public Guardian
• JMX StaFsFcs:
Oracle ConfidenFal – Internal/Restricted/Highly Restricted 9
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Shrapnel • ParFalResultAggregator – Single invocaFon of aggregateParFalResults per member
• NamedCache.putAll/invokeAll -‐> CacheStore.storeAll
• Deadlock avoidance – Always were able to detect – Tried to prevent – Now avoid
Oracle ConfidenFal – Internal/Restricted/Highly Restricted 10
• Service Quiesce
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
DeserializaFon Accelerator
Asynchronous Index Build
Guardian stats
Project Shrapnel
Asynchronous EntryProcessors
Pop the hood…
Oracle ConfidenFal – Internal/Restricted/Highly Restricted 11
5
1
3
4
6
2
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Entry Processors
• Avoids lock(K), get(K), mutate(V), put(K, V), unlock(K)
• Executed on the member that owns K
• Possible to be invoked with a CollecFon<K> or a Filter (Predicate)
• Allow features such as ParFFon Lite TransacFons
Oracle ConfidenFal – Internal/Restricted/Highly Restricted 12
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Entry Processors
• Are the steps in a processing pipeline parallelizable?
• If so the answer is simple:
Oracle ConfidenFal – Internal/Restricted/Highly Restricted 13
A B EP C D
A
B
EP
C
D
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Entry Processors
• As of 12.1.3 OOTB we provide an AsynchronousProcessor
• Wrapper processor
• AsynchronousProcessor extends AsyncAgent implements Future
• Can specify – Unit of Order {default: Thread.getId()} – AutomaFc Flow Control {default: true}
Oracle ConfidenFal – Internal/Restricted/Highly Restricted 14
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle ConfidenFal – Internal/Restricted/Highly Restricted 15