tinykv Proj1 about engine util interfaces

I’m new to KV storage. I noticed that in kv/, there is already a mem_storage.go implement some interface. What does it use for? Does it mean that we should wrap standalone_storage on top of it? Or it’s just a reference for us to write standalone_storage.go.

mem_storage.go is used for tests of project 4.

LGTM. Another question, I was overwhelmed by the api in util. For example, if I’m going to implement Write for storage, should I choose api from (util) engine.go (writeToDB) or util.go (PutCF)?

util.go, engines.go is not used in project1. BTW, It would be great if you improve the doc to give some guides for later students after figuring out what the APIs are used for.

Why not? I use the api and I pass all the test… And the github doc ask us to proceed all write/read operations through engine_util…

So you should do all read/write operations through engine_util provided methods. Please read util/engine_util/doc.go to learn more. https://github.com/pingcap-incubator/tinykv/blob/course/doc/project1-StandaloneKV.md

Sorry, util.go, engines.go is not used in project1 is a little confusing. What I mean is you should use functions in util.go. engines.go is not used in project1.