SymbolTable::use_alternate_hashcode is intended to balance the run-time symbol table when (user-level) Java programs intentionally creates a lot of symbols with the same hash code.
However, the shared symbol table is created at CDS dump time and cannot be re-hashed during rumtime. Also, the input to the shared symbol is well-controlled, and is unlikely to get severely unbalanced enough to justify the use of the alternate hashing algorithm.
The current implementation of the shared symbol table will stop working after SymbolTable::use_alternate_hashcode is enabled at run time. Both SymbolTable::copy_compact_table and SymbolTable::lookup_shared need to be fixed.
However, the shared symbol table is created at CDS dump time and cannot be re-hashed during rumtime. Also, the input to the shared symbol is well-controlled, and is unlikely to get severely unbalanced enough to justify the use of the alternate hashing algorithm.
The current implementation of the shared symbol table will stop working after SymbolTable::use_alternate_hashcode is enabled at run time. Both SymbolTable::copy_compact_table and SymbolTable::lookup_shared need to be fixed.
- relates to
-
JDK-8150607 Clean up CompactHashtable
-
- Resolved
-