block_until_locked() now starts off checking every few 100th of a second before backing off to check_every value
in add_metadata() always reselect_values_from_db before transaction or we can lose metadata
protect against duplicate keyval/filelists by redis locking the lookup