MacroDB: Scaling Database Engines on Multicores