Improving Performance And Reliability Of Flash Memory Based Solid State Storage Systems