First cut, I think it makes sense to only support ARRAY in key value columns, so having number of elements serialized here is a good idea. How about a vint instead of an int to save a few bytes? I think I'd have two different serialization formats - one for fixed width elements and one for variable width elements. For the variable length ones, we can prefix each value with it's length.