Add thread local storage on unlocks
Make allocation of hashtable and locks outside of global locks
backout on allocation failure clean(er)