Feuerlabs / kvdb

Key value data base API
Mozilla Public License 2.0
36 stars 7 forks source link

kvdb spec questions/enhancements #2

Closed norton closed 11 years ago

norton commented 12 years ago

I have a list of non-urgent questions and enhancements.

1) kvdb:add_table/3

Under what circumstances does add_table/3 fail?

The current spec only returns ok().

2) kvdb:get/3

Returns {error, not_found} when a key doesn't exist . Returns {error, not_found} when the table has not been added.

Just want to confirm if this expected.

3) kvdb:put/3

catch kvdb:put(...) returns {'EXIT', {{badarg,[{no_suchtable,}|]},}} when the table has not been added.

Just want to confirm if this is expected.

4) how to check if a table or queue exists or not?

It would be handy to have a get_table and get_queue API (or something similar).

5) kvdb:open/2

It would be handy to have generic options like create_if_missing and error_if_exists for all backends.

6) kvdb:delete/1

It would be handy to have a generic command to delete a database and destroy the db and log files. I noticed the unit tests have some backend specific utils for doing this.

7) db/1

Please clarify which functions are safe and not safe to use concurrently from different processes.

8) delete_queue/3

It would be handy to have a utility function to delete a queue.

9) prel_pop/3

Initially, the meaning of "prel" wasn't obvious to me. Maybe peek/3 might be suitable name for prel_pop/3 instead?

norton commented 11 years ago

Marking this issue as closed.