לדלג לתוכן

פרויקט שירות מקבילי ורשת

נרחיב אחרי פרק 9 את מנוע האחסון לשירות בעל IPC מקומי ופרוטוקול רשת. ההרחבה כוללת שני backends של המתנה או I/O, לדוגמה epoll ומסלול io_uring שמתאים לחוזה שנבחר.

הממשק מגדיר framing, גרסה, מגבלת הודעה, timeout וביטול. הלקוח יכול לברר פעולה שתוצאתה אינה ידועה לאחר ניתוק. הclient האיטי אינו מחזיק זיכרון ללא גבול, וshutdown אינו משחרר buffer שהקרנל עדיין משתמש בו.

משווים p99, שיעור הצלחה וצריכת משאבים על workload זהה. מציינים במפורש אם ההשוואה היא readiness מול readiness או קריאה אסינכרונית ישירה; אלה אינם אותו מנגנון רק משום ששניהם משתמשים בio_uring בשם.

מגישים בדיקות partial frames, ניתוק אחרי effect, exhaustion וביטול במהלך I/O. ההבדל בין backends צריך להישאר מאחורי חוזה תוצאה ובעלות משותף.