Re: [PATCH BlueZ 6/9] mesh: Define storage format specific read/write routines

Michal Lowas-Rzechonek
2019-07-10T19:32:29Z

Hi Brian,

On 07/10, Gix, Brian wrote:
> > I don't like the assumption that each node is stored in a separate file, and there
> > needs to be a backup file.
>
> I think I understand what you are saying about *How* the node data is
> persevered, and that the underlying storage might not be a typical
> file system.

Precisely.

> We *do* need a mechanism to get to an earlier version of a Node if
> there is corruption detected in the most resent version (perhaps an
> unexpected loss of power during a write operation). That is the
> purpose of the current backup system. Whether this is accomplished by
> reading a backup file or "Rolling Back" the history on a journal (or
> git repo, or whatever) we do need that backup.

Yes, I understand that. But, as you noticed, the rollback mechanism
doesn't need to be a backup *file*. This is an implementation detail of
a filesystem-backed JSON storage.

I would even go as far as saying that we don't need a backup - we need
atomicity and durability from ACID. Achieving that is non-trivial, but
is still an implementation detail.

> But we could certainly hide the mechanism of backing up (and of
> reverting to a backed up version).

Yes, this.

--
Michał Lowas-Rzechonek <michal.lowas-rzechonek@silvair.com>
Silvair http://silvair.com
Jasnogórska 44, 31-358 Krakow, POLAND