The previous changes (
MESOS-3345) to support integer precision when converting JSON <-> Protobuf did not support precision for unsigned integers between INT64_MAX and UINT64_MAX. (There's some loss, but the conversion is still as good/bad as it was with doubles.)
This problem is due to a limitation in the JSON parsing library we use (PicoJSON), which parses integers as int64_t.
Some possible solutions or things to investigate:
- We can patch PicoJSON to parse some large values as uint64_t.
- We can investigate using another parsing library.
- If we want extra precision beyond 64 or 80 bits per double, one possibility is the GMP library. We'd still need to change the parsing library though.