Paper is an embedded object-oriented storage engine on Android with automatic schema migration support. It is designed for Java and Kotlin to quickly manage object storage without using SQL-like queries.
- Source Code
- https://github.com/pilgr/Paper[01]
- Developer
- Country of Origin
- SE
- Start Year
- 2015 [05]
- Project Type
- Open Source
- Written in
- Java
- Supported Languages
- Java
- Operating System
- Android
- License
- Apache v2
Paper is an embedded object-oriented storage engine on Android with automatic schema migration support. It is designed for Java and Kotlin to quickly manage object storage without using SQL-like queries.
History[01]
Paper was created in Sweden in 2015. The main contributor is Oleksii Masnyi (Aleksey Masny), an android software developer. It was initially developed to be used in AppDialer, a smart phone application for searching other apps. The system was mainly developed between 2015 and 2017. The first version was released with main object-oriented structure, and newer versions were later released with major updates in methods, data format and custom APIs.
Concurrency Control[02]
Paper uses concurrent hash map and semaphore to deal with multi-thread reading and writing for single operation, but no concurrency control protocol is being used to protect transactions.
Data Model[03]
Paper uses custom strings as keys, and objects as values, which is a combination of key/value data model and object-oriented data model.
Storage Organization[04]
Paper maintains backup files when performing writing. When writing is done successfully, backup file is deleted.
Citations
5 sources- GitHub - pilgr/Paper: Paper is a fast NoSQL-like storage for Java/Kotlin objects on Android with automatic schema migration support. · GitHub github.com
- Paper/paperdb/src/main/java/io/paperdb/KeyLocker.java at master · pilgr/Paper · GitHub github.com
- Paper/paperdb/src/main/java/io/paperdb/Book.java at master · pilgr/Paper · GitHub github.com
- Paper/paperdb/src/main/java/io/paperdb/DbStoragePlainFile.java at master · pilgr/Paper · GitHub github.com
- Initial commit github.com