Recent

Author Topic: Scalable RWLockX version 2.1  (Read 1799 times)

aminer

  • Hero Member
  • *****
  • Posts: 956
Scalable RWLockX version 2.1
« on: January 28, 2014, 12:14:28 am »
Hello all,

You have to be careful cause if there is more and more writes
my previous scalable RWLocks version 2.01 may starve threads for a long time or starve threads , cause they were not starvation free.

So i have to be smarter than that, and i have finally implemented a scalable RWLock called RWLockX that is starvation-free and that
doesn't use spin-wait but it uses my portable SemaMonitor and a portable manual event object, so it consumes less CPU ressources and it's scalable on multicores, so finally i have designed and implemented this new algorithm called RWLockX that supports all those three requirements.

I have extensivly verified my new RWLockX algorithm and it's
stable now and i will explain it to you in the near future.

Please download my scalable RWLock zip file version 2.1
and take a look at my new scalable RWLockX algorithm inside RWLockX.pas,
and run the test.pas example inside the zip file .


You can download my new scalable RWLock 2.1 from:

http://pages.videotron.com/aminer/



Thank you,
Amine Moulay Ramdane.


aminer

  • Hero Member
  • *****
  • Posts: 956
Re: Scalable RWLockX version 2.1
« Reply #1 on: January 28, 2014, 12:22:41 am »

Hello,

So now my new scalable RWLockX algorithm (a scalable RWLock) , supports the following requirements:


1- It uses my SemaMonitor and a manual event object , hence
it uses less CPU ressources.

2- It scales on multicores

3- It is  starvation-free

4- it is portable.


You can download all the variants of my scalable RWLock 2.1 from:

http://pages.videotron.com/aminer/


And please take a look at my new algorithm inside RWLockX.pas.




Thank you,
Amine Moulay Ramdane.

aminer

  • Hero Member
  • *****
  • Posts: 956
Re: Scalable RWLockX version 2.1
« Reply #2 on: January 28, 2014, 01:12:37 am »

Hello,

I have to be smarter than that , i have forgot something,
since the manual event object that i am using inside
my RWLockX is not starvation-free so my algorithm is not
starvation-free, but that's easy , i have only to replace this
manual event object by my SemaMonitor that is FIFO fair hence
starvation-free.

I will also upgrade my lightweight version called
LW_RWLOCK to be starvation-free.

I will do that as soon as possible and i will put them on my website.


Please stay tuned...

Thank you,
Amine Moulay Ramdane.

 

TinyPortal © 2005-2018