You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Joseph Wu (JIRA)" <ji...@apache.org> on 2015/09/01 00:55:46 UTC

[jira] [Updated] (MESOS-3345) Expand the range of integer precision when converting into/out of json.

     [ https://issues.apache.org/jira/browse/MESOS-3345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joseph Wu updated MESOS-3345:
-----------------------------
    Description: 
For [MESOS-3299], we added some protobufs to represent time with integer precision.  However, this precision is not maintained through protobuf <-> JSON conversion, because of how our JSON encoders/decoders convert numbers to floating point.

To maintain precision, we can try one of the following:
* Try using a {{long double}} to represent a number.
* Add logic to stringify/parse numbers without loss when possible.
* Try representing {{int64_t}} as a string and parse it as such?
* Update PicoJson and add a compiler flag, i.e. {{-DPICOJSON_USE_INT64}} 

In all cases, we'll need to make sure that:
* Integers are properly stringified without loss.
* The JSON decoder parses the integer without loss.
* We have some unit tests for big (close to {{INT32_MAX}}/{{INT64_MAX}}) and small integers.

  was:
For [MESOS-3299], we added some protobufs to represent time with integer precision.  However, this precision is not maintained through protobuf <-> JSON conversion, because of how our JSON encoders/decoders convert numbers to floating point.

To maintain precision, we can:
1) Try using a {{long double}} to represent a number.
2) Add logic to stringify/parse numbers without loss when possible.
3) Try representing {{int64_t}} as a string and parse it as such?
4) Update PicoJson and add a compiler flag, i.e. {{-DPICOJSON_USE_INT64}} 

In all cases, we'll need to make sure that:
* Integers are properly stringified without loss.
* The JSON decoder parses the integer without loss.
* We have some unit tests for big (close to {{INT32_MAX}}/{{INT64_MAX}}) and small integers.


> Expand the range of integer precision when converting into/out of json.
> -----------------------------------------------------------------------
>
>                 Key: MESOS-3345
>                 URL: https://issues.apache.org/jira/browse/MESOS-3345
>             Project: Mesos
>          Issue Type: Task
>          Components: stout
>            Reporter: Joseph Wu
>            Assignee: Joseph Wu
>            Priority: Minor
>              Labels: json, mesosphere, protobuf
>
> For [MESOS-3299], we added some protobufs to represent time with integer precision.  However, this precision is not maintained through protobuf <-> JSON conversion, because of how our JSON encoders/decoders convert numbers to floating point.
> To maintain precision, we can try one of the following:
> * Try using a {{long double}} to represent a number.
> * Add logic to stringify/parse numbers without loss when possible.
> * Try representing {{int64_t}} as a string and parse it as such?
> * Update PicoJson and add a compiler flag, i.e. {{-DPICOJSON_USE_INT64}} 
> In all cases, we'll need to make sure that:
> * Integers are properly stringified without loss.
> * The JSON decoder parses the integer without loss.
> * We have some unit tests for big (close to {{INT32_MAX}}/{{INT64_MAX}}) and small integers.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)