implements a group lock rather than a page lock