Added a semaphore-like mechanism to redude read load and memory usage for DataModels