pinot.server.instance.dataDir is where the server will store uncompressed segments with indexes, and it will be used for query serving. this is typically a server’s local disk
controller.data.dir is where compressed segments will be stored. they may or may not have all indexes. this is usually for permanent backup anc recovery, and not used in query serving path e.g. used in case of capacity changes, node failures, rebalance. This is typically some remote fs like S3, GCS in prod setups (or can be controller’s local disk in quickstart, quick pocs)