This is a university project, that has been assigned to me.
The request was for a multithreaded client-server application, to manage an address book. Where only certain users can modify or read the database, and others can only read it.
The database is based on a dynamic array data structure, ordered by key. And it's capable of O(log n) reads, and O(n) writes.