Thanks for the explanation, very useful. In a streaming compute context there can be many merges occurring reduce side. Different cache settings, would be coming into play often. Serialization to a store would be interesting here, given you would have a longer lived SSMany your merging with a newer one to update it... if the rebuilding here would be expensive to do the merge I'm certainly in favour of including the field in the serialization. -- Just trying to think of this in a context other than hadoop. 

End users shouldn't be using either SSMany or SSOne directly right? and we have apply methods without this arg, so if they create something in an invalid state i'm not sure there is too much to be done? 

Unless you have a big objection could you use the full set of parms?