cbd/TODO

45 lines
1.4 KiB
Plaintext

In lbd, atomic writes will require a pblk array in the lbd object. Not sure
how to roll back partial allocations yet but it should be doable.
Cache object sizing:
- lbdcache size: multiple of num_online_cpus().
- lbatviewcache:
Min: one.
Max: one per lbd.
Avg: 1/2 lbdcache size.
=> Alloc 1/2 lbdcache size.
- lbpatpage cache:
Min: lbatviewcache size.
Max: 2 * lbatviewcache size.
Avg: 1.5 * lbatviewcache size.
=> alloc 1.5 * lbatviewcache size.
- pbatcache size:
Min: 1
Max: lbatviewcache size.
Avg: 1/2 lbatviewcache size.
=> alloc ???
1/2 lbatviewcache size is way too large.
Ratio of lbatview to pbat is 1:lbat_per_pbat.
TODO:
- Consistency in lbatview_elem_realloc().
If alloc fails, roll back.
- Allocate lbd pages using allocv and vmap them.
Same for pbat, when pbat_len() > 1.
Can we vmap compression workspace?
- In *cache_get, call *_reset outside cache lock.
- Implement vectorized lbatview_elem_pblk().
- Dirty flag in compress header.
- Implement stats.
- Keep working lbd, flush on timer.
Need per-cpu lbd.
- Move back to module based build system.
- Create utilities for:
- Resizing a compressed device.
- Checking and repairing a compressed device.
- Check parameters in compress_ctr:
- Compressed device must be large enough.
- Backing device must be large enough.
- Remove workqueue.