Transparent, fine-grained, and adaptive data compression is described. A system determines a first data chunk and a second data chunk in a persistent storage. The system determines a first data read count and/or a first data write count for the first data chunk, and a second data read count and/or a second data write count for the second data chunk. The system determines then a first data compression status for the first data chunk and a second data compression status for the second data chunk. Based on the first data compression status and second data compression status, the system stores data in the first data chunk and data in the second data chunk to the persistent storage.