VEA and memory bucket allocator

Memory bucket is a chunk of memory corresponds to the same sized space extent in DT-blob, DAOS calls VEA to reserve the space for the bucket, then uses the memory bucket allocator to allocate small pieces for metadata within the bucket. During I/O processing, DAOS should also create redo log entries for populated areas in the memory bucket, checkpointing service will flushes dirty pages to DT-blob in the same manner as MD-blob.

Considering VEA also has the need of managing small extents within large extent (see the section “VEA optimization”), design of the memory bucket allocator should also cover the requirement of VEA.