مهندسی نرم‌افزار - Software Inside
162 subscribers
6 photos
10 links
جایی برای گفت‌و‌گو در مورد نرم‌افزار، مهندسی، برنامه نویسی
Download Telegram
Hello World!
👍4
#مطلب
HBase Deprecation at Pinterest

در سال‌های اخیر HBase نقش کلیدی و جدی توی زیرساخت Pinterest داشته و بسیاری از سرویس‌های پینترست بر مبنای HBase بنا شده بوده. برای مثال پینترست بر روی Hbase دیتابیس Zen رو ساخته بوده که داده‌های گرافی رو نگه میداره، از OpenTSDB که باز یه دیتابیس رو HBase هست برای نگهداری داده‌های TimeSeries استفاده می‌کرده و ...

اما اخیرا یه پستی توی بلاگ فنیشون گذاشتن که قراره HBase رو بازنشسته کنن و به جاش مهاجرت کنن به دیتابیس‌های جدیدتر. قرارشده داده‌های OLAP رو به Druid/Starrocks و داده‌های KeyValue رو به KVStore و داده‌های گرافی رو به Goku منتقل کنن(دوتای آخری دیتابیس‌های درونی خود پینترست هست).
و برای باقی نیازمندی‌هاشون قراره داده‌های Hbase رو مهاجرت بدن به یه NewSQL به اسم TiDB.

دلیلی که دارن HBase رو بازنشسته می‌کنن هزینه‌ی زیاد نگهداری، کمبود امکانات لازم ( مثل Secondary Index و distributed transactions) و کوچیک‌شدن کامیونیتی و پیدانشدن نیروهای expert هست(qoute پایین از مقاله در همین مورد جالبه).
For the past few years, we have seen a seemingly steady decline in HBase usage and community activity in the industry, as many peer companies were looking for better alternatives to replace HBase in their production environments. This in turn has led to a shrinking talent pool, higher barrier to entry, and lower incentive for new engineers to become a subject matter expert of HBase.


لینک مقالات:
Part1: HBase Deprecation at Pinterest
Part2: TiDB Adoption at Pinterest
Part3: Structured DataStore (SDS): Multi-model Data Management With a Unified Serving Stack
Online Data Migration from HBase to TiDB with Zero Downtime

✴️ @software_inside - مهندسی‌نرم‌افزار
👍2
#بازی
https://www.sqlnoir.com/

یه بازی باحال که شما در نقش کارآگاه هستید و با زدن SQL query و گشتن توی جدول‌های دیتابیس باید معماها رو حل کنید.
برای تقویت raw sql زدن خوبه.
🔥5
#ابزار
برای اینکه متوجه بشیم یه کوئری روی دیتابیس چطوری داره اجرا میشه یا چرا کنده معمولا از اون کوئری explain می‌گیریم و سعی می‌کنیم از روی خروجی explain این چیزا رو متوجه بشیم.

متاسفانه خوندن خروجی خام این دستور مخصوصا وقتی پارامترهایی مثل analyze یا buffer و ... رو استفاده کردیم خیلی کار ساده‌ای نیست و خروجیش ممکنه خیلی بزرگ بشه. برای مثال یه نمونه از خروجی خام رو توی عکس‌ها می‌بینید.

https://explain.dalibo.com
https://explain.depesz.com/

دوتا سایت بالا با گرفتن خروجی explain، گزارش‌های خوبی تولید می‌کنه و باعث میشه راحت‌تر متوجه بشیم چه اتفاقی داره میافته. مخصوصا سایت اولی که به صورت گرافیکی نمودار می‌کشه و interactive هم هست.
👌3
مهندسی نرم‌افزار - Software Inside
#ابزار برای اینکه متوجه بشیم یه کوئری روی دیتابیس چطوری داره اجرا میشه یا چرا کنده معمولا از اون کوئری explain می‌گیریم و سعی می‌کنیم از روی خروجی explain این چیزا رو متوجه بشیم. متاسفانه خوندن خروجی خام این دستور مخصوصا وقتی پارامترهایی مثل analyze یا buffer…
#مقاله #بلاگ #postgres
Explaining the unexplainable
اون فردی که ابزار دومی توی پست بالا رو ساخته، یه وبلاگ فنی خیلی خوب هم داره که به صورت تخصصی در مورد Postgres می‌نویسه و کلی مطلب خفن داره. یکی از مطالبش که به نظرم خیلی خوب بود مجموعه پست‌هایی تحت عنوان «Explaining the unexplainable» هست که میاد از ابتدا شروع می‌کنه و توضیح میده که دستور EXPLAIN توی پستگرس چیه و چطوری کار می‌کنه و تا سطح پیشرفته پیش میره.
برای کسایی که میخوان tune کردن کوئری‌ها و اپتیمایز کردن رو یاد بگیرن خیلی مفید می‌تونه باشه. کلا 6 بخش ازش منتشر شده که از طریق صفحه‌ی پایین می‌تونید پیداشون کنید:
https://www.depesz.com/tag/unexplainable/

✴️ @software_inside - مهندسی‌نرم‌افزار
🤯3
#معرفی #serialization

MsgPack: It's like JSON but fast and small.
یه فرمت کمتر شناخته شده‌ای وجود داره به اسم MsgPack که بعضا توی طراحی سیستم‌ها به کار میاد.
این فرمت شبیه به JSON هست و بدون Schema کار می‌کنه. دوتا مزیت داره: یکی اینکه حجمش کمتره و compact تر هست و مزیت بزرگ دومش اینه که به صورت binary هست و برخلاف JSON لازم نیست حتما داده‌ها UTF8 باشن و decode شده باشن. همین قضیه باعث میشه که سرعت serialize شدنش بیشتر باشه و داده های خام رو هم می‌تونیم باهاش جابجا کنیم. برای دید بهتر به عکس بالا توجه کنید. بدیش اینه که human-readable نیست.

این فرمت توی تکنولوژی‌هایی مثل redis یا fluentd هم استفاده میشه و جاهایی که انعطاف برامون مهمه و human-readable بودن برامون مهم نیست یا میخوایم داده‌های binary و دیکد نشده جابجا کنیم به کار میاد.

❇️ @software_inside
👍6
#مطلب

What I Wish I Knew About Onboarding Effectively

https://eugeneyan.com/writing/onboarding/

زمانی که شرکتتون رو عوض می‌کنید و وارد یه شرکت جدید میشید باید یه فرایندی طی بشه تا شما با اون شرکت، کدهاش و فرهنگش آشنا بشید. به این فرایند میگن آنبوردینگ.
مطلب بالا نکات خیلی خوبی در همین مورد بیان می‌کنه که باعث میشه این فرایند رو بهتر بتونیم طی کنیم و توی شرکت جدید بهتر جا بیافتیم. اگر دارید آنبورد میشید یا قراره یه نفر دیگه رو آنبورد کنید این مطلب به شدت پیشنهاد میشه.


✴️ @software_inside - مهندسی‌نرم‌افزار
👏2👌21
#مطلب #Redis

Redis 8 is GA
Redis is Open Source Again

دوتا خبر مهم در مورد ردیس منتشر شده:
۱- انتشار نسخه‌ی 8 ردیس:
- قابلیت‌هایی که قبلا تحت عنوان Redis Stack به صورت پولی فروخته می‌شد الان به صورت رایگان به نسخه‌ی OSS اضافه شده. قابلیت ذخیره سازی داده‌های Time Series یا JSON و کلی داده‌ساختار جدید دیگه اضافه شده. همچنین Redis Query Engine هم رایگان شده که اجازه میده Secondary Index بسازیم و حتی روی داده‌ها Full-Text Search هم بزنیم.

- این نسخه سریع‌ترین ردیسی هست که تا به حال داشتیم و خودشون ادعا می‌کنن بعضی از کامندها تا 80٪ هم سریع‌تر شده همچنین Throughput هم تا دوبرابر می‌تونه بهتر بشه.

- با ترند شدن AI و فراگیر شدن LLM ها، دیتابیس‌های vector based هم رونق گرفتن و ردیس هم از قافله جا نمونده. یه داده‌ساختار جدید به اسم VectorSet اضافه کرده که به ما اجازه میده embedding ها رو توش ذخیره کنیم و Vector Search انجام بدیم.

۲- ردیس لایسنسش رو دوباره عوض کرد و از لایسنس اوپن سورس استفاده می‌کنه:
داستان اینه که شرکت‌های بزرگ ابری مثل AWS و Google Cloud میان ابزارهای اوپن‌سورس رو به عنوان خدمت ارائه میدن و ازش پول درمیارن اما پولی به اون توسعه‌دهنگان اصلی که دارن اون نرم‌افزار رو توسعه میدن پرداخت نمی‌کنن. همین قضیه باعث شده که نرم‌افزارهای اوپن سورس به فکر تغییر لایسنس بیافتن. مثلا قبل از ردیس، MongoDB و Elasticsearch هم لایسنسشون رو به SSPL تغییر داده بودن.

لایسنس SSPL میگه که اگر میخوای نرم‌افزار منو به عنوان سرویس ارائه بدی باید سورس کد کل سرویست رو منتشر کنی(از رابط کاربری گرفته تا ابزارهای مدیریتی و همه‌ی چیزای مربوطه). این لایسنس OpenSource محسوب نمیشه و همین باعث شد که کامیونیتی انتقادات زیادی رو متوجه این نرم‌افزارها بکنن و برن سراغ اینکه یه فورک اوپن سورس درست کنن. طبیعتا شرکت‌های بزرگ هم از این فورک‌های اوپن سورس حمایت کردن. مثلا Valkey که فورک ردیسه یا OpenSearchکه فورک Elastic هست سر همین داستانا به وجود اومدن.

حالا ردیس اومده نسخه‌ی 8 رو با لایسنس AGPLv3 ارائه کرده که یک لایسنس اوپن‌سورس محسوب میشه و به نسبت SSPL سخت‌گیری کمتری داره. قبل از ردیس الستیک سرچ هم لایسنسش رو برگردونده بود و اونم اوپن سورس شده بود دوباره.

برای جزئیات بیشتر می‌تونید به لینک مطالبی که در بالای پست قراره گرفته مراجعه کنید.

✴️ @software_inside - مهندسی‌نرم‌افزار
🔥7👍3💯1