I did a presentation at the FoundationDB Monthly Meetup. The talk is about, how building secondary indexes for a database is always about balance. A balance between a system that scales and is easy to manage and an API that is intuitive and delightful for a developer to use. Recently at Tigris Data, we have been adding secondary indexes to our database and have been working hard to achieve a good balance between scale and developer delight. Tigris is a transactional document database that runs on top of FoundationDB and is compatible with MongoDB. In this talk I cover four aspects we had to balance:1. Handling schema changes automatically in our secondary indexes so that users don't have to worry about it.
- The trade-off between auto-indexing all fields and indexing select fields.
- Changes we made after performance testing.
- How we plan build indexes in the background with minimal conflicts.