Hi Eric, There has been some effort in the past to remove some of the synchronization. Much has been removed, but unfortunately much remains. I probably don't recall all the exceptions that we hit when the synchronization was removed, but among them was concurrentModificationException. Additionally, there may have been issues with keeping the various lists in agreement, but I'm not 100% certain on this.
Regards, Sean -----Original Message----- From: Eric Owhadi [mailto:[email protected]] Sent: Wednesday, March 23, 2016 9:47 AM To: [email protected] Subject: RMIInterface.java and synchronized transactional functions? Hi Trafodioneers, I was investigating the code path to implement parallel scanner, when I stumbled on RMIInterface.java. In that file, you see different treatment for transactional vs non transactional get, delete, delete list, put, put list, checkAndPut, checkAndDelete getScanner. All transactional function are “synchronized”, while all non-transactional are not. Given the strong drawback of synchronization on concurrency, I am wondering if these synchronization are not left over from debugging to make the log more readable, or if there is a strong reason why we must have them. Someone familiar with the code? Thanks in advance for the help, Eric
