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]
- End Year
- 2023
- Project Type
- Open Source
- Written in
- 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
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