When to use Relation DB and when to use NoSQL Db ?
If you need to run sophisticated queries on your data or provide users the ability to query based upon a large number of different attributes (like a contact management system where users need to search by name, government ID number, address, telephone number and possibly do various wildcard searches), then an RDBMS will be the best choice.
If you need to simply retrieve a large dataset based on a known unique identifier with low latency, a NoSQL DB like DynamoDB is the preferred choice.
How does B-Tree work ?
https://www.youtube.com/watch?v=K1a2Bk8NrYQ