added important lock to ensure that two threads (refresh and fetch, in this case, but will be more important in distributed case) cannot attempt to prime for the same key at the same time