How are databases related to Application Engineering? What is an example of database evolution in a commonly used application?
Concepts:
- How are databases related to Application Engineering?
- They allow for creating, reading, updating, and deleting operations in applications.
- They store data and enable interactions with data.
- It affects scalability, so it's important to consider how fast your database is expected to grow.
Case Study: Discord
Discord originally used MongoDB, which wasn't the best at scaling, required lots of RAM, and wasn't optimized for fast retrieval and storing. Eventually, they switched to Cassandra, which was more efficient and used less resources, allowing fast writing without much overhead. However, billions of messages expanded to trillions of messages when Discord became more popular, causing too much overhead, maintenance troubles, and too many engineers needed for fixing. Lastly, they switched to Syllaca DB, which offered more consistent performance, effiecient scaling, more stability, and fewer issues.
Quiz:
Question 1: What are some ways data structures are related to application engineering?
Storage, Retrieval, Scalability, Performance, Analysis, etc.
Question 2: What are some challenges and tradeoffs of database structures?
Utilizing resources, managing scalability, and maintaining database security.