| 758 | |
| 759 | --------------------------------------------------------------------------------------------------- |
| 760 | == Boost.Persistent == |
| 761 | * '''Author(s):''' Stefan Strasser |
| 762 | * '''Version:''' |
| 763 | * '''State:''' |
| 764 | * '''Last upload:''' 2010 January 03 |
| 765 | * '''Links:''' [https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/index.html Documentation] |
| 766 | * '''Categories:''' [#Persistency Persistency] [#Containers Containers] |
| 767 | * '''Description:''' Boost.Persistent introduces the concept of a persistent object. Persistent objects can be accessed through locators, which are similar to pointers, but can refer to objects that are stored on disk. The user only expresses the intention of accessing a persistent object but lets the library decide when and how to perform disk I/O. |
| 768 | |
| 769 | The persistent state of the application can be updated in small increments, instead of serializing the whole application state at one point. Those updates are conducted as atomic operations by the library, that are presented to the user either as savepoints or as transactions. The library maintains a consistent application state and recovers it from application and system failures. |
| 770 | |
| 771 | Finally, a persistent object can be accessed from multiple transactions in different threads concurrently and independent from each other, making manual synchronization obsolete. |
| 772 | |