Constructing a workload that:
- Inserts 16MB values from 10 threads in parallel
- Configures a memory_page_max of 5MB
- Does not do checkpoints
- Does not use explicit transactions
Can lead to doing reconciliation that triggers the lookaside conditions, and since lookaside file is exempt from normal eviction individual pages can grow to over 1GB. I believe there are two problems here:
- Lookaside should not be triggered at all, the workload is flooding the I/O capacity of the drive. Forcing writes to go into the lookaside file as well as the data file is only going to increase the workload.
- We should not allow the lookaside to create arbitrarily large in-memory pages.
Resolving the first issue will hide the second, but I think we should fix both.