RFR (S) CR 8014966: Add the proper Javadoc to @Contended (original) (raw)
Aleksey Shipilev aleksey.shipilev at oracle.com
Fri May 31 15:44:10 UTC 2013
- Previous message: RFR (S) CR 8014966: Add the proper Javadoc to @Contended
- Next message: RFR (S) CR 8014966: Add the proper Javadoc to @Contended
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Peter,
On 05/31/2013 11:33 AM, Peter Levart wrote:
Implementation issues aside, the name of the tag specified in the @Contended annotation could be evaluated in the context of the fully qualified class name in which the annotation is used. For example:
I thought about implying the fully-qualified names for the tags; but that only makes sense if we allow tag inheritance, and we don't.
When the tag contained at least one dot, it would be interpreted as fully qualified, otherwise as a simple name.
Ugh. Messy... :)
Implementation could allow one of the contention groups to be used in a "global" context on the boundary of superclass/subclass, but which one is the one, would have to be anticipated and explicitly or implicitly noted on the superclass, so that the layout logic could group those fields at the end of object as soon as the superclass is loaded.
We do something like that for normal oops layout, so that we have the contiguous oops region on the superclass/subclass boundary. This is the corner case though, which does not scale beyond just two classes. I think this case is superficial corner case, and does not deserve the treatment.
Anyhow, the contended tags are just the hints within the hint: we communicate that particular fields can be grouped together if implementation thinks that is a good idea. The way @C is spec'ed now, we might even ignore the tags at all and pad the fields distinctively, i.e. we say those fields are not required to be isolated pair-wise with any field in the group, but only with all other contended groups and fields.
Having said that, I should probably add the sentence in the docs, like this:
"A contention group defines a set of one or more fields that collectively must be isolated from all other contention groups. [The fields in the same contention group may not be pair-wise isolated]".
I don't know if this is useful anyway. Could a superclass correctly anticipate the "global" group in some situations?
I think what is being proposed for @C to work across the hierarchy is the overkill, handles no useful cases, but bears the significant development cost to do. That's the recipe for saying "nope!" :) Don't try to turn @Contended into the swiss army knife field layout hint. It is not.
-Aleksey.
- Previous message: RFR (S) CR 8014966: Add the proper Javadoc to @Contended
- Next message: RFR (S) CR 8014966: Add the proper Javadoc to @Contended
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]