'Locate position of the key, it will iterate using `next` field in record
until required key will be find.
:param key: the key to locate
:param start: position to start from'

def _locate_key(self, key, start):

    location = start
    while True:
        self.buckets.seek(location)
        data = self.buckets.read(self.entry_line_size)
        try:
            (l_key, rev, start, size, status, _next) = self.entry_struct.unpack(data)
        except struct.error:
            raise ElemNotFound(("Location    '%s'    not    found" % key))
        if (l_key == key):
            break
        elif (not _next):
            raise ElemNotFound(("Location    '%s'    not    found" % key))
        else:
            location = _next
    return ((self.buckets.tell() - self.entry_line_size), l_key, rev, start, size, status, _next)
