I have come to an interresting subject...
I was thinking more about my ParallelVarFiler and about database engines, first i have told you that since database engines are disk
bound and/or memory bound that means that they are not scalable
in multicores systems, but more than that that i was thinking more
and asking my self why to use optimistic synchronization mechanism like in transactional memory ? i think that an optimistic synchronization mechanism like in transactional memory can give better throughput and better speed, prof of that ? take a look at my ParallelVarFiler for exemple,
since it can be disk bound when you are saving automaticly the
data to a disk file that means that there is no need to use
an RWLock since the hardisk is not trully parallel.. so a Lock will have
the same performance as an RWLock in a disk bound scenario, it's why i have used a FIFO fair Lock inside my ParallelVarFiler, but if the hardisk or memory can be truly parallel an RWLock will be better ,
it's the same with an optimistic sychronization like in transactional memory, first you have to know that a Lock will serialize the read and write transactions, an RWLock will parallelize the read transaction, but with optimistic synchronization mechanism like in transactional memory you can have in theory many writes transactions in parallel
and many read transactions in parallel , but since the hardisk is not truly parallel, this
optimistic synchronization like in transactional memory will not bring
better performance than a RWLock , so i think that transactional memory and
optimistic synchronization can not give better performance if the hardisk and memory are not trully parallel, but since the memory system
and hardisk system is not truly parallel today, so this
optmistic schychronisation that is using transactional memory or other systemes, will not bring you better performance than a RWLock.
Amine Moulay Ramdane.