A couple of questions about the data partitioners... (1) Why do they split into, and reconstruct from, BigIntegers?
The types always get decomposed into primitives, and therefore the parts are always BigInteger values of bytes [1], and they are used as intValues [2] when using the exponent table. Why not use byte[]/int[]? and take the hit to convert to BigInteger only if going to modPowAbstraction? (2) Has anyone tried to define the partitioning API as a set of type safe methods? I'm not sure if the current scheme defines the objects as type Object simply to allow for the data to be parsed Strings, but it does have the unfortunate effect of (a) requiring Java's primitives to be boxed, and (b) allowing for runtimes errors for mismatched types, e.g. I can write nonsense like: new PrimitiveTypePartitioner().toPartitions(123, PrimitiveTypePartitioner.CHAR) [1] https://github.com/apache/incubator-pirk/blob/master/src/main/java/org/apache/pirk/schema/data/partitioner/PrimitiveTypePartitioner.java#L302 [2] https://github.com/apache/incubator-pirk/blob/master/src/main/java/org/apache/pirk/responder/wideskies/standalone/Responder.java#L197 Regards, Tim
