
Hi everyone, I'm thinking about finishing a library that was proposed a couple of years ago. It was pretty far along, and there is documentation available in the sandbox (somewhat outdated): https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/... It is a library with the goal of storing C++ objects on disk, with an interface that is as close as possible to accessing regular C++ objects in memory. A very simple example could look like this: shared_loc<person> p=...; { transaction tx; p->name="..."; p->address="..."; tx.commit(); } It is based on Boost.Serialization, but automatically maintains a consistent state on disk (ACID transactions), which can be updated incrementally. Part of its code was moved to a library named Transact to work alongside other transactional resources (like memory) and is available in the sandbox: https://svn.boost.org/svn/boost/sandbox/transaction/boost/transact/ I'd like to know whether the boost community is still interested in such a library, and I suppose there are quite a few new people here so your comments are welcome as well. Thank You!

This is interesting. Currently I am working on such a library. On Mon, Feb 25, 2013 at 10:33 PM, Stefan Strasser <strasser@uni-bremen.de>wrote:
Hi everyone,
I'm thinking about finishing a library that was proposed a couple of years ago. It was pretty far along, and there is documentation available in the sandbox (somewhat outdated):
https://svn.boost.org/svn/**boost/sandbox/persistent/libs/** persistent/doc/html/index.html<https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/index.html>
It is a library with the goal of storing C++ objects on disk, with an interface that is as close as possible to accessing regular C++ objects in memory. A very simple example could look like this:
shared_loc<person> p=...; { transaction tx; p->name="..."; p->address="..."; tx.commit(); }
It is based on Boost.Serialization, but automatically maintains a consistent state on disk (ACID transactions), which can be updated incrementally.
Part of its code was moved to a library named Transact to work alongside other transactional resources (like memory) and is available in the sandbox: https://svn.boost.org/svn/**boost/sandbox/transaction/**boost/transact/<https://svn.boost.org/svn/boost/sandbox/transaction/boost/transact/>
I'd like to know whether the boost community is still interested in such a library, and I suppose there are quite a few new people here so your comments are welcome as well.
Thank You!
______________________________**_________________ Unsubscribe & other changes: http://lists.boost.org/** mailman/listinfo.cgi/boost<http://lists.boost.org/mailman/listinfo.cgi/boost>

Since there doesn't seem to be much interest left (and the boost community in general quite inactive?) I'll leave it at that for now. There is an entry on the LibrariesUnderConstruction page in the boost wiki in case that changes. Am 25.02.2013 18:03, schrieb Stefan Strasser:
Hi everyone,
I'm thinking about finishing a library that was proposed a couple of years ago. It was pretty far along, and there is documentation available in the sandbox (somewhat outdated):
https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/...
It is a library with the goal of storing C++ objects on disk, with an interface that is as close as possible to accessing regular C++ objects in memory. A very simple example could look like this:
shared_loc<person> p=...; { transaction tx; p->name="..."; p->address="..."; tx.commit(); }
It is based on Boost.Serialization, but automatically maintains a consistent state on disk (ACID transactions), which can be updated incrementally.
Part of its code was moved to a library named Transact to work alongside other transactional resources (like memory) and is available in the sandbox: https://svn.boost.org/svn/boost/sandbox/transaction/boost/transact/
I'd like to know whether the boost community is still interested in such a library, and I suppose there are quite a few new people here so your comments are welcome as well.
Thank You!

Well if you want we can develop it further. I can give a hand and we can share our ideas. On Sun, Mar 3, 2013 at 9:32 PM, Stefan Strasser <strasser@uni-bremen.de>wrote:
Since there doesn't seem to be much interest left (and the boost community in general quite inactive?) I'll leave it at that for now. There is an entry on the LibrariesUnderConstruction page in the boost wiki in case that changes.
Am 25.02.2013 18:03, schrieb Stefan Strasser:
Hi everyone,
I'm thinking about finishing a library that was proposed a couple of years ago. It was pretty far along, and there is documentation available in the sandbox (somewhat outdated):
https://svn.boost.org/svn/**boost/sandbox/persistent/libs/** persistent/doc/html/index.html<https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/index.html>
It is a library with the goal of storing C++ objects on disk, with an interface that is as close as possible to accessing regular C++ objects in memory. A very simple example could look like this:
shared_loc<person> p=...; { transaction tx; p->name="..."; p->address="..."; tx.commit(); }
It is based on Boost.Serialization, but automatically maintains a consistent state on disk (ACID transactions), which can be updated incrementally.
Part of its code was moved to a library named Transact to work alongside other transactional resources (like memory) and is available in the sandbox: https://svn.boost.org/svn/**boost/sandbox/transaction/**boost/transact/<https://svn.boost.org/svn/boost/sandbox/transaction/boost/transact/>
I'd like to know whether the boost community is still interested in such a library, and I suppose there are quite a few new people here so your comments are welcome as well.
Thank You!
______________________________**_________________ Unsubscribe & other changes: http://lists.boost.org/** mailman/listinfo.cgi/boost<http://lists.boost.org/mailman/listinfo.cgi/boost>

Am 03.03.2013 19:09, schrieb Shakti Misra:
Well if you want we can develop it further. I can give a hand and we can share our ideas.
I'm still interested in seeing what you've developed and in your ideas, as we've discussed off-list. but considering the lack of replies and that a boost library submission requires a review manager, several reviewers, and more people interested, I came to the conclusion that it will probably not end up a boost library even if we'll finish it. if anyone disagrees please share your first impression of the documentation available at https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/... Thank You
It is a library with the goal of storing C++ objects on disk, with an interface that is as close as possible to accessing regular C++ objects in memory. A very simple example could look like this:
shared_loc<person> p=...; { transaction tx; p->name="..."; p->address="..."; tx.commit(); }
It is based on Boost.Serialization, but automatically maintains a consistent state on disk (ACID transactions), which can be updated incrementally.
Part of its code was moved to a library named Transact to work alongside other transactional resources (like memory) and is available in the sandbox: https://svn.boost.org/svn/**boost/sandbox/transaction/**boost/transact/<https://svn.boost.org/svn/boost/sandbox/transaction/boost/transact/>
I'd like to know whether the boost community is still interested in such a library, and I suppose there are quite a few new people here so your comments are welcome as well.
Thank You!

On Sun, Mar 3, 2013 at 1:26 PM, Stefan Strasser <strasser@uni-bremen.de>wrote:
I'm still interested in seeing what you've developed and in your ideas, as we've discussed off-list. but considering the lack of replies and that a boost library submission requires a review manager, several reviewers, and more people interested, I came to the conclusion that it will probably not end up a boost library even if we'll finish it. if anyone disagrees please share your first impression of the documentation available at https://svn.boost.org/svn/** boost/sandbox/persistent/libs/**persistent/doc/html/index.html<https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/index.html>
I am also very much interested in a persentence library, and although I am a boost user rather than developer, I will try to follow along the best I can if development continues towards this library. I have seen from a response in 2010 that undo/redo is considered to be outside the scope of this libary, but it can be facilitated with transactions and changesets. I think an example of this in the documentation, along with a simple undo/redo scheme, would help to clarify (for me, anyway) how this library could be used to accomplish such a necessary and often complex task. Best, Rich

on Sun Mar 03 2013, Stefan Strasser <strasser-AT-uni-bremen.de> wrote:
Am 03.03.2013 19:09, schrieb Shakti Misra:
Well if you want we can develop it further. I can give a hand and we can share our ideas.
I'm still interested in seeing what you've developed and in your ideas, as we've discussed off-list. but considering the lack of replies and that a boost library submission requires a review manager, several reviewers, and more people interested, I came to the conclusion that it will probably not end up a boost library even if we'll finish it. if anyone disagrees please share your first impression of the documentation available at https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/...
I for one think this is an extremely useful domain that you've addressed in an interesting way. I would suggest including the Motivation and Approach sections of that page in your next posting about this library. -- Dave Abrahams

On Mon, Mar 4, 2013 at 6:13 AM, Dave Abrahams <dave@boostpro.com> wrote:
I for one think this is an extremely useful domain that you've addressed in an interesting way. I would suggest including the Motivation and Approach sections of that page in your next posting about this library.
Same here. I am just a bit confused as the difference, in practice, with storying object data always in database. Joel Lamotte

Am 04.03.2013 13:50, schrieb Klaim - Joël Lamotte:
I am just a bit confused as the difference, in practice, with storying object data always in database.
there is no difference. it defines an interface to storing objects in a database, and implements one storage backend (a "database" if you will). other backends are possible and desirable, especially using industrially proven embedded database systems like BerkeleyDB or SQLite (see section Future Development [1]). when you access a persistent object through a locator (see [2]), e.g. like this: shared_loc<person> p=...; //note the _loc, not a pointer! cerr << p->first_name << ' ' << p->last_name << endl; the locator holds a ResourceManager::object_id, whatever that may be. the default resource manager uses a couple of files to store the objects, and ResMgr::object_id is an actual integral object id identifying the object in those files. but other resource managers can be implemented. then, ResMgr::object_id could be a BerkeleyDB key, could be a SQL primary key, or could be a filename. see [3] and [4] for more info on how to configure the library and use other resource managers. on a side note, was there any progress on Boost.Rdb or other proposals for boost libraries providing SQL interfaces and/or object-relational mapping? [1] https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/... [2] https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/... [3] https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/... [4] https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/... [3] and [4] has changed somewhat, since it was moved to another proposed library, Boost.Transact Stefan

On 2/25/13 12:03 PM, Stefan Strasser wrote:
Hi everyone,
I'm thinking about finishing a library that was proposed a couple of years ago. It was pretty far along, and there is documentation available in the sandbox (somewhat outdated):
https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/...
It is a library with the goal of storing C++ objects on disk, with an interface that is as close as possible to accessing regular C++ objects in memory. A very simple example could look like this:
shared_loc<person> p=...; { transaction tx; p->name="..."; p->address="..."; tx.commit(); }
It is based on Boost.Serialization, but automatically maintains a consistent state on disk (ACID transactions), which can be updated incrementally.
Part of its code was moved to a library named Transact to work alongside other transactional resources (like memory) and is available in the sandbox: https://svn.boost.org/svn/boost/sandbox/transaction/boost/transact/
I'd like to know whether the boost community is still interested in such a library, and I suppose there are quite a few new people here so your comments are welcome as well.
I haven't had a chance to look at it yet, but a persistence library is very desirable. Jeff
participants (6)
-
Dave Abrahams
-
Jeff Flinn
-
Klaim - Joël Lamotte
-
Rich E
-
Shakti Misra
-
Stefan Strasser