1 คะแนน โดย GN⁺ 2025-02-02 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แนะนำ

    • Hydro เป็นเฟรมเวิร์กการเขียนโปรแกรมแบบกระจายระดับสูงสำหรับ Rust
    • Hydro ช่วยให้เขียนบริการแบบกระจายที่ขยายขนาดได้อย่างรวดเร็ว และรับประกันความปลอดภัยของระบบแบบกระจาย เช่นเดียวกับที่ Rust รับประกันความปลอดภัยของหน่วยความจำ
    • รองรับการรันโปรแกรมแบบกระจายได้อย่างง่ายดายในโหมดทดสอบหรือโหมดดีพลอย
  • คุณสมบัติของ Hydro

    • Hydro เป็นภาษาการไหลของข้อมูลแบบกระจายที่ขับเคลื่อนด้วยรันไทม์ DFIR แบบเธรดเดี่ยวประสิทธิภาพสูง
    • ต่างจากสถาปัตยกรรมดั้งเดิมอย่าง actor หรือ RPC โดยมี API แบบ choreographic ที่สามารถอธิบายการคำนวณข้ามหลายตำแหน่งได้
    • ทำงานร่วมกับ Hydro Deploy เพื่อให้สามารถดีพลอยและรันโปรแกรม Hydro แบบกระจายได้อย่างง่ายดายทั้งบนเครื่องโลคัลหรือบนคลาวด์
  • การคอมไพล์และการดีพลอย

    • Hydro ใช้แนวทางการคอมไพล์แบบสองขั้นตอน
    • โปรแกรม Hydro เป็นโปรแกรม Rust มาตรฐานที่สร้าง แผนการดีพลอย บนแล็ปท็อปของนักพัฒนา
    • แผนนี้จะถูกคอมไพล์เป็น DFIR เพื่อสร้างไบนารีแยกสำหรับแต่ละเครื่องในระบบแบบกระจาย
    • จากนั้นจึงดีพลอยขึ้นคลาวด์โดยใช้แผนที่สร้างขึ้นและสเปกทรัพยากรคลาวด์
  • กรณีการใช้งาน

    • Hydro ถูกใช้ในการพัฒนาระบบแบบกระจายประสิทธิภาพสูง เช่น 2-phase commit และ Paxos
    • กำลังพัฒนาไลบรารีมาตรฐานสำหรับระบบแบบกระจายที่ให้โปรโตคอลเหล่านี้เป็นคอมโพเนนต์ที่นำกลับมาใช้ซ้ำได้
  • ข้อควรทราบ

    • เอกสารของ Hydro ยังอยู่ระหว่างการจัดทำ และหากมีคำถามหรือพบบั๊ก แนะนำให้เปิด issue ใน GitHub repository ของ Hydro

1 ความคิดเห็น

 
GN⁺ 2025-02-02
ความคิดเห็นบน Hacker News
  • มีวิดีโอบรรยายที่ดีเกี่ยวกับโปรเจกต์ Hydro บน YouTube
    • เนื้อหาเน้นที่ DFIR
  • น่าจะช่วยให้เข้าใจได้มากขึ้นหากมีกรณีการใช้งานจริง
  • สงสัยว่าถ้ามีภาษากลางและรันไทม์ของตัวเอง จะทำให้ข้อดีของ Rust หายไปหรือไม่
    • เดิมคาดหวังว่าจะเป็นภาษาสำหรับจัดการ Rust binary ให้เป็นระบบกระจายที่สอดคล้องและทำงานได้จริง แต่ดูเหมือนว่าจะเป็นการเขียน DFIR มากกว่า
  • โปรเจกต์นี้น่าสนใจมากจริง ๆ
    • อยากรู้ว่ามีใครที่คุ้นเคยกับสายงานนี้พอจะยกตัวอย่างก่อนหน้านี้ได้ไหม
    • อยากรู้ว่ามีคนสร้างเฟรมเวิร์กคล้ายกันในภาษาอื่นบ้างหรือไม่
    • มีคนที่ทำงานด้าน dataflow อยู่แล้ว และเคยคิดว่า Materialize เจ๋งมาก
    • เคยใช้ Kafka Streams และคิดมาตลอดว่าต้องมีเฟรมเวิร์กมารวมสิ่งนี้เข้าด้วยกัน
  • ชื่นชมความพยายามนี้ แต่ก็อยากให้ Rust ecosystem มี "akka.rs" เข้ามา
  • ในมุมของ dataflow อยากรู้ว่าเมื่อเทียบกับ Timely แล้วเป็นอย่างไร
    • อยากรู้ว่าใน IR สามารถแสดง control flow อย่างเช่นลูปได้หรือไม่
  • สงสัยว่าแต่ละ "process" ถูกดีพลอยเป็นไบนารีแยกกันและรันเป็นโปรเซสแยกหรือไม่
    • ถ้าใช่ ก็น่าจะมีปัญหาเรื่อง overhead ที่เพิ่มขึ้น
    • อยากรู้ว่าการสื่อสารความเร็วสูงทำได้อย่างไร
    • อยากรู้ว่ามีกลไก shared-memory IPC ที่เร็วหรือไม่
    • ดูเหมือนจะไม่มีการพูดถึงการทำงานร่วมกับ async
    • โค้ดส่วนใหญ่ที่จัดการ networking เปลี่ยนไปใช้ async กันแล้ว
    • สำหรับหลายอย่างที่ต้องใช้ networking การหาไลบรารี async ที่ดีเป็นเรื่องยาก
  • ดูเจ๋งมากจริง ๆ โดยเฉพาะส่วนของการดีพลอยที่ดูมีเอกลักษณ์
    • หวังว่าจะมีเอกสารที่ละเอียดกว่านี้
    • โดยเฉพาะส่วน Streams, Singletons, Optionals ที่สำคัญมาก น่าอยากรู้รายละเอียด
  • ชอบโมเดลการเขียนโปรแกรมนี้
    • สงสัยว่าตอนเขียนแอปพลิเคชันใหม่ ระบบทำ network optimization ให้หรือไม่
    • สงสัยว่าจัดการกับ network bottleneck และ congestion อย่างไร
  • สงสัยว่าเมื่อเทียบกับการใช้ Ballista สำหรับ data pipeline แล้วเป็นอย่างไร
    • แบบหลังสร้างบน Apache Arrow และ Apache Datafusion จึงได้ประโยชน์หลายอย่าง