synchronize data access with read/write lock
modify lock fairness