I want to store some data, so I first write the initial data, then update it again and again when need. I think the record_update function should new a copy of the old data and invalidate the old copy, when the flash is filled full(or almost full), then call record_update function will return error_no_mem in registered callback, so should I run the gargage collect function manually then reupdate the failed one(last update that return error_no_mem) or the sdk will treat this automatically?