I would recommend moving to a design where DB.Open doesn't exist, and Close just makes a DB permanently closed. Reusing state across multiple opens is just risky.

This is a lot better:

``` go
func Open(path string, mode os.FileMode) (*DB, error)
```

There's no `(*os.File).Open` either.