Using take operations over a multimodal dataset with stable row IDs in batches of 10 rows can take 2-3 IOPs per row. This is very large when compared to non-stable rows, where 0.6-0.8 IOPs per row is the norm (coalescing reads). e2e, this contributes to a 2.6x slowdown when using stable row IDs.
Intuitively, the stable row ID take pattern builds a _rowid -> _row_addr mapping and uses that translate takes over stable row IDs into pointed row address lookups. It shouldn't need significantly more than non-stable.
Using
takeoperations over a multimodal dataset with stable row IDs in batches of 10 rows can take 2-3 IOPs per row. This is very large when compared to non-stable rows, where 0.6-0.8 IOPs per row is the norm (coalescing reads). e2e, this contributes to a 2.6x slowdown when using stable row IDs.Intuitively, the stable row ID
takepattern builds a_rowid->_row_addrmapping and uses that translatetakesover stable row IDs into pointed row address lookups. It shouldn't need significantly more than non-stable.