You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Given a node n, if n wishes to perform an atomic operation on an object o, it must first 'register' with a descriptor. For n to register o, it must first remove from its local bag, bag, a 64-bit descriptor d. If d does not exist, we allocate N new descriptors, insert N-1 into the bag, and keep the Nth descriptor. For n to unregister o, it merely needs to insert the retired descriptor into the bag.
When performing an atomic operation on o, we use d in its place. The descriptor d is a distinct index into the global DistVector, vec, where vec[d] = o.
Rationale:
The distributed bag has been proven to scale extremely well, even at a single node. We may eliminate any excess communication by allocating descriptors in bulk, and using them individually. We also gain the advantage of increased parallelism in that each task can just attempt to remove from the bag, which indeed has been proven to scale extremely well. The fact that descriptors are 64-bit means that they can be used in network atomic operations, which prove to be significantly faster than remote-execution atomic operations. The DistVector provides linearizability across all nodes, ensuring that descriptors are always valid.
The text was updated successfully, but these errors were encountered:
Global Descriptor Table
Idea:
Given a node
n
, ifn
wishes to perform an atomic operation on an objecto
, it must first 'register' with a descriptor. Forn
to registero
, it must first remove from its local bag,bag
, a 64-bit descriptord
. Ifd
does not exist, we allocateN
new descriptors, insertN-1
into thebag
, and keep theN
th descriptor. Forn
to unregistero
, it merely needs to insert the retired descriptor into the bag.When performing an atomic operation on
o
, we used
in its place. The descriptord
is a distinct index into the globalDistVector
,vec
, wherevec[d] = o
.Rationale:
The distributed bag has been proven to scale extremely well, even at a single node. We may eliminate any excess communication by allocating descriptors in bulk, and using them individually. We also gain the advantage of increased parallelism in that each task can just attempt to remove from the bag, which indeed has been proven to scale extremely well. The fact that descriptors are 64-bit means that they can be used in network atomic operations, which prove to be significantly faster than remote-execution atomic operations. The
DistVector
provides linearizability across all nodes, ensuring that descriptors are always valid.The text was updated successfully, but these errors were encountered: