code: @InService(SegmentServiceImpl.class)
    private Type writeCheckpointFull(TableKelp table, 
                                     OutputStream os, 
                                     int saveTail)
        throws IOException
    {
      os.write(getMinKey());
      os.write(getMaxKey());
  
      /* db/2310
      if (Arrays.equals(getMinKey(), getMaxKey())) {
        throw new IllegalStateException("bad keys");
      }
      */
      
      BlockLeaf []blocks = _blocks;
      
      int index = blocks.length - (saveTail / BLOCK_SIZE);
      int rowFirst = saveTail % BLOCK_SIZE;
        
      BitsUtil.writeInt16(os, blocks.length - index);
      
      if (blocks.length <= index) {
        return Type.LEAF;
      }
  
      blocks[index].writeCheckpointFull(os, rowFirst);
        
      for (int i = index + 1; i < blocks.length; i++) {
        blocks[i].writeCheckpointFull(os, 0);
      }
        
      return Type.LEAF;
    }
docs: Writes the page to the output stream as a full checkpoint.
  
  The checkpoint for a leaf page is the full page blocks (row and inline blob),
  with the free-space gap removed. A checkpoint restore restores the blocks
  exactly.