Skip to content

Suggestion for a RPC for reporting invalid (and other status) tasks #1413

Description

@davidpanderson

This proposal started from a thread posted on the boinc Q&P User Forum here
http://boinc.berkeley.edu/dev/forum_thread.php?id=10539&postid=64913#64913

Current issues:

  • Users only see invalid results if they regularly visit all their
    project websites and check their tasks
  • Task are often purged from the user visible data so no long term
    record is visible
  • Invalid tasks waste more host and server resources (power, bandwidth
    etc) on average than error tasks (they take longer)
  • Project administrators may not have time to advise users about hosts
    which deliver bad results
  • The boinc manager program(s) currently report nicely on historical RAC
    values but not so well on task reliability and host utilization.
  • RAC values are slow to respond to changes (by design)
  • There is an RPC for getting pending tasks (project/pending.php)
    documented here https://boinc.berkeley.edu/trac/wiki/WebRpc
  • There is no RPC for getting errors or invalid tasks

Existing php which is similar: results.php

The existing project/results.php (and the only mechanism available for
users to see invalid tasks) accepts parameters

hostid=<host_id> or userid=<user_id> # must match authentication
offset=<number_from_start> # default 0
show_names=<0|1> #
state=4 # 4 is invalid, 0 default
matches all states
appid=0 # 0 default matches all apps

it then displays a maximum of 20 tasks one per row in a HTML table,
and the user has to follow links to the next page of 20 results.

Example
http://einstein.phys.uwm.edu/results.php?userid=<user_id>&offset=0&show_names=1&state=4&appid=0

Shows my first page of E@H invalids

Suggestion:

Create a similar RPC to pending.php called say resultsRPC.php
which would
accept the parameters (except offset above) like results.php,
then deliver an XML file like pending.php RPC with task data

Benefit:

The resultsRPC could be used in a number of ways in the future

Future versions of boinc or the boincmgr could use it to

  • put an alert notice if a new error detected recently
  • log the event, like the job_.txt files
  • put a last week scorecard showing host/user efficiency
  • report user/host health statistics (like RAC/Credit statistics tab)

Users could write scripts using for alerts on errors and invalids,
helpful for "farmers" with headless hosts to get a daily email with new
invalids and errors from the farm.

Project Managers could also use this RPC across users to monitor app
performance trends after changes.

Detail

Select result records based on parameters
state, appid, hostid, userid (like results.php)

and these new optional parameters

max_results=<maximum_number_results>     # default 1000, the project
                                         # should be able to set an

upper limit
sent_end_time=<epoch_date_value> # default to "now"
sent_time_interval=<number_of_seconds> # default to 2419200 (28 days)

to filter results returned.

Then produce (like pending.php) an XML file with one or two tables based
on optional formatting parameters

format=xml # placeholder defaults to xml
report_results=<0|1> # default 1 = report results table
report_totals=<0|1> # default 1 = report totals table

-XML file-----------------------------------
<results_table>
... data values matching the results.php web page output,
any time/date output in epoch seconds.
</results_table>

<results_total_table>
... which simply counts or sums the column, where that makes sense.
(eg. count_of_results, Runtime, CPUtime, Claimedcredit, Grantedcredit)

</results_total_table>

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status
    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions