I've recently done some work on adding support for DataPageV2 to the cpp code base . A question came up if the uncompressed_page_size includes the levels which are not compressed in the V2 format anyway.
My understanding of the thrift specification  is that the levels are included in this size. Can someone help confirm whether this interpretation is correct? Thanks, Hatem  https://github.com/apache/arrow/pull/6481  https://github.com/apache/parquet-format/blob/master/src/main/thrift/parquet.thrift#L623