Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <vhsuq6$1p56f$1@dont-email.me>
Deutsch   English   Français   Italiano  
<vhsuq6$1p56f$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: jseigh <jseigh_es00@xemaps.com>
Newsgroups: comp.lang.c++
Subject: Re: smrproxy v2
Date: Sat, 23 Nov 2024 11:10:46 -0500
Organization: A noiseless patient Spider
Lines: 40
Message-ID: <vhsuq6$1p56f$1@dont-email.me>
References: <vequrc$2o7qc$1@dont-email.me> <vho4gs$pd3i$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 23 Nov 2024 17:10:47 +0100 (CET)
Injection-Info: dont-email.me; posting-host="9775b06d3b1e0c64dd937d9c66d1c9a9";
	logging-data="1873103"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18JFJZQKlzW4FFFRHVWZczI"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:Tmci8wu6zvouJbdBhfR1LUWvxhI=
Content-Language: en-US
In-Reply-To: <vho4gs$pd3i$1@dont-email.me>
Bytes: 2489

On 11/21/24 15:17, jseigh wrote:
> On 10/17/24 08:10, jseigh wrote:
>> I replaced the hazard pointer logic in smrproxy.  It's now wait-free
>> instead of mostly wait-free.  The reader lock logic after loading
>> the address of the reader lock object into a register is now 2
>> instructions a load followed by a store.  The unlock is same
>> as before, just a store.
>>
>> It's way faster now.
>>
>> It's on the feature/003 branch as a POC.   I'm working on porting
>> it to c++ and don't want to waste any more time on c version.
>>
>> No idea of it's a new algorithm.  I suspect that since I use
>> the term epoch that it will be claimed that it's ebr, epoch
>> based reclamation, and that all ebr algorithms are equivalent.
>> Though I suppose you could argue it's qsbr if I point out what
>> the quiescent states are.
>>
> 
> I got a port to c++ working now. There are 5 proxy implementations
> 1) smrproxy v2
> 2) arcproxy - reference counted proxy
> 3) rwlock based proxy
> 4) mutex based proxy
> 5) an unsafe proxy with no locking
> 
> The testcase is templated so you can use any of the
> 5 proxy implementations without rewriting for each proxy
> type.  You can do apple to apple comparisons.  I
> realize that's the complete antithesis of current
> programming practices but there you have it.  :)
> 
> A bit of clean up and performance tuning now.
> 

Ok, smrproxy lock/unlock is down to 0.6 nanoseconds now,
about what the C version was.

Joe Seigh