When a program accesses data stored in memory, disk, or on a remote server, its access patterns can leak information about the secret inputs and data. There has been decades of work that investigated how to make a program "oblivious", such that its access patterns leak nothing about the secret inputs or data. Past techniques, however, incur a considerable performance overhead. This project conceives and investigates new, relaxed notions of access pattern privacy, and discovers new algorithms that achieve such notions of privacy with little to no overhead.