กลับไปหน้าบทความ

อ่าน 3 นาที

การไหลของข้อมูลแบบกระจาย

การไหลของข้อมูล แบบกระจาย (หรือเรียกย่อว่า การไหลแบบกระจาย ) หมายถึงชุดของ เหตุการณ์ ใน แอปพลิเคชัน หรือ โปรโตคอล แบบ กระจาย

การไหลของข้อมูลแบบกระจาย

ภาพประกอบแสดงแนวคิดพื้นฐานที่เกี่ยวข้องกับการกำหนดนิยามของกระแสข้อมูลแบบกระจาย

การไหลของข้อมูลแบบกระจาย (หรือเรียกย่อว่าการไหลแบบกระจาย ) หมายถึงชุดของเหตุการณ์ใน แอปพลิเคชัน หรือโปรโตคอลแบบ กระจาย

การไหลของข้อมูลแบบกระจายทำหน้าที่คล้ายกับตัวแปรหรือพารามิเตอร์ของเมธอดในภาษาโปรแกรมเช่นJavaโดยสามารถแทนสถานะที่จัดเก็บหรือสื่อสารโดยเลเยอร์ของซอฟต์แวร์ได้ ต่างจากตัวแปรหรือพารามิเตอร์ซึ่งแทนหน่วยของสถานะที่อยู่ในที่เดียว การไหลแบบกระจายนั้นเป็นแบบไดนามิกและกระจายตัว กล่าวคือ ปรากฏขึ้นพร้อมกันในหลายตำแหน่งภายในเครือข่ายในเวลาเดียวกัน ดังนั้น การไหลแบบกระจายจึงเป็นวิธีที่เป็นธรรมชาติมากกว่าในการจำลองความหมายและการทำงานภายในของระบบแบบกระจายบางประเภท โดยเฉพาะอย่างยิ่ง นามธรรมของการไหลของข้อมูลแบบกระจายถูกนำมาใช้เป็นวิธีที่สะดวกในการแสดงความสัมพันธ์เชิงตรรกะระดับสูงระหว่างส่วนต่างๆ ของโปรโตคอลแบบกระจาย[ 1 ] [ 2 ] [ 3 ]

คุณสมบัติที่ไม่เป็นทางการ

การไหลเวียนของข้อมูลแบบกระจายนั้นมีคุณสมบัติที่ไม่เป็นทางการดังต่อไปนี้

  • อะซิงโครนัสไม่บล็อกและทางเดียวแต่ละเหตุการณ์แสดงถึงอินสแตนซ์เดียวของการเรียกใช้เมธอดแบบไม่บล็อกทางเดียว และ อะซิงโครนัส หรือรูปแบบอื่นของ การส่งข้อความแบบชัดเจนหรือ โดยนัย ระหว่างสองเลเยอร์หรือส่วนประกอบซอฟต์แวร์ ตัวอย่างเช่น แต่ละเหตุการณ์อาจแสดงถึงคำขอเดียวในการส่งแพ็กเก็ต แบบ มัลติ แคสต์ ซึ่งส่งโดยเลเยอร์แอปพลิเคชัน ไปยัง โปรโตคอลมัลติแคสต์พื้นฐานข้อกำหนดที่ว่าเหตุการณ์เป็นแบบทางเดียวและอะซิงโครนัสมีความสำคัญ การเรียกใช้เมธอดที่อาจส่งคืนผลลัพธ์โดยปกติจะแสดงเป็นสองโฟลว์แยกกัน: โฟลว์หนึ่งที่แสดงถึงคำขอ และอีกโฟลว์หนึ่งที่แสดงถึงการตอบสนอง[ 4 ] [ 5 ]
  • เป็นเนื้อเดียวกัน ทิศทางเดียวและสม่ำเสมอเหตุการณ์ทั้งหมดในกระแสแบบกระจายทำหน้าที่เดียวกันทั้งในด้านการทำงานและตรรกะ และมีความสัมพันธ์กัน โดยทั่วไป เราต้องการให้เหตุการณ์เหล่านั้นแสดงถึงการเรียกใช้เมธอดหรือการแลกเปลี่ยนข้อความระหว่างอินสแตนซ์ ของ เลเยอร์การทำงานเดียวกันหรืออินสแตนซ์ของส่วนประกอบ เดียวกัน แต่อาจอยู่บนโหนด ที่แตกต่างกัน ภายในเครือข่ายคอมพิวเตอร์นอกจากนี้ เหตุการณ์ทั้งหมดต้องไหลไปในทิศทางเดียวกัน (เช่น เลเยอร์หรือส่วนประกอบประเภทหนึ่งจะสร้างเหตุการณ์เสมอ และอีกประเภทหนึ่งจะรับเหตุการณ์เสมอ) และมีเพย์โหลด ประเภทเดียวกัน ตัวอย่างเช่น ชุดเหตุการณ์ที่รวมคำขอแบบมัลติแคสต์ทั้งหมดที่ออกโดยเลเยอร์แอปพลิเคชันเดียวกันไปยังโปรโตคอลมัลติแคสต์เดียวกันถือเป็นกระแสแบบกระจาย ในทางกลับกัน ชุดเหตุการณ์ที่รวมคำขอแบบมัลติแคสต์ที่สร้างโดยแอปพลิเคชันที่แตกต่างกันไปยังโปรโตคอลมัลติแคสต์ที่แตกต่างกันจะไม่ถือว่าเป็นกระแสแบบกระจาย และชุดเหตุการณ์ที่แสดงถึงคำขอแบบมัลติแคสต์ รวมถึงการรับทราบและการแจ้งเตือนข้อผิดพลาดก็จะไม่ถือว่าเป็นกระแสแบบกระจายเช่นกัน[ 4 ] [ 6 ]
  • พร้อมกันต่อเนื่องและกระจายการไหลมักจะรวมถึงเหตุการณ์ทั้งหมดที่ไหลระหว่างซอฟต์แวร์สองชั้นพร้อมกัน ณ ตำแหน่งต่างๆ และในช่วงเวลาที่จำกัดหรือไม่มีที่สิ้นสุด ดังนั้นโดยทั่วไป เหตุการณ์ในการไหลแบบกระจายจะกระจายทั้งในเชิงพื้นที่ (เกิดขึ้นที่โหนดต่างๆ) และในเชิงเวลา (เกิดขึ้นในเวลาที่แตกต่างกัน) ตัวอย่างเช่น การไหลของคำขอแบบมัลติแคสต์จะรวมถึงคำขอทั้งหมดดังกล่าวที่ทำโดยอินสแตนซ์ของแอปพลิเคชันที่กำหนดบนโหนดต่างๆ โดยปกติ การไหลดังกล่าวจะรวมถึงเหตุการณ์ที่เกิดขึ้นบนโหนดทั้งหมดที่เข้าร่วมในโปรโตคอลมัลติแคสต์ที่กำหนด การไหลที่เหตุการณ์ทั้งหมดเกิดขึ้นที่โหนดเดียวกันจะถือว่าเป็นการไหลที่เสื่อมสภาพ[ 3 ] [ 5 ]

การเป็นตัวแทนอย่างเป็นทางการ

ในทางรูปแบบ เราแสดงเหตุการณ์แต่ละเหตุการณ์ในโฟลว์แบบกระจายด้วยควอดรูเพิลในรูปแบบ (x,t,k,v) โดยที่xคือตำแหน่ง (เช่น ที่อยู่เครือข่ายของโหนดทางกายภาพ) ที่เหตุการณ์เกิดขึ้นtคือเวลาที่เกิดเหตุการณ์kคือเวอร์ชันหรือหมายเลขลำดับที่ระบุเหตุการณ์เฉพาะ และvคือค่าที่แสดงถึงเพย์โหลดของเหตุการณ์ (เช่น อาร์กิวเมนต์ทั้งหมดที่ส่งผ่านในการเรียกเมธอด) [ 1 ] [ 5 ]โฟลว์แบบกระจายแต่ละรายการเป็นเซต (อาจเป็นอนันต์) ของควอดรูเพิลดังกล่าวที่ตรงตามคุณสมบัติอย่างเป็นทางการสามประการต่อไปนี้

  • สำหรับจุดเวลาใดๆtจะมีเหตุการณ์ในกระแสที่เกิดขึ้น ณ เวลาtหรือก่อนหน้านั้นได้เพียงจำนวนจำกัดเท่านั้น ซึ่งหมายความว่าในกระแสใดๆ เราสามารถชี้ไปยังจุดเวลาที่กระแสเริ่มต้นได้เสมอ กระแสเองอาจเป็นอนันต์ ในกรณีเช่นนั้น ณ จุดเวลาใดๆ ในที่สุดเหตุการณ์ใหม่จะปรากฏขึ้นในกระแส
  • สำหรับเหตุการณ์e_1และe_2 ใดๆ ที่เกิดขึ้นในสถานที่เดียวกัน หาก e_1 เกิดขึ้นก่อน e_2 หมายเลขเวอร์ชันใน e_1 จะต้องน้อยกว่าหมายเลขเวอร์ชันใน e_2 ด้วยเช่นกัน
  • สำหรับเหตุการณ์ e_1และe_2ใดๆที่เกิดขึ้นในตำแหน่งเดียวกัน หากเหตุการณ์ทั้งสองมีหมายเลขเวอร์ชันเดียวกัน ค่าของเหตุการณ์ทั้งสองก็ต้องเหมือนกันด้วย

นอกเหนือจากที่กล่าวมาข้างต้นแล้ว กระแสการไหลยังสามารถมีคุณสมบัติเพิ่มเติมได้อีกหลายประการ

  • ความสม่ำเสมอการไหลแบบกระจายจะถือว่าสม่ำเสมอหากเหตุการณ์ที่มีเวอร์ชันเดียวกันจะมีค่าเดียวกันเสมอ แม้ว่าจะเกิดขึ้นในสถานที่ต่างกันก็ตาม การไหลที่สม่ำเสมอโดยทั่วไปแสดงถึงการตัดสินใจโดยรวมประเภทต่างๆ ที่ทำโดยโปรโตคอลหรือแอปพลิเคชัน
  • ความเป็นเอกรูป (Monotonicity ) การไหลแบบกระจายจะเรียกว่ามีความเอกรูปอ่อน (weakly monotonic)หากสำหรับเหตุการณ์คู่ใด ๆ e_1 และ e_2 ที่เกิดขึ้นในตำแหน่งเดียวกัน หาก e_1 มีค่าน้อยกว่า e_2 แล้ว e_1 จะต้องมีค่าน้อยกว่า e_2 การไหลแบบกระจายจะเรียกว่ามีความเอกรูปเข้ม (strongly monotonic ) (หรือเรียกง่าย ๆ ว่าเอกรูป ) หากเป็นจริงแม้สำหรับเหตุการณ์คู่ใด ๆ e_1 และ e_2 ที่เกิดขึ้นในตำแหน่งที่แตกต่างกัน การไหลที่มีความเอกรูปเข้มจะมีความสอดคล้องกันเสมอ โดยทั่วไปแล้วจะแสดงถึงการตัดสินใจที่ไม่สามารถย้อนกลับได้หลายประเภท การไหลที่มีความเอกรูปอ่อนอาจมีความสอดคล้องกันหรือไม่ก็ได้[ 3 ] [ 4 ]
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Distributed_data_flow&oldid=1306715080 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การไหลของข้อมูลแบบกระจาย

การไหลของข้อมูล แบบกระจาย (หรือเรียกย่อว่า การไหลแบบกระจาย ) หมายถึงชุดของ เหตุการณ์ ใน แอปพลิเคชัน หรือ โปรโตคอล แบบ กระจาย

คุณสมบัติที่ไม่เป็นทางการ

การไหลเวียนของข้อมูลแบบกระจายนั้นมีคุณสมบัติที่ไม่เป็นทางการดังต่อไปนี้

การเป็นตัวแทนอย่างเป็นทางการ

ในทางรูปแบบ เราแสดงเหตุการณ์แต่ละเหตุการณ์ในโฟลว์แบบกระจายด้วยควอดรูเพิลในรูปแบบ (x,t,k,v) โดยที่ x คือตำแหน่ง (เช่น ที่อยู่เครือข่ายของโหนดทางกายภาพ) ที่เหตุการณ์เกิดขึ้น t คือเวลาที่เกิดเหตุการณ์ k คือเวอร์ชันหรือหมายเลขลำดับที่ระบุเหตุการณ์เฉพาะ และ v...