Git Product home page Git Product logo

Comments (7)

SanjayVas avatar SanjayVas commented on July 21, 2024 1

It should be possible to update the Kingdom using the ComputationLogEntries service. Adding a log entry with an error type of PERMANENT should put the parent Computation into the FAILED state.

See computation_log_entry.proto.

from cross-media-measurement.

wangyaopw avatar wangyaopw commented on July 21, 2024

I would prefer to add another method in the ComputationsService.

It is a little weird to call one service to set computation result, and call another one to fail a computation. Using ComputationLogEntriesService to fail a computation is like a side effect of logging an error.

from cross-media-measurement.

SanjayVas avatar SanjayVas commented on July 21, 2024

I don't think another method is needed, given the following two properties:

  1. If there's a ComputationLogEntry indicating a permanent failure, the Computation should be in the FAILED state. Otherwise, the state is inconsistent.
  2. If the Computation has failed due to an unexpected error from a Duchy, there should be a corresponding ComputationLogEntry.

An alternative is to drop the error type from ComputationLogEntry and instead have failure information represented in the ComputationParticipant. This would be closer to how Requisition refusal works, where the Requisition has refusal details and refusing a Requisition fails the parent Computation/Measurement.

from cross-media-measurement.

wangyaopw avatar wangyaopw commented on July 21, 2024

I like the idea of moving the permanent failure to ComputationParticipant.

from cross-media-measurement.

SanjayVas avatar SanjayVas commented on July 21, 2024

CC @efoxepstein who initially added report log entries.

from cross-media-measurement.

efoxepstein avatar efoxepstein commented on July 21, 2024

I feel like we want to track error types in ComputationLogEntry too to make it easier to correlate log entries with what went wrong. That said, we could keep the source of truth for the current state at the ComputationParticipant level.

from cross-media-measurement.

wangyaopw avatar wangyaopw commented on July 21, 2024

FYI, currently all logging rpcs from the duchy to the kingdom are try-and-ignore-failure style. In other words, if a CreateComputationLogEntry rpc fails, the mill won't revert local changes and retry again later.

When we use the ComputationParticipant to fail a computation, we need to make sure the rpc succeeds.

from cross-media-measurement.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.