Hi Devs, I recently noticed there is some performance degradation of primary index scans after syncing with current master (15% - 20% with record size ~300bytes each). It seems this is caused by a recently patch which requires an instant S lock for every record in all components [1]. Acquiring a lock on for each record is relatively expensive, and it becomes even worse for smaller records. And I believe previously we've omitted locking for scanning disk components intentionally, because records in disk components must have already been committed and cannot change (I assume we're implementing something similar to "Read Committed" semantics?)
I propose that this patch needs to be somehow reverted to avoid locking on a record-basis. As for index-only patch, one can safely proceed if a tuple is found from the disk component, again because it has already been committed. Thoughts? Best regards, Chen Luo [1] https://asterix-gerrit.ics.uci.edu/#/c/2623/
