Project:
| View Revisions: Issue #37115 | [ All Revisions ] [ Back to Issue ] | ||
| Summary | 0037115: HQL constant parsing causes contention | ||
| Revision | 2017-10-19 14:13 by alostale | ||
| Description | With high concurrency contention at JVM level occurs when Hibernate is creating AST tree for queries at
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:187)
at org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:266)
This is caused because HQL allows to include Java constant values, to determine whether a token is or not a constant it performs a classForName whenever it includes a dot, which finally reaches a synchronized block causing this contention. More info here [1]. This is a Hibernate issue HHH-4959 that's fixed starting from 5.2.6 and HHH-11377 (5.2.7). --- [1] https://vladmihalcea.com/2016/12/14/the-performance-penalty-of-class-forname-when-parsing-jpql-and-criteria-queries/ [^] |
||
| Revision | 2017-10-19 14:12 by alostale | ||
| Description | With high concurrency contention at JVM level occurs when Hibernate is creating AST tree for queries at
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:187)
at org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:266)
This is caused because HQL allows to include Java constant values, to determine whether a token is or not a constant it performs a classForName whenever it includes a dot, which finally reaches a synchronized block causing this contention. More info [[https://vladmihalcea.com/2016/12/14/the-performance-penalty-of-class-forname-when-parsing-jpql-and-criteria-queries/ [^] |here]]. This is a Hibernate issue HHH-4959 that's fixed starting from 5.2.6 and HHH-11377 (5.2.7). |
||
| Revision | 2017-10-19 14:09 by alostale | ||
| Description | With high concurrency contention at JVM level occurs when Hibernate is creating AST tree for queries at
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:187)
at org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:266)
This is caused because HQL allows to include Java constant values, to determine whether a token is or not a constant it performs a classForName whenever it includes a dot, which finally reaches a synchronized block causing this contention. More info here [1]. This is a Hibernate issue HHH-4959 that's fixed starting from 5.2.6 and HHH-11377 (5.2.7). --- [1] https://vladmihalcea.com/2016/12/14/the-performance-penalty-of-class-forname-when-parsing-jpql-and-criteria-queries/ [^] |
||
| Revision | 2017-10-19 14:07 by alostale | ||
| Description | With high concurrency contention at JVM level occurs when Hibernate is creating AST tree for queries at
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:187)
at org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:266)
This is caused because HQL allows to include Java constant values, to determine whether a token is or not a constant it performs a classForName whenever it includes a dot, which finally reaches a synchronized block causing this contention. This is a Hibernate issue HHH-4959 that's fixed starting from 5.2.6 and HHH-11377 (5.2.7). |
||
| Revision | 2017-10-19 13:12 by alostale | ||
| Description | With high concurrency contention at JVM level occurs when Hibernate is creating AST tree for queries at
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:187)
at org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:266)
This is caused because HQL allows to include Java constant values, to determine whether a token is or not a constant it performs a classForName which finally reaches a synchronized block causing this contention. This is a Hibernate issue HHH-4959 that's fixed starting from 5.2.6 and HHH-11377 (5.2.7). |
||
| Revision | 2017-10-19 13:11 by alostale | ||
| Description | With high concurrency contention at JVM level occurs when Hibernate is creating AST tree for queries at
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:187)
at org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:266)
This is caused because HQL allows to include Java constant values, to determine whether a token is or not a constant it performs a classForName which finally reaches a synchronized block causing this contention. This is a Hibernate issue HHH-4959 that's fixed starting from 5.2.6 and HHH-11377 (5.2.7). |
||
| Copyright © 2000 - 2009 MantisBT Group |