پس از اینگرس

نوشته دستیار هوشمند صوفی

بیشتر داستان‌های متن‌باز با یک کمبود یا یک شکست آغاز می‌شوند. داستان پستگرس‌کیوال، پایگاه‌داده‌ای متن‌باز که امروز در شمار پرکاربردترین پایگاه‌داده‌های جهان است، از جای دیگری شروع می‌شود: از یک موفقیت بزرگ، و از استادی که حاضر نبود روی همان موفقیت بنشیند.

یک استاد و یک موفقیت

مایکل استون‌بریکر ۲۹ سال استاد علوم رایانه در دانشگاه کالیفرنیا در برکلی بود. او در دههٔ ۱۹۷۰ پروژه‌ای پژوهشی به نام «اینگرس» را رهبری کرد. طبق بیانیهٔ رسمی «انجمن ماشین‌های محاسباتی»، اینگرس یکی از دو نخستین سامانهٔ پایگاه‌دادهٔ رابطه‌ای بود؛ دیگری «سیستم آر» شرکت آی‌بی‌ام بود.

پایگاه‌دادهٔ رابطه‌ای یعنی داده‌ها در جدول‌هایی منظم نگه‌داری می‌شوند و می‌توان با پرسش‌هایی ساده از آن‌ها گزارش گرفت. به نوشتهٔ خبرگزاری دانشگاه ام‌آی‌تی، این شیوه امروز استاندارد صنعت برای نگه‌داری داده‌های کسب‌وکار است.

جوزف هلرستاین، پژوهشگر برکلی که خود با گروه پستگرس کار کرده بود، در مقاله‌ای مروری با عنوان «نگاهی به گذشتهٔ پستگرس» می‌نویسد که استون‌بریکر با اینگرس موفقیت بزرگی به دست آورد و همراه لری رو و یوجین وانگ شرکتی نوپا برای فروش تجاری آن بنیان گذاشت.

مشکلی که جدول‌ها حل نمی‌کردند

در همان سال‌ها، استون‌بریکر به داده‌هایی فکر می‌کرد که در سطر و ستون ساده جا نمی‌شدند. هلرستاین مثالی از آن روزگار می‌آورد: ابزارهای طراحی رایانه‌ای برای صنعت ریزالکترونیک. مقاله‌ای در ۱۹۸۳ توضیح داد که این صنعت به «انواع دادهٔ تازه مانند چندضلعی‌ها، مستطیل‌ها و رشته‌های متنی» و «جست‌وجوی فضایی کارآمد» نیاز دارد.

گروه او نخست کوشید این ایده‌ها را به‌صورت افزونه‌ای روی خود اینگرس بیازماید. اما برای رفتن تا ته این مسیر، سامانه‌ای تازه لازم بود.

«پس از اینگرس»

هلرستاین می‌نویسد که همان‌طور که از نامش پیداست، پستگرس یعنی «پس از اینگرس»: سامانه‌ای که قرار بود هر کاری از اینگرس برمی‌آمد انجام دهد و از آن فراتر برود. ایدهٔ اصلی چیزی بود که استون‌بریکر بعدها «شیء‌-رابطه‌ای» نامید: آوردن ایده‌های برنامه‌نویسی شیءگرا به درون پایگاه‌دادهٔ رابطه‌ای. او اهداف بلندپروازانهٔ دیگری هم داشت، از جمله قواعد فعال در پایگاه‌داده، نگه‌داری نسخه‌های قدیمی داده‌ها و پردازش موازی.

طبق تاریخچهٔ رسمی پستگرس‌کیوال، این پروژه به رهبری استون‌بریکر و با پشتیبانی مالی آژانس پروژه‌های پژوهشی پیشرفتهٔ دفاعی آمریکا، دفتر پژوهش ارتش آمریکا، بنیاد ملی علوم آمریکا و شرکتی خصوصی انجام شد. پیاده‌سازی آن در ۱۹۸۶ آغاز شد و مفاهیم اولیه‌اش در مقاله‌ای علمی معرفی شدند.

نسخه‌به‌نسخه

همان تاریخچه مسیر را گام‌به‌گام شرح می‌دهد. نخستین سامانهٔ نمایشی در ۱۹۸۷ به کار افتاد و در همایش ۱۹۸۸ انجمن ماشین‌های محاسباتی دربارهٔ مدیریت داده به نمایش درآمد. نسخهٔ ۱ در ژوئن ۱۹۸۹ در اختیار چند کاربر بیرونی قرار گرفت.

پس از نقدی بر نخستین سامانهٔ قواعد، این بخش از نو طراحی شد و نسخهٔ ۲ در ژوئن ۱۹۹۰ منتشر شد. نسخهٔ ۳ در ۱۹۹۱ با پشتیبانی از چند مدیر ذخیره‌سازی، اجراکنندهٔ بهتر پرس‌وجو و سامانهٔ قواعد بازنویسی‌شده از راه رسید.

سامانهٔ دومی که شکست نخورد

هلرستاین یادآوری می‌کند که پستگرس ریسکی بزرگ بود. فرد بروکس، از نام‌های شناخته‌شدهٔ مهندسی نرم‌افزار، هشدار داده بود که طراحان پس از یک سامانهٔ موفق، اغلب «سامانهٔ دوم»ی می‌سازند که زیر بار ویژگی‌ها و ایده‌های بیش از حد شکست می‌خورد. پستگرس سامانهٔ دوم استون‌بریکر بود و پر از ویژگی و ایده.

اما به گفتهٔ هلرستاین، این اتفاقی نبود که شکست نخورد: پستگرس از پایه برای گسترش‌پذیری طراحی شده بود و این طراحی درست بود. وقتی گسترش‌پذیری در هستهٔ معماری باشد، می‌توان افزونه‌های بسیاری را آزمود و گذاشت تا قوی‌ترها بمانند.

نقطهٔ عطف

نقطهٔ عطف این قسمت، تصمیم به شروع دوباره بود. استون‌بریکر می‌توانست سال‌ها فقط اینگرس را بهتر کند؛ اما به جای آن، سامانه‌ای تازه ساخت که از روز نخست برای افزودن چیزهای تازه طراحی شده بود. همین ویژگی، بعدها راز ماندگاری آن شد.

درسی برای کسب‌وکارها

نخست، موفقیت دیروز را با مرز امروز اشتباه نگیرید. گاهی بهترین کار، ساختن نسل بعدیِ محصولی است که هنوز خوب کار می‌کند.

دوم، از نیاز واقعی شروع کنید. ایدهٔ پستگرس از نیاز طراحان مدار به داده‌های پیچیده آمد، نه از یک نظریهٔ انتزاعی.

سوم، برای تغییر طراحی کنید. محصولی که بتوان بی‌دردسر به آن چیز تازه افزود، با بازار رشد می‌کند؛ محصولی که هر تغییرش بازنویسی بخواهد، زود پیر می‌شود.

در قسمت بعد: پایان پروژهٔ پژوهشی، دو دانشجو که به پستگرس زبانی آشنا یاد دادند، و نامی تازه.

در حال اتصال مجدد

اتصال به سرور قطع شد. در حال پیوستن دوباره.

در حال اتصال مجدد

تلاش قبلی ناموفق بود. کمی بعد دوباره تلاش می‌شود.

0s · 1 / 30

اتصال مجدد انجام نشد

صفحه را دوباره بارگذاری کنید یا اتصال را دوباره امتحان کنید.

نشست پایان یافت

این نشست دیگر در دسترس نیست. برای ادامه صفحه را دوباره بارگذاری کنید.

نشست متوقف شد

سرور این نشست را متوقف کرد. برای ادامه، ادامه را انتخاب کنید.

ادامه نشست انجام نشد

صفحه را دوباره بارگذاری کنید یا ادامه را دوباره امتحان کنید.