מי יכול מדבר עם מי?
- ההנחה היא mesh, כאשר חייב להיות אחד (או כמה) שמקים את הראשת
אם כל אחד יבחר לו עם מי לעשות חיבור ראשוני, ייתכן ונקבל עצים נפרדים שלא מחוברים בניהם.
- בהמשך צריך להניח ש 70% מאחרי nat כל שהוא ipv4, אני מניח שבשלב הזה צריק לחשוב על פרוטוקול כמו קאדמילה - אבל אני ממש לא שם [ניסיתי להבין איך זה עובד ולא ממש הצלחתי]
יש שעון משותף?
ילכול אחד שעון משל עצמו, לא ניתן ליסמוך על ntp לסנכרון,או סדר טרנזקציות
אבל כדי לבדוק ייעילות המודל, ניתן טריגר כמו שעון לכל ה nodes
- המטרה שבפעימה הזאת יעשו את המקסימום האפשרי.
יש מזהים יחודיים לכולם?
כן, אבל כדי שאפשר יהיה לדבג נכניס אותם כמיספר רץ.
ל Job שרץ יש uuid
איך מעבירים את התוצאה?
חשבתי על זה, שאת התוצאה אפשר להעביר ישירות למי שיזם, אפילו לא צריך לשמור את הנתיב ממי שיזם.
ניתן לבדוק מי מה nodes אין לו את ה job הזה ולהפיץ אליו
יש שטח אחסון משותף?
לא, המטרה לאתר את הסרט [או מחרוזת מזהה] הספציפי אצל משהוא ספציפי ולהביא ישירות ממנו
העברת הודעות?
http post
תודה
שאלות שעזרו לי להבין
חשבתי על משהוא כזה
קוד: |
class Job {
uuid=uuidv4();
jobRunStatus=JobRunStatus.Running
sttToFind: string
stopAfterFound: number //-i is infinet
maxChainLen: number //-i is infinet
finishedResultsItemIds:number[]=[]
currentChainItemIds: number[] = []
constructor(sttToFind: string, stopAfterFound: number, maxChainLen: number){
this.sttToFind = sttToFind;
this.stopAfterFound = stopAfterFound
this.maxChainLen = maxChainLen
}
get copyOperator(): Job{
const copy = new Job(this.sttToFind, this.stopAfterFound, this.maxChainLen);
copy.currentChainItemIds = [...this.currentChainItemIds];
return copy;
}
doRun(item: Item){
debugger;
if (this.jobRunStatus === JobRunStatus.Running) {
console.log(`running job ${this.sttToFind} for item ${item.id}`)
if (item.itemDataStorage.indexOf(this.sttToFind) > -1){
this.finishedResultsItemIds.push(item.id)
if (this.finishedResultsItemIds.length >= this.stopAfterFound){
this.jobRunStatus = JobRunStatus.Finished
} else {
//do subitems already has this job uuid, or un stable
//propegate to those who are not with
//currentChainItemIds.push(subItemId)
console.log("Propegate_to_child_Items(this_item_to_report_back)")
}
}
}
if (this.jobRunStatus === JobRunStatus.Finished) {
console.log(`# Finish job ${this.sttToFind} result in items`)
console.log(this.finishedResultsItemIds)
console.log("#")
}
}
}
|