คำถามติดแท็ก distributed-systems

คำถามเกี่ยวกับความท้าทายในการแก้ปัญหากับตัวแทนที่ร่วมมือกันหลายคน แต่แยกกัน

4
ความแปลกใหม่ใน MapReduce คืออะไร?
ไม่กี่ปีที่ผ่านมาMapReduceได้รับการยกย่องว่าเป็นการปฏิวัติการเขียนโปรแกรมแบบกระจาย นอกจากนี้ยังมีนักวิจารณ์แต่โดยมากแล้วก็มีโฆษณาที่กระตือรือร้น มันยังจดสิทธิบัตร! [1] ชื่อนี้เป็นที่ระลึกถึงmapและreduceในการเขียนโปรแกรมการทำงาน แต่เมื่อฉันอ่าน (Wikipedia) ขั้นตอนแผนที่:โหนดหลักจะรับอินพุตแบ่งเป็นปัญหาย่อยที่เล็กกว่าและกระจายไปยังโหนดผู้ปฏิบัติงาน โหนดผู้ปฏิบัติงานอาจทำสิ่งนี้อีกครั้งในทางกลับนำไปสู่โครงสร้างต้นไม้หลายระดับ โหนดผู้ปฏิบัติงานประมวลผลปัญหาที่เล็กกว่าและส่งคำตอบกลับไปที่โหนดหลัก ลดขั้นตอน:โหนดหลักจะรวบรวมคำตอบสำหรับปัญหาย่อยทั้งหมดและรวมเข้าด้วยกันในรูปแบบเอาต์พุตบางส่วน - คำตอบสำหรับปัญหาที่พยายามแก้ไขในขั้นต้น หรือ [2] Internals of MAP: [... ] MAP แยกค่าอินพุตเป็นคำ [... ] MAP หมายถึงการเชื่อมโยงคู่คีย์ / ค่าที่กำหนดของอินพุตกับคู่กลางคีย์ / ค่าที่อาจเกิดขึ้น Internals of REDUCE: [... ] [REDUCE] ดำเนินการรวมที่จำเป็น (พูดลด): รับค่าจำนวนมากและลดลงเป็นค่าเดียว ฉันไม่สามารถช่วย แต่คิดว่า: นี่คือการแบ่ง & พิชิต (ในแง่ของการควบรวมกิจการ) ธรรมดาและเรียบง่าย! ดังนั้นมีความแปลกใหม่ (แนวคิด) ใน MapReduce …

6
การคำนวณแบบกระจายเทียบกับแบบขนาน
ฉันมักจะได้ยินคนพูดถึงการคำนวณแบบขนานและการคำนวณแบบกระจายแต่ฉันรู้สึกว่าไม่มีขอบเขตที่ชัดเจนระหว่าง 2 และผู้คนมักจะสับสนอย่างง่ายดายในขณะที่ฉันเชื่อว่ามันแตกต่างกันมาก: การคำนวณแบบขนานนั้นมีความเชื่อมโยงกับมัลติเธรดอย่างแน่นหนามากขึ้นหรือวิธีการใช้งาน CPU อย่างเต็มรูปแบบ การคำนวณแบบกระจายหมายถึงแนวคิดของการแบ่งและพิชิตการเรียกใช้งานย่อยในเครื่องที่แตกต่างกันแล้วรวมผลลัพธ์ อย่างไรก็ตามเนื่องจากเราก้าวเข้าสู่ยุคข้อมูลขนาดใหญ่ดูเหมือนว่าความแตกต่างกำลังจะละลายและระบบส่วนใหญ่ในปัจจุบันใช้การผสมผสานระหว่างการคำนวณแบบขนานและแบบกระจาย ตัวอย่างที่ฉันใช้ในงานประจำวันของฉันคือ Hadoop พร้อมแผนที่ / ลดกระบวนทัศน์ระบบการกระจายที่ชัดเจนกับพนักงานที่ปฏิบัติงานบนเครื่องที่แตกต่างกัน แต่ยังใช้ประโยชน์จากเครื่องแต่ละเครื่องด้วยการคำนวณแบบขนาน ฉันต้องการคำแนะนำเพื่อให้เข้าใจว่าจะสร้างความแตกต่างในโลกปัจจุบันได้อย่างไรและถ้าเรายังพูดถึงการคำนวณแบบขนานหรือไม่มีความแตกต่างที่ชัดเจนอีกต่อไป สำหรับฉันดูเหมือนว่าการคำนวณแบบกระจายได้เพิ่มขึ้นอย่างมากในช่วงหลายปีที่ผ่านมาในขณะที่การคำนวณแบบขนานดูเหมือนจะนิ่งซึ่งอาจอธิบายได้ว่าทำไมฉันได้ยินมากขึ้นเกี่ยวกับการกระจายการคำนวณมากกว่าการขนานกัน

6
การซิงโครไนซ์นาฬิกาในเครือข่ายที่มีความล่าช้าไม่สมมาตร
สมมติว่าคอมพิวเตอร์มีนาฬิกาที่แม่นยำซึ่งไม่ได้กำหนดค่าเริ่มต้น นั่นคือเวลาบนนาฬิกาของคอมพิวเตอร์คือเวลาจริงบวกบางส่วนคงที่ คอมพิวเตอร์มีการเชื่อมต่อเครือข่ายและเราต้องการที่จะใช้การเชื่อมต่อที่เพื่อตรวจสอบอย่างต่อเนื่องชดเชยBBBB วิธีการง่ายๆคือคอมพิวเตอร์ส่งแบบสอบถามไปยังเซิร์ฟเวอร์เวลาสังเกตเวลาท้องถิ่นC_1 เซิร์ฟเวอร์เวลาที่ได้รับแบบสอบถามในเวลาและส่งข้อความตอบกลับที่มีกลับไปยังลูกค้าซึ่งได้รับมันในเวลาที่C_2 แล้วเช่นC_1B+C1B+C1B + C_1T B + C 2 B + C 1 ≤ T ≤ B + C 2 T - C 2 ≤ B ≤ T - C 1TTTTTTB+C2B+C2B + C_2B+C1≤T≤B+C2B+C1≤T≤B+C2B + C_1 \le T \le B + C_2T−C2≤B≤T−C1T-C2≤B≤T-C1T - C_2 \le B \le T …

2
ฟังก์ชั่นการตอบสนองการเขียนโปรแกรมและรูปแบบของนักแสดงสัมพันธ์กันอย่างไร
FRP เกี่ยวกับการสตรีมเหตุการณ์และพฤติกรรมผ่านฟังก์ชั่นแท้ รูปแบบของนักแสดง - อย่างน้อยที่สุดตามที่นำมาใช้ใน Akka - เกี่ยวกับการส่งข้อความที่ไม่เปลี่ยนรูป (ซึ่งถือได้ว่าเป็นเหตุการณ์ที่ไม่ต่อเนื่อง) ผ่านวัตถุที่อาจไม่บริสุทธิ์เรียกว่านักแสดง ดังนั้นบนพื้นผิวที่พวกเขาดูเหมือนเกี่ยวข้อง มีอะไรอีกบ้างที่เราสามารถพูดเกี่ยวกับความสัมพันธ์ของพวกเขา? นอกจากนี้สิ่งที่สามารถพูดเกี่ยวกับสิ่งที่พวกเขาอาจจะเหมาะสมกว่าสำหรับโดเมนแอปพลิเคชันที่แตกต่างกัน?

7
เริ่มเรียนรู้เกี่ยวกับทฤษฎีระบบกระจาย
อะไรคือวิธีที่ดีที่สุดที่ทุกคนสามารถทำได้เพื่อให้มีการแนะนำที่ดีเกี่ยวกับทฤษฎีระบบกระจายหนังสือหรือการอ้างอิงใด ๆ และหัวข้อควรได้รับการกล่าวถึงก่อนและมีข้อกำหนดเพื่อเริ่มการเรียนรู้ในหัวข้อนี้

1
การเติมตารางการกำหนดเส้นทางของ Pastry ทำงานอย่างไร
คำถามนี้ถูกย้ายจากการแลกเปลี่ยนกองวิศวกรรมซอฟต์แวร์เพราะสามารถตอบได้ใน Computer Science Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันพยายามใช้ตารางแฮชแบบกระจายของ Pastry แต่มีบางสิ่งที่หลีกเลี่ยงความเข้าใจของฉัน ฉันหวังว่าบางคนสามารถชี้แจงได้ คำเตือน : ฉันไม่ใช่นักเรียนวิทยาศาสตร์คอมพิวเตอร์ ฉันเรียนวิชาวิทยาการคอมพิวเตอร์สองหลักสูตรในชีวิตของฉันและไม่ได้จัดการกับสิ่งที่ซับซ้อนจากระยะไกล ฉันทำงานกับซอฟต์แวร์มาหลายปีแล้วดังนั้นฉันจึงรู้สึกว่าขึ้นอยู่กับภารกิจการนำไปปฏิบัติถ้าฉันสามารถสรุปแนวคิดได้ ดังนั้นฉันอาจจะพลาดอะไรบางอย่างที่ชัดเจน ฉันได้อ่านกระดาษที่ผู้แต่งตีพิมพ์ [1] และฉันมีความก้าวหน้าที่ดี แต่ฉันก็ยังคงติดใจอยู่กับประเด็นนี้ในตารางการจัดเส้นทาง: กระดาษอ้างว่า ตารางการจัดเส้นทางของโหนดคือถูกจัดเป็น แถวที่มีรายการแต่ละรายการ รายการที่แถวของตารางเส้นทางแต่ละอ้างถึงโหนดที่ nodeId แบ่งปัน nodeId ของโหนดปัจจุบันในตัวเลข fi rst n หลัก แต่มีหลักหนึ่งมีค่าที่เป็นไปได้หนึ่งในนอกเหนือจากหลักใน id ของโหนดปัจจุบันRRR⌈log2bN⌉⌈เข้าสู่ระบบ2ข⁡ยังไม่มีข้อความ⌉\lceil \log_{2^b} N\rceil2b−12ข-12^b - 12b−12ข-12^b - 1nnnn+1n+1n + 12b−12ข-12^b - 1n+1n+1n + 1 ย่อมาจากตัวแปรโปรแกรมเฉพาะมัก4 …

4
การวัดความหน่วงแฝงของเครือข่ายทางเดียว
นี่เป็นปริศนาเกี่ยวกับการวัดเวลาในการตอบสนองของเครือข่ายที่ฉันสร้างขึ้น ฉันเชื่อว่าทางออกคือมันเป็นไปไม่ได้ แต่เพื่อน ๆ ไม่เห็นด้วย ฉันกำลังมองหาคำอธิบายที่น่าเชื่อทั้งสองทาง (แม้ว่ามันจะถูกวางเป็นปริศนาฉันคิดว่ามันเหมาะกับเว็บไซต์นี้เพราะมันมีผลบังคับใช้กับการออกแบบและประสบการณ์ของโปรโตคอลการสื่อสารเช่นในเกมออนไลน์ไม่ต้องพูดถึง NTP) สมมติว่าหุ่นยนต์สองตัวอยู่ในห้องสองห้องเชื่อมต่อกันโดยเครือข่ายที่มีเวลาแฝงแบบทางเดียวต่างกันดังที่แสดงในภาพด้านล่าง เมื่อหุ่นยนต์ A ส่งข้อความไปยังหุ่นยนต์ B จะใช้เวลา 3 วินาทีเพื่อให้มันมาถึง แต่เมื่อหุ่นยนต์ B ส่งข้อความไปยังหุ่นยนต์ A จะใช้เวลา 1 วินาทีในการมาถึง เวลาแฝงไม่เคยเปลี่ยนแปลง หุ่นยนต์เหมือนกันและไม่มีนาฬิกาที่แชร์แม้ว่าพวกเขาสามารถวัดระยะเวลา (เช่นพวกเขามีนาฬิกาหยุด) พวกเขาไม่รู้ว่าใครคือหุ่นยนต์ A (ซึ่งข้อความล่าช้า 3 วินาที) และหุ่นยนต์ B (ซึ่งข้อความล่าช้า 1 วินาที) โปรโตคอลเพื่อค้นหาเวลาไปกลับคือ: whenReceive(TICK).then(send TOCK) // Wait for other other robot to wake up send READY …

1
การตัดแต่งกิ่งเบต้าอัลฟา
ฉันกำลังมองหาอัลกอริทึมที่มีประสิทธิภาพซึ่งช่วยให้ฉันสามารถประมวลผลแผนผังการค้นหาขนาดเล็กของหมากรุกด้วยการตัดแบบอัลฟาเบต้าบนสถาปัตยกรรมแบบกระจาย อัลกอริทึมที่ฉันพบ (PVS, YBWC, DTS ดูด้านล่าง) ทั้งหมดค่อนข้างเก่า (1990 เป็นรุ่นล่าสุด) ฉันคิดว่ามีความก้าวหน้าที่สำคัญมากมายตั้งแต่นั้นมา มาตรฐานปัจจุบันในสาขานี้คืออะไร? นอกจากนี้โปรดชี้แนะฉันให้อธิบายคำอธิบายของ DTS ที่งี่เง่าเพราะฉันไม่สามารถเข้าใจได้จากงานวิจัยที่ฉันได้อ่าน อัลกอริทึมดังกล่าวข้างต้น: PVS: การแยกการแปรผันของหลักการ YBWC: Young Brothers Wait Concept DTS: การแยกต้นไม้แบบไดนามิก ทุกคนจะกล่าวถึงที่นี่

1
ใครคือผู้บัญญัติกฎหมายของ Paxos?
ในเอกสารเผยแพร่ระบบน้ำเชื้อPart Time Parliament (The Paxos protocol), Leslie Lamport ตั้งชื่อสมาชิกสภานิติบัญญัติสวมซึ่งมีส่วนเกี่ยวข้องในพิธีสารรัฐสภา Paxon ตามที่เขียนนี้เขาบันทึกว่า: ฉันให้ชื่อนักวิทยาศาสตร์คอมพิวเตอร์แก่สภานิติบัญญัติกรีกซึ่งทำงานในสาขานี้โดยทับศัพท์ด้วยความช่วยเหลือของ Guibas ให้เป็นภาษากรีกปลอม ใครบ้างมีข้อมูลเกี่ยวกับนักวิทยาศาสตร์ที่สมาชิกสภานิติบัญญัติได้รับการตั้งชื่อ? รายชื่อสมาชิกสภานิติบัญญัติในเอกสารและนักวิทยาศาสตร์คอมพิวเตอร์ที่เกี่ยวข้องจะเป็นคำตอบที่เหมาะสมที่สุด ฉันคิดว่าผู้บัญญัติกฎหมายคนแรกที่กล่าวถึงในเอกสาร "Λινχ∂" ได้รับการตั้งชื่อตามแนนซี่ลินช์เนื่องจากอาจออกเสียงได้ว่า "Linch" นอกจากนี้ "ΛεωνίδαςΓκίμπας" จากบรรณานุกรมเป็นสิงห์ Guibas ฉันหลงทางอย่างสิ้นเชิงว่าตัวเองเป็นใคร

1
ทหารทุกคนควรยิงในเวลาเดียวกัน
เมื่อฉันเป็นนักเรียนฉันเห็นปัญหาในหนังสือเรียนออกแบบระบบดิจิตอล / ตรรกะเกี่ยวกับทหาร N ที่ยืนเรียงกันและต้องการถ่ายภาพในเวลาเดียวกัน ปัญหาที่ยากขึ้นคือทหารยืนอยู่ในเครือข่ายทั่วไปแทนที่จะเป็นแถว ฉันแน่ใจว่านี่เป็นปัญหาคลาสสิก แต่ฉันจำชื่อไม่ได้ คุณเตือนฉันได้ไหม

3
ต้นกำเนิดของโมเดลเซิร์ฟเวอร์ไคลเอ็นต์คืออะไร
ฉันสงสัยว่ามีบางคนรู้ที่มาของโมเดลเซิร์ฟเวอร์ลูกค้าหรือไม่ คำนี้มาจากไหน (กระดาษแอปพลิเคชันซอฟต์แวร์หนังสือ)

1
การแยกประเภทการปรับแต่ง
ที่ทำงานฉันได้รับมอบหมายให้อนุมานข้อมูลบางประเภทเกี่ยวกับภาษาแบบไดนามิก ฉันเขียนลำดับของข้อความไปยังletนิพจน์ที่ซ้อนกันเช่น: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } เนื่องจากฉันเริ่มต้นจากข้อมูลประเภททั่วไปและพยายามอนุมานประเภทที่เฉพาะเจาะจงมากขึ้นตัวเลือกที่เป็นธรรมชาติคือประเภทการปรับแต่ง ตัวอย่างเช่นตัวดำเนินการตามเงื่อนไขส่งคืนการรวมของประเภทของสาขาที่เป็นจริงและเท็จ …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

1
หลักการแบบ end-to-end สามารถทำเป็นกรงเล็บได้หรือไม่?
ในช่วงปลายปี 1990 ตอนที่ฉันอยู่ในบัณฑิตวิทยาลัยกระดาษ JH Saltzer; DP Reed; DD คลาร์ก: ข้อโต้แย้ง End-to-end ในการออกแบบระบบ ACM Trans คอมพิวเต Syst 2 (4): 277-288, 1984. DOI = 10.1145 / 357401.357402 มันค่อนข้างจำเป็นต้องอ่านในทุกระบบปฏิบัติการในทุก ๆ ชั้นของมหาวิทยาลัยและมันก็ยังคงเป็นหนึ่งในหลักการที่เป็นแนวทางหลักในการออกแบบอินเทอร์เน็ต (ดูตัวอย่าง: J Kempf, R Austein (eds) และ IAB " การเพิ่มขึ้นของกลางและอนาคตของ End-to-End: ภาพสะท้อนของวิวัฒนาการของสถาปัตยกรรมอินเทอร์เน็ต " RFC 3724, มีนาคม 2004 ) สถานะของหลักการแบบครบวงจร (Saltzer et al., …

1
พิธีการในการเขียนโปรแกรมพร้อมกันและ / หรือกระจาย?
พื้นหลังของฉันมาจากภาษาที่จำเป็นส่วนใหญ่เป็น C, C ++ และ Python ฉันเลือกสคาลาเออร์แลงและแฮสเค็ลสักสองสามปีต่อมาและตั้งแต่นั้นมาก็เริ่มให้ความสนใจในการเขียนโปรแกรมเชิงฟังก์ชั่นและพิธีการทางด้านหลัง ฉันยังสนใจในการเขียนโปรแกรมพร้อมกันและกระจายและได้รับการดูในพิธีการหลังโดยเฉพาะอย่างยิ่งผู้ที่ได้เห็น "แสงของวัน" อย่างน้อยนิด (เช่นการใช้งานจริงหรืออย่างน้อยการใช้งานที่ไหนสักแห่ง) จนถึงตอนนี้ฉันรู้เกี่ยวกับกระบวนการสื่อสารตามลำดับ, โมเดลนักแสดง, พีชคณิตของกระบวนการสื่อสาร, และแคลคูลัสของระบบการสื่อสาร ในบรรดาสิ่งเหล่านี้ฉันรู้ว่าโมเดลนักแสดงได้ตระหนักในภาษาเช่น Erlang, Scala และ Haskell ฉันสงสัยว่ามีรากฐานฉันควรเรียนรู้และฝึกฝนก่อนที่จะจัดการกับเขตข้อมูลเหล่านี้หรือไม่หากมี "คลาสสิค" ที่ฉันควรจะศึกษาก่อนและหากมีคนอื่นที่เป็นที่นิยมที่ฉันอาจพลาดไป

2
ความสอดคล้องภายนอกกับความสามารถเชิงเส้น
ในSpanner, TrueTime และทฤษฎีบท CAP , Eric Brewer เขียน: สิ่งหนึ่งที่ละเอียดอ่อนเกี่ยวกับ Spanner ก็คือมันได้รับ serializability จากล็อค แต่ได้รับความสอดคล้องภายนอก (คล้ายกับlinearizability ) จาก TrueTime [ เน้นเพิ่ม ] คำจำกัดความของความสอดคล้องภายนอกคืออะไรและแตกต่างจากความสามารถเชิงเส้นตรงอย่างไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.