I developed a poorly-performing NoSQL-like DB library using their BTree, serializer/deserializer, file-interface, and collection library components. Records had a primary index (for storage order), multiple indices, arbitrary binary data payload, arbitrary-sized values in index "columns". It worked reliably but there were file fragmentation issues and delays during "vacuum" operations. This was in 1995 / 1996. I was junior and didn't know enough about system-level concerns, having come from a more computer-graphics / algorithms / math background. The company didn't want to shell out for expensive canned solutions. Our product sold well enough, but I learned a lesson.