PelotonDB is a self-driving database that uses a hybrid storage layout to support both OLTP and OLAP workloads. It uses logical tiles to decouple storage management from query execution. Tuples can be stored in either a narrow storage model, dense storage model, or flexible storage model depending on how "hot" the data is. The system continuously monitors queries and reorganizes the physical data layout in the background to optimize for the workload over time using k-means clustering. It employs MVCC for concurrency control and minimizes overhead during data reorganization by only modifying versioning metadata. An evaluation using the ADAPT benchmark shows PelotonDB can adapt the storage layout to improve performance.