[df_io] keep caches of reader/writers