Name and Identity Resolution

202402271208
Status: #idea
Tags: DC

Name and Identity Resolution

Naming types

Chord-based Distributed Hash Table

Chord Finger Table (FT)

Dealing with Failures

forever {
	node q requests r = succ(q + 1) to return p = pred(r).
	if (q != p) then q < p <= succ(q+1), hence FT_q[1] = p
	else break
}

Implementing Chord (m-bit)

TODO slide 9

# len(node_set) =


def succ(key):
    if key < node_set[0]:
        return node_set[0]
    elif key > node_set[len(node_set) - 1]:
        return node_set[m - 1]
    for node in node_set:
        if key < node:
            return node


def finger(i):
    return succ((ID + 2 ** (i - 1)) % MAXPROC)


def recomputeFingerTable():
    FT[0] = node_set[(ID - 1) % len(node_set)]
    FT[1:] = [finger() for i in range(1, m + 1)]
    FT.append(ID)


def localSuccNode(key):
    if FT[0] < key <= ID:  # self has the key
        return ID
    elif ID < key <= FT[1]:
        pass
    else:
        pass

Exploiting Network Proximity

Structured Naming


References