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 a first flash management table whose contents are indicative of a state of the flash memory system; b) maintaining in volatile memory a second flash management table whose contents are indicative of a state of the of the flash memory system; and c) maintaining in said flash memory an events log, i) wherein the method is carried out such that for at least one point in time, the first flash management table that is stored in said flash memory represents an earlier state of the flash memory system; and ii) wherein said earlier state of the flash memory system is A) earlier than a most recent event, the most recent event being stored in the events log in said flash memory and reflected in the second flash management table in the volatile memory; and B) later than a most recent power up of the flash memory system.