1 ) A method of maintaining flash data structures in accordance with events of a flash memory system, the method comprising a) maintaining in flash memory at least one flash management table whose contents are indicative of a state of the flash memory system; b) maintaining in said flash memory an events log, wherein, for at least one point in time, i) a most recently stored said at least one flash management table is indicative of an earlier state of the flash memory system; and ii) at least one event more recent than said earlier state is stored in said events log.