code: public Vec close(int rowLayout, Futures fs) {
      // Compute #chunks
      int nchunk = _tmp_espc.length;
      DKV.remove(chunkKey(nchunk),fs); // remove potential trailing key
      while( nchunk > 1 && _tmp_espc[nchunk-1] == 0 ) {
        nchunk--;
        DKV.remove(chunkKey(nchunk),fs); // remove potential trailing key
      }
  
      // Replacement plain Vec for AppendableVec.
      Vec vec = new Vec(_key, rowLayout, domain(), _type);
      DKV.put(_key,vec,fs);       // Inject the header into the K/V store
      return vec;
    }
docs: reads, plus computes rows-per-chunk, min/max/mean, etc.