On Jun 20, 2008, at 10:41 PM, Øyvind Harboe wrote:
> - the JavaDoc explained *why* the synchronization is there and what it
> is supposed to do and how the client is supposed to use it.
From the class JavaDocs: "A synchronized list that serves as a
container of DataObjects"... A Collection is either synchronized or
not. No other explanation is needed.
Now regarding the synchronization scope, my current POV (that is
somewhat different from my past opinion) is that the list methods
should NOT be synchronized by default (i.e. users should create
synchronized wrappers if they need to). This way IncrementalFaultList
will be aligned with standard Java collections. One thing that still
must be synchronized internally is the DB operations to avoid multiple
concurrent fetches of the same data. This does not require
synchronization of most normal list access methods. I.e. the scope of
synchronization should be significantly reduced. (We can do something
extra fancy with syncing DB ops per page to allow parallel page
faulting, but that's certainly not a very high priority task).
Now your mention of performance issues... My guess without looking at
the code, this is unlikely to happen due to oversynchronization.
Compared to other things that are going on, synchronization overhead
should be negligible. Of course running in profiler should answer that
for sure.
Finally thanks for opening CAY-1075. One request - could you submit
any code as patches instead of full files - it will make it much
easier to analyze the changes.
Andrus
This archive was generated by hypermail 2.0.0 : Sun Jun 22 2008 - 16:29:34 EDT