-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
State diagrams #432
base: master
Are you sure you want to change the base?
State diagrams #432
Conversation
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally OK, but:
Some legend to this diagram would be nice. If someone see for the first time this diagram it won't be obvious for reader why some of these states are yellow or blue. Also color of messages: why some of these messages are orange or blue? I don't know if it should be like this but some of messages names are on the top of few lines e.g SubtaskResultsVerify
before VERIFICATION FILE TRANSFER
state, also `all files uplodaded below VFT state.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please clarify the questions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- in
ADDITIONAL VERIFICATION
, eithertimeout
should bet > rejection + AVCT + SVT
orverification successful
should bet < rejection + AVCT + SVT
; right now both cases are NOT mutally exclusive - the same applies for
VERIFICATION FILE TRANSFER
- shouldn't be there some additional margin for
ADDITIONAL VERIFICATION
? Now both have exacly the same timeout - OK, I see that in almost all cases
timeout
is not mutally exclusive with the second path (becasue of=
). Exception would beADDITIONAL VERIFICATION
: int code there is
if not current_time <= subtask_results_rejected.timestamp + settings.ADDITIONAL_VERIFICATION_CALL_TIME:
return message.concents.ServiceRefused(
reason=message.concents.ServiceRefused.REASON.InvalidRequest,
)
- In code
timeout
happens with the=
sign, so all conditions should havet < SOME + VARIABLES + AND + TIMESTAMPS
FORCE GET TASK RESULTS
deadline is:
force_get_task_result_deadline = (
client_message.report_computed_task.task_to_compute.compute_task_def['deadline'] +
2 * settings.CONCENT_MESSAGING_TIME +
calculate_maximum_download_time(client_message.report_computed_task.size)
)
(NOT report + MDT + MAT + 2MMTT
),
also in the code there is no check that report + MDT < t
7) In FORCE GET TASK RESULTS
, deadline (in the code) for file uploads IS: report.timestamp + FAT +CMT
and NOT report + 2MDT + 3MAT + 4MMTT + CMT
More general comments:
- it would be nice to have a legend, stating what colors mean what for messages and for states
- I assume that green arrow is "positive" scenario and red is "failed". Black are, let's say, entries. If my understanding is correct, shouldn't the arrow between
VERIFICATION FILE TRANSFER
andADDITIONAL VERIFICATION
be green?
@rwrzesien It sounds like your remarks are for the timing diagram, not state diagram. I will respond in #431.
Done.
Orange ones are from the provider, blue ones are from the requestor. It's now in the description.
They're over the edges coming out of different states. The same message can be accepted when the subtask is in different states. |
Fixed. The idea behind this when I first created those diagrams was that each transition was supposed to have a specific trigger. I wanted it to show that specifically But I see that this is confusing so I changed the conditions. Now they're mutally exclusive.
I changed it all to
I'm not sure what you mean.
Fixed. Looks like I updated this on the timing diagram but I forgot to fix the state diagram as well.
That check should be there. If it's not, it is a bug, please report it. That being said, the correct condition is
If it's based on FAT in the code then it's probably still the old implementation based on #12. It was supposed to be fixed in #166. Also, the condition should be based on
Done.
Right. Fixed. The green ones are outcomes that are positive for the one who started the use case. Red ones are negative. Black ones are just neutral transitions. |
786754f
to
0e4b21d
Compare
I have uploaded the updated diagram to the #139 blueprint too. Here's a short summary of all changes made so far: #139 (comment). |
Now that I think about it, you probably mean the timeout for file upload and for AVCT interval is supposed to be long enough to allow the provider to submit |
@cameel
This is not what I meant. Between |
New: #461
Fixed: #452 |
@cameel, 2 more things:
EDIT: |
@cameel ,
It the legend there is transition to a passive states indicating rejection/acceptance of provider's claim. I think it should be client's claim as in |
…tions Refactor log_string_message and log_error_message
That's on purpose. We're already in the Actually, I think I'm going to remove the lower limits from the other cases of this message to make it consistent with #532. But I'm not adding this or changes from #532 to the diagram yet because I want the diagram to match the current code.
Sorry, what I said above was incorrect. It's positive for the provider, not for the one who started the case. The diagram is correct. Green is alwys positive for the provider, not for the one who started. In Do you think I should reword it? |
I don't see it. The one between It might be a rendering difference in SVG. For example due to some fonts missing and others being subtituted. I may be able to fix it by using different fonts but I first have to see it. |
…versions) - These are Concent states, not task states. A task can change its state also when provider and requestor communicate directly, without Concent.
…cation - Also adjust the state diagram so that file uploads can end before the timeout
…ultsResponse, not SubtaskResultAccepted or SubtaskResultRejected directly
…nt overrules requestor's decision
- Most times are now based on TaskToCompute.deadline, not ReportComputedTask.timestamp - Times in the result transfer use case have been simplified (they're no longer based on constants like MMTT)
…TIONAL VERIFICATION should have been green
…e detailed diagram
Diagrams updated. Summary of changes:
|
…y on the detailed diagram
Actually I see that the current code does not make this distinction. Well, OK. I've changed the diagram so that all conditions for this message are identical. |
@cameel Actually it is not seen there. OK, as you said it's difference in rendering. So for me all is OK :) |
Pawel Kisielewicz seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
This is the state diagram from #139 blueprint and another, simpler one showing the same thing. It is supposed to have the same states and transitions but without detailing conditions in which the transition happens.
Before reviewing please read #431 (comment). Same rules apply here.