I'd be fine with either failing the request or fallback to null. But
fallback to 0 sounds surprising and against intuition to me.


Best,

Xintong



On Wed, Jul 26, 2023 at 7:44 PM Austin Cawley-Edwards <
austin.caw...@gmail.com> wrote:

> We discussed this in FLINK-29863[1] as well. While the JSON standard
> doesn’t specify using null, the JavaScript standard encoding function
> writes these values as null[2]. I think this will be least surprising to
> users, and agree with the other points in this direction.
>
> Best,
> Austin
>
> [1]: https://issues.apache.org/jira/browse/FLINK-29863
> [2]:
>
> https://github.com/FasterXML/jackson-databind/issues/911#issuecomment-352443303
>
> On Wed, Jul 26, 2023 at 07:29 Matthias Pohl <matthias.p...@aiven.io
> .invalid>
> wrote:
>
> > >
> > > Then we'd break the API for users that did already apply workarounds
> > > although the user hasn't done anything wrong.
> >
> > That argument would also work against introducing the 0 default value. If
> > users have a workaround, introducing 0 might break their setup because
> they
> > might have used a different fallback value on their side.
> >
> > One other idea (which I'm not 100% convinced about): For infinite, would
> it
> > be better to use (-)Double.MAX_VALUE as a fallback? That would be closer
> to
> > the intention of the value than using 0. The problem with that is that
> the
> > JSON spec allows bigger/smaller values than that, I guess. But if that's
> > considered reasonable (because Flink won't provide bigger values), we
> only
> > have to find a reasonable fallback for NaN.
> >
> > For me, using null still feels like the better approach. It enables the
> > user to do error handling on their end (in contrast to hiding it from
> > them). The goal is in the end to comply with the JSON spec, I guess.
> >
> > Do we specify somewhere that we always should use double in the code
> > conventions [1]? I couldn't find anything related to this question. If
> not,
> > would it be reasonable to also include a fallback serializer for Float?
> >
> > And just for the record: We could add AggregatedMetric to the API listing
> > of the FLIP. It uses "Double" as a field type:
> >
> > > $ grep --include="*java" -A1 -Hirn "@JsonProperty" . | grep -i
> > > 'double\|float\|bigdecimal' | grep -o '.*\.java' | sort -u
> > >
> > >
> >
> ./flink-runtime/src/main/java/org/apache/flink/runtime/rest/messages/checkpoints/StatsSummaryDto.java
> > >
> > >
> >
> ./flink-runtime/src/main/java/org/apache/flink/runtime/rest/messages/job/metrics/AggregatedMetric.java
> > >
> > >
> >
> ./flink-runtime/src/main/java/org/apache/flink/runtime/rest/messages/job/metrics/IOMetricsInfo.java
> > >
> > >
> >
> ./flink-runtime/src/main/java/org/apache/flink/runtime/rest/messages/JobVertexBackPressureInfo.java
> > >
> > >
> >
> ./flink-runtime/src/main/java/org/apache/flink/runtime/rest/messages/ResourceProfileInfo.java
> >
> >
> > [1]
> >
> https://flink.apache.org/how-to-contribute/code-style-and-quality-common/
> >
> > On Tue, Jul 25, 2023 at 10:33 AM Chesnay Schepler <ches...@apache.org>
> > wrote:
> >
> > > Then we'd break the API for users that did already apply workarounds
> > > although the user hasn't done anything wrong.
> > >
> > > On 25/07/2023 04:31, Xintong Song wrote:
> > > >> we should treat these cases as errors
> > > >>
> > > > Looking at the fields listed in the FLIP, I'd agree with this
> argument.
> > > And
> > > > based on this, shouldn't we fail the request with e.g., a status code
> > > 500,
> > > > rather than responding with a fallback value silently?
> > > >
> > > > Best,
> > > >
> > > > Xintong
> > > >
> > > >
> > > >
> > > > On Tue, Jul 25, 2023 at 12:22 AM Jing Ge <j...@ververica.com.invalid
> >
> > > wrote:
> > > >
> > > >> We might consider using 0 as null for values that never return 0.
> But
> > > null
> > > >> is still not equal to 0 and it will be very difficult to let every
> > > >> contributor in this community follow this rule, especially for
> future
> > > >> unknown APIs, which means there will be some cases that still need
> > null.
> > > >> Personally, I would choose accuracy over convenience and consistency
> > > over
> > > >> convenience. Therefore, null is recommended.
> > > >>
> > > >> Best regards,
> > > >> Jing
> > > >>
> > > >> On Mon, Jul 24, 2023 at 11:48 PM Chesnay Schepler <
> ches...@apache.org
> > >
> > > >> wrote:
> > > >>
> > > >>> The downside to null is that it again forces users to handle this
> > case
> > > >>> themselves.
> > > >>>
> > > >>> The reality is that there is no good default value.
> > > >>>
> > > >>> Ideally we fix all cases where we return such values, such that the
> > > >>> fallback to 0 isn't even used.
> > > >>> Arguably the same could be said for null, but I'd think that 0 is
> > less
> > > >>> of a surprise.
> > > >>>
> > > >>> On 24/07/2023 17:21, Gyula Fóra wrote:
> > > >>>> I agree that it's a bit strange to have 0 as a fallback value
> > because
> > > >> it
> > > >>>> can also naturally occur for many metrics.
> > > >>>> If we want to omit the value null would be probably better as
> > Matthias
> > > >>>> suggested.
> > > >>>>
> > > >>>> Gyula
> > > >>>>
> > > >>>> On Mon, Jul 24, 2023 at 4:02 PM Matthias Pohl
> > > >>>> <matthias.p...@aiven.io.invalid> wrote:
> > > >>>>
> > > >>>>> What was the reason you decided to go for 0 as the fallback value
> > > >>> instead
> > > >>>>> of null? Wouldn't that be a more reasonable value for error
> cases?
> > > >>>>>
> > > >>>>> On Mon, Jul 24, 2023 at 12:51 PM Chesnay Schepler <
> > > ches...@apache.org
> > > >>>>> wrote:
> > > >>>>>
> > > >>>>>> There are a number of cases where the REST API can return
> infinity
> > > or
> > > >>>>>> NaN for certain double fields.
> > > >>>>>>
> > > >>>>>> This is problematic because the JSON spec does not allow such
> > > values,
> > > >>>>>> and tooling working against that spec may run into issues when
> > > >>>>>> encountering such a value.
> > > >>>>>>
> > > >>>>>> Specifically we've seen this become an issue in clients
> generated
> > > >> from
> > > >>>>>> the OpenAPI spec.
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>
> > > >>
> > >
> >
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=263425797
> > > >>>
> > >
> > >
> >
>

Reply via email to