Hi Robert,
It sounds like you are proposing a cache for the data - something that many candidates implement, and it certainly doesnt seem to cause loss of marks.
It has been suggested (from memory by Max Habibi) that a cache could be implied in the instructions - the fact that the read method (amongst others) does not throw InterruptedException would work well with in a cached environment (you can have your constructor populate the cache, and the constructor can throw any Exception you like). That still leaves the problem of the update method but nobody said that everything was going to be easy
.
However when implementing a cache you need to consider how many records you can hold in memory / what happens if you run out of memory (this is easily answered, but I am leaving that to you).
Whatever you decide, you need to document your design decisions.
Regards, Andrew