rajat315315 opened a new issue, #6723:
URL: https://github.com/apache/jmeter/issues/6723
### Use case
### Description
In high-concurrency performance testing scenarios, global property queries
performed during active test execution (for example, through JSR223 Groovy
scripts accessing the implicit `props` object or through `${__P()}` /
`${__property()}` functions) create a global synchronization bottleneck.
`java.util.Properties` inherits directly from `java.util.Hashtable`, where
core accessors like `.get(Object)` and mutators like `.put()` are declared as
`synchronized` methods. In highly concurrent test plans (e.g. 500+ threads
executing JSR223 elements concurrently), threads end up serialization-blocked
waiting to acquire the monitor lock of the global properties instance.
### Possible solution
Introduce a subclass of `java.util.Properties` named `ConcurrentProperties`
which internally delegates read queries to a backing `ConcurrentHashMap`, while
keeping writes synchronized and in sync with the parent `Hashtable` data model.
This provides completely lock-free read lookups under concurrent scripts while
maintaining full type compatibility (`instanceof java.util.Properties`).
### Possible workarounds
_No response_
### JMeter Version
6.0.0-SNAPSHOT
### Java Version
_No response_
### OS Version
_No response_
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]