Shared, Exclusive, Foobar?

99f6aeec9715bb034bba93ba2a7eb360
0
Nick 102 Jan 23, 2009 at 13:52

Hi all,

I’m looking for an appropriate word. :lol: I’m designing a generic ‘resource’ class that can be in three different access modes. The first is shared access, which means multiple ‘clients’ can access it simultaneously, and typically it means that they will only be reading from the resource. Exclusive access means only one client has access, typically for writing to the resource. Up to this point it corresponds with a normal multiple-reader/single-writer lock, or more correctly a shared/exclusive lock (since nothing prevents a client from writing to a shared resource if it knows that it won’t overwrite any data the other clients are reading or if those clients don’t mind).

The tricky bit is the third mode, for which I have no name yet. It assumes that the resource is split into pieces and multiple clients can each have exclusive access to a piece, without further defining how it’s split up. Clients simply have to play nice through some external mechanism that assigns clients to the pieces (e.g. a concrete matrix class derived from the resource class that keeps track of the rows/columns/elements assigned to specific clients). The point is that the resource class itself should remain lightweight, and I believe this approach could be faster than having an ordinary shared/exclusive lock on each piece individually.

Anyway, long story short, I’m looking for a name for the third access mode. I’ve considered “Mutual”, “Cooperative” and “Partitioned”, but with English not being my first language I feel like I’m missing the ultimate one-word description of my third access mode. So any and all suggestions are greatly appreciated. :worthy:

Thanks,

Nick

8 Replies

Please log in or register to post a reply.

886c9946a5dd9887a33d237ddcc9b7e7
0
phresnel 101 Jan 23, 2009 at 14:57

Foobar sounds nice :) The other three, too :D

Just to add one more: How about chunked?

*ducks + runs away*

340bf64ac6abda6e40f7e860279823cb
0
_oisyn 101 Jan 23, 2009 at 15:43

Split?

46407cc1bdfbd2db4f6e8876d74f990a
0
Kenneth_Gorking 101 Jan 23, 2009 at 16:18

Pieced?
Restricted?
Partial?

860fe478a2545d6c07b88c759292499e
0
SmokingRope 101 Jan 23, 2009 at 16:46

Chunk Limited

it’s not a single word but you could always get rid of the space :lol:

Also for any who have not tried this wonder of internet technology, try doing a search for “reverse dictionary”.

8676d29610e6c98d6dd2d9c38528cd9c
0
alphadog 101 Jan 23, 2009 at 19:52

The difficulty come because the first two access modes describe that access to one resource: shared vs. exclusive. However, the third mode describes the coordination of access to multiple resources.

So, names could be coordinated? Or, managed? Unified?

BTW, without knowing your code better, I wonder if there’s a small whiff of “code smell” there…

Consider a redesign; split your classes into classes that lock on a share/exclusive, and another higher-level class that manages the coordination of that state across multiple resources…

C4b4ac681e11772d2e07ed9a84cffe3f
0
kusma 101 Jan 25, 2009 at 14:20

How about “Segmented”?

D619d95cddb1edb227f51ef539d15cdc
0
Nautilus 103 Jan 25, 2009 at 21:56

“Semaphored” ?

I get the idea the ‘clients’ are multiple cores shooting for a common goal.

Ciao ciao : )

99f6aeec9715bb034bba93ba2a7eb360
0
Nick 102 Jan 26, 2009 at 20:04

Thanks a lot for all the suggestions!@SmokingRope

Also for any who have not tried this wonder of internet technology, try doing a search for “reverse dictionary”.

That’s interesting. :yes: It came up with the word “private”, which captures the meaning quite nicely. Like at a private party where multiple people are invited but it’s not open for everyone either.

The difficulty come because the first two access modes describe that access to one resource: shared vs. exclusive. However, the third mode describes the coordination of access to multiple resources. So, names could be coordinated? Or, managed? Unified?

I’d like to keep the name as abstract as possible. Having a resource that is split into pieces/segments/chunks is an easy way of thinking about it and a likely concrete implementation, but not the only one. I like the name “managed”.

Consider a redesign; split your classes into classes that lock on a share/exclusive, and another higher-level class that manages the coordination of that state across multiple resources…

That’s definitely one way to implement this mode. But it can actually be more efficient when keeping it low-level instead of composing it out of several layers. Anyway, it’s just some experimental code I’m working on so I’m not even sure what direction to take yet.

I get the idea the ‘clients’ are multiple cores shooting for a common goal.

They could be cores, SMT threads, multitasking threads, processes, entire chips, whole systems, network nodes, etc. The rough idea is to create a universal specification for processing data having multiple ‘clients’ and multple ‘servers’.