د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

د بیک اینڈ پرمخ وړونکی څنګه پوهیږي چې د SQL پوښتنه به په "پروډ" کې ښه کار وکړي؟ په لویو یا ګړندۍ وده کونکو شرکتونو کې ، هرڅوک "محصول" ته لاسرسی نلري. او د لاسرسي سره ، ټولې غوښتنې په بې دردۍ سره نشي چیک کیدی ، او د ډیټابیس کاپي رامینځته کول ډیری وختونه ساعتونه نیسي. د دې ستونزو د حل لپاره، موږ یو مصنوعي DBA جوړ کړ - جو. دا لا دمخه په ډیری شرکتونو کې په بریالیتوب سره پلي شوی او د لسګونو پراختیا کونکو سره مرسته کوي.

ویډیو:

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

سلام و ټولو ته! زما نوم اناتولي سټینلر دی. زه په یوه شرکت کې کار کوم postgres.ai. موږ ژمن یو چې د پراختیا کونکو ، DBAs او QAs څخه د پوسټګریس کار پورې اړوند ځنډونو لرې کولو سره د پراختیا پروسې ګړندي کولو ته ژمن یو.

موږ عالي پیرودونکي لرو او د نن ورځې راپور برخه به هغه قضیو ته وقف شي چې موږ د دوی سره د کار کولو پرمهال ولیدل. زه به په دې اړه وغږیږم چې څنګه موږ له دوی سره د جدي ستونزو په حل کې مرسته وکړه.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

کله چې موږ پیچلي مهاجرتونه رامینځته کوو او ترسره کوو، موږ له ځانه دا پوښتنه کوو: "ایا دا مهاجرت به پای ته ورسیږي؟" موږ بیاکتنه کاروو، موږ د ډیرو تجربه لرونکو همکارانو، د DBA متخصصینو پوهه کاروو. او دوی کولی شي ووایی چې ایا دا به الوتنه وکړي یا نه.

مګر شاید دا به غوره وي که موږ وکولی شو دا پخپله د بشپړ اندازې کاپيونو باندې ازموینه وکړو. او نن به موږ یوازې د دې په اړه وغږیږو چې اوس د ازموینې لپاره کومې لارې شتون لري او دا څنګه ښه ترسره کیدی شي او د کومو وسیلو سره. موږ به د دې ډول چلند د ګټو او زیانونو په اړه هم وغږیږو، او هغه څه چې موږ یې دلته حل کولی شو.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

چا په مستقیم ډول په محصول کې شاخصونه جوړ کړي یا کوم بدلونونه کړي؟ کافي یو څه. او د چا لپاره دا د دې حقیقت لامل شوی چې معلومات ورک شوي یا د وخت کموالی شتون لري؟ بیا تاسو په دې درد پوه شئ. د خدای شکر چې بیک اپ شتون لري.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

لومړۍ طریقه په محصول کې ازموینه ده. یا، کله چې یو پرمخ وړونکی په محلي ماشین کې ناست وي، هغه د ازموینې ډاټا لري، یو ډول محدود انتخاب شتون لري. او موږ تولید ته راځو ، او موږ دا وضعیت ترلاسه کوو.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

دا درد کوي، دا ګران دی. دا شاید غوره نه وي.

او د دې کولو غوره لاره څه ده؟

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

راځئ چې سټینګ واخلو او هلته د پروډ ځینې برخه وټاکو. یا په غوره توګه، راځئ چې یو ریښتینی محصول واخلو، ټول معلومات. او وروسته له دې چې موږ یې په محلي توګه جوړ کړو، موږ به اضافي د سټینګ لپاره وګورو.

دا به موږ ته اجازه راکړي چې ځینې خطاګانې لیرې کړو، د بیلګې په توګه دوی د تولید څخه مخنیوی کوي.

ستونزې څه دي؟

  • ستونزه دا ده چې موږ دا مرحله د همکارانو سره شریکوو. او ډیری وختونه دا پیښیږي چې تاسو یو ډول بدلون رامینځته کړئ ، بام - او هیڅ معلومات شتون نلري ، کار د اوبو لاندې دی. سټینګ څو ټیرابایټ وو. او تاسو باید ډیر وخت انتظار وکړئ ترڅو دا بیا راپورته شي. او موږ پریکړه کوو چې سبا یې حتمي کړو. دا دی، موږ پرمختګ لرو.
  • او البته، موږ ډیری همکاران لرو چې هلته کار کوي، ډیری ټیمونه. او دا باید په لاسي ډول ترسره شي. او دا ناشونی دی.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

او دا د ویلو وړ ده چې موږ یوازې یوه هڅه لرو، یو شاټ، که موږ غواړو په ډیټابیس کې ځینې بدلونونه رامنځته کړو، ډاټا ته لاس ورکړئ، جوړښت بدل کړئ. او که چیرې یو څه غلط شوي وي، که چیرې په مهاجرت کې کومه تېروتنه شوې وي، نو موږ به ژر تر ژره بیرته راګرځوو.

دا د تیرې طریقې په پرتله ښه دی، مګر لاهم ډیر احتمال شتون لري چې یو ډول غلطی به تولید ته لاړ شي.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

څه شی موږ ته د هر پراختیا کونکي د ازموینې بنچ ، د بشپړ اندازې کاپي ورکولو څخه منع کوي؟ زما په اند دا روښانه ده چې څه په لاره کې راځي.

څوک د ټیرابایټ څخه لوی ډیټابیس لري؟ له نیمایي څخه زیات کوټه.

او دا څرګنده ده چې د هر پراختیا کونکي لپاره د ماشینونو ساتل، کله چې دومره لوی تولید وي، خورا ګران دی، او سربیره پردې، دا ډیر وخت نیسي.

موږ پیرودونکي لرو چې پوهیدلي چې دا خورا مهم دي چې د بشپړ اندازې کاپي په اړه ټول بدلونونه و ازموئ ، مګر د دوی ډیټابیس له ټیرابایټ څخه کم دی ، او د هر پراختیا کونکي لپاره د ازموینې بینچ ساتلو لپاره سرچینې شتون نلري. له همدې امله ، دوی باید ډمپونه په محلي ډول خپل ماشین ته ډاونلوډ کړي او پدې توګه ازموینه وکړي. دا ډیر وخت نیسي.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

حتی که تاسو دا د زیربنا دننه ترسره کوئ، نو په هر ساعت کې د یو ټیرابایټ ډیټا ډاونلوډ کول لا دمخه خورا ښه دي. مګر دوی منطقي ډمپونه کاروي، دوی په محلي توګه د بادل څخه ډاونلوډ کوي. د دوی لپاره، سرعت په ساعت کې شاوخوا 200 ګیګابایټ دی. او دا لاهم وخت نیسي چې له منطقي ډمپ څخه شا وګرځي ، شاخصونه پورته کړي ، او داسې نور.

مګر دوی دا طریقه کاروي ځکه چې دا دوی ته اجازه ورکوي چې محصول د اعتبار وړ وساتي.

موږ دلته څه کولی شو؟ راځئ چې د ازموینې بنچونه ارزانه کړو او هر پراختیا کونکي ته د دوی خپل ټیسټ بنچ ورکړئ.

او دا ممکنه ده.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

او پدې طریقه کې، کله چې موږ د هر پراختیا کونکي لپاره پتلي کلون جوړوو، موږ کولی شو دا په یو ماشین کې شریک کړو. د مثال په توګه، که تاسو د 10TB ډیټابیس لرئ او غواړئ دا 10 پراختیا کونکو ته ورکړئ، تاسو اړتیا نلرئ د XNUMX x XNUMXTB ډیټابیس ولرئ. تاسو یوازې یو ماشین ته اړتیا لرئ ترڅو د یو ماشین په کارولو سره د هر پراختیا کونکي لپاره پتلي جلا شوي کاپيونه جوړ کړئ. زه به تاسو ته ووایم چې دا څنګه کار کوي لږ وروسته.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

اصلي مثال:

  • DB - 4,5 terabytes.

  • موږ کولی شو په 30 ثانیو کې خپلواک کاپي ترلاسه کړو.

تاسو اړتیا نلرئ د ازموینې موقف ته انتظار وکړئ او پدې پورې اړه ولرئ چې دا څومره لوی دی. تاسو کولی شئ دا په ثانیو کې ترلاسه کړئ. دا به په بشپړ ډول جلا چاپیریال وي، مګر کوم چې په خپل منځ کې ډاټا شریکوي.

دا ډیر ښه دی. دلته موږ د جادو او موازي کائنات په اړه خبرې کوو.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

زموږ په قضیه کې، دا د OpenZFS سیسټم په کارولو سره کار کوي.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

OpenZFS د کاپي لیکلو فایل سیسټم دی چې د بکس څخه بهر د سنیپ شاټونو او کلونونو ملاتړ کوي. دا د اعتبار وړ او د توزیع وړ دی. د هغې اداره کول خورا اسانه دي. دا په لفظي ډول په دوه ټیمونو کې ځای په ځای کیدی شي.

نور اختیارونه شتون لري:

  • LVM ،

  • ذخیره (د مثال په توګه، خالص ذخیره).

د ډیټابیس لابراتوار چې زه یې په اړه خبرې کوم ماډلر دی. د دې اختیارونو په کارولو سره پلي کیدی شي. مګر د اوس لپاره، موږ په OpenZFS تمرکز کړی، ځکه چې په ځانګړې توګه د LVM سره ستونزې وې.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

څنګه کار کوي؟ د دې پر ځای چې هرکله چې موږ یې بدل کړو ډیټا بیا لیکو، موږ دا په ساده ډول په نښه کولو سره خوندي کوو چې دا نوې ډاټا د وخت په تیریدو سره د نوي ځای څخه ده، یو نوی سنیپ شاټ.

او په راتلونکي کې، کله چې موږ غواړو بیرته راوګرځوو یا موږ غواړو چې د ځینې زاړه نسخې څخه نوی کلون جوړ کړو، موږ یوازې ووایو: "ښه، موږ ته د ډیټا دا بلاکونه راکړئ چې دا ډول نښه شوي."

او دا کارن به د داسې ډیټا سیټ سره کار وکړي. هغه به په تدریج سره دوی بدل کړي، خپل عکسونه به جوړ کړي.

او موږ به څانګه کړو. زموږ په قضیه کې هر پراختیا کونکی به فرصت ولري چې خپل کلون ولري چې هغه یې ایډیټ کوي ، او هغه معلومات چې شریک شوي د هرچا ترمینځ به شریک شي.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

په کور کې د داسې سیسټم نصبولو لپاره، تاسو اړتیا لرئ چې دوه ستونزې حل کړئ:

  • لومړی د معلوماتو سرچینه ده، چیرې چې تاسو به یې واخلئ. تاسو کولی شئ د تولید سره نقل ترتیب کړئ. تاسو کولی شئ دمخه هغه بیک اپ وکاروئ چې تاسو یې تنظیم کړی ، زه امید لرم. وال-ای، وال-ګ یا بارمن. او حتی که تاسو یو ډول کلاوډ حل لکه RDS یا کلاوډ SQL کاروئ ، نو تاسو کولی شئ منطقي ډمپونه وکاروئ. مګر موږ لاهم تاسو ته مشوره درکوو چې بیک اپ وکاروئ ، ځکه چې د دې تګلارې سره به تاسو د فایلونو فزیکي جوړښت هم وساتئ ، کوم چې تاسو ته اجازه درکوي حتی هغه میټریکونو ته نږدې شئ چې تاسو به یې په تولید کې وګورئ ترڅو هغه ستونزې ومومئ چې شتون لري.

  • دوهم هغه ځای دی چیرې چې تاسو غواړئ د ډیټابیس لابراتوار کوربه توب وکړئ. دا کیدای شي بادل وي، دا کیدای شي پر بنسټ وي. دا مهمه ده چې دلته ووایو چې ZFS د ډیټا کمپریشن ملاتړ کوي. او دا خورا ښه کوي.

تصور وکړئ چې د هر داسې کلون لپاره، د عملیاتو پورې اړه لري چې موږ یې د اډې سره کوو، یو ډول دیو به وده وکړي. د دې لپاره، دیو به ځای ته اړتیا ولري. مګر د دې حقیقت له امله چې موږ د 4,5 ټیرابایټ بیس اخیستی، ZFS به دا 3,5 ټیرابایټ ته فشار ورکړي. دا د ترتیباتو پورې اړه لري توپیر کولی شي. او موږ لاهم د دیو لپاره خونه لرو.

دا ډول سیسټم د مختلفو قضیو لپاره کارول کیدی شي.

  • دا پراختیا کونکي دي، د پوښتنو اعتبار لپاره DBAs، د اصلاح کولو لپاره.

  • دا د QA ازموینې کې کارول کیدی شي د یو ځانګړي مهاجرت ازموینې لپاره مخکې لدې چې موږ یې تولید ته واړوو. او موږ کولی شو د اصلي معلوماتو سره د QA لپاره ځانګړي چاپیریالونه هم لوړ کړو، چیرې چې دوی کولی شي نوي فعالیت ازموینه وکړي. او دا به د انتظار ساعتونو پرځای ثانیې ونیسي ، او ممکن په ځینو نورو قضیو کې ورځې چې پتلي کاپي نه کارول کیږي.

  • او بله قضیه. که چیرې شرکت د تحلیلي سیسټم تنظیم نه کړي، نو موږ کولی شو د محصول اساس یو پتلی کلون جلا کړو او اوږد پوښتنو یا ځانګړي شاخصونو ته یې ورکړو چې په تحلیلونو کې کارول کیدی شي.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

د دې طریقې سره:

  1. په "پروډ" کې د غلطیو کم احتمال ځکه چې موږ ټول بدلونونه د بشپړ اندازې ډیټا کې ازمویل.

  2. موږ د ازموینې کلتور لرو ، ځکه چې اوس تاسو اړتیا نلرئ د خپل موقف لپاره ساعتونه انتظار وکړئ.

  3. او هیڅ خنډ شتون نلري ، د ازموینو ترمینځ هیڅ انتظار نشته. تاسو واقعیا کولی شئ لاړ شئ او وګورئ. او دا به ښه وي ځکه چې موږ پرمختګ ګړندی کوو.

  • هلته به لږ refactoring وي. لږې کیګونه به په محصول کې پای ته ورسیږي. موږ به یې لږ وروسته بیا تنظیم کړو.

  • موږ کولی شو د نه بدلیدونکي بدلونونو مخه ونیسو. دا معیاري طریقه نه ده.

  1. دا ګټور دی ځکه چې موږ د ازموینې بنچونو سرچینې شریکوو.

دمخه ښه ، مګر نور څه ګړندي کیدی شي؟

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

د داسې سیسټم څخه مننه، موږ کولی شو د دې ډول ازموینې ته د ننوتلو حد خورا کم کړو.

اوس یو شیطاني حلقه شتون لري ، کله چې یو پراختیا کونکی ، د ریښتیني بشپړ اندازې ډیټا ته د لاسرسي لپاره باید متخصص شي. هغه باید د ورته لاسرسي سره باور ولري.

مګر څنګه وده وکړي که چیرې دا شتون نلري. څه که تاسو یوازې د ازموینې ډیټا خورا کوچنۍ سیټ لرئ تاسو ته شتون لري؟ بیا به تاسو هیڅ ریښتینې تجربه ترلاسه نکړئ.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

له دې حلقې څخه څنګه وتلای شو؟ د لومړي انٹرفیس په توګه ، د هرې کچې پراختیا کونکو لپاره مناسب ، موږ سلیک بوټ غوره کړ. مګر دا کوم بل انٹرفیس کیدی شي.

دا تاسو ته څه اجازه درکوي؟ تاسو کولی شئ یوه ځانګړې پوښتنه واخلئ او د ډیټابیس لپاره ځانګړي چینل ته یې واستوئ. موږ به په اوتومات ډول په ثانیو کې یو پتلی کلون ځای په ځای کړو. راځئ چې دا غوښتنه پرمخ یوسو. موږ میټریکونه او سپارښتنې راټولوو. راځئ چې یو لید وښیو. او بیا به دا کلون پاتې شي ترڅو دا پوښتنه په یو ډول اصلاح شي ، شاخصونه اضافه کړي ، او داسې نور.

او همدارنګه سلیک موږ ته د بکس څخه بهر د همکارۍ فرصتونه راکوي. څرنګه چې دا یوازې یو چینل دی، تاسو کولی شئ د دې غوښتنې په اړه بحث پیل کړئ د داسې غوښتنې لپاره په تار کې، خپل همکاران، DBAs چې په شرکت کې دي، پینګ کړئ.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

مګر، البته، ستونزې شتون لري. ځکه چې دا ریښتینې نړۍ ده، او موږ یو سرور کاروو چې په یوځل کې ډیری کلونونه کوربه کوي، موږ باید د کلونونو لپاره د حافظې او CPU ځواک اندازه کمه کړو.

مګر د دې لپاره چې دا ازموینې د منلو وړ وي، تاسو اړتیا لرئ چې دا ستونزه حل کړئ.

دا څرګنده ده چې مهم ټکی هماغه معلومات دي. مګر موږ لا دمخه لرو. او موږ غواړو ورته ترتیب ترلاسه کړو. او موږ کولی شو ورته نږدې ورته ترتیب ورکړو.

دا به ښه وي چې ورته هارډویر په تولید کې ولرئ ، مګر دا ممکن توپیر ولري.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

راځئ چې په یاد ولرو چې پوسټګریس څنګه د حافظې سره کار کوي. موږ دوه کیچونه لرو. یو د فایل سیسټم څخه او یو اصلي پوسټګریس، د بیلګې په توګه د شریک بفر کیچ.

دا مهمه ده چې په یاد ولرئ چې د شریک بفر کیچ تخصیص کیږي کله چې پوسټګریس پیل شي، پدې پورې اړه لري چې تاسو په ترتیب کې کومې اندازې مشخص کوئ.

او دوهم زیرمه ټول موجود ځای کاروي.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

او کله چې موږ په یو ماشین کې څو کلون جوړ کړو، نو دا معلومه شوه چې موږ په تدریجي ډول حافظه ډکوو. او په ښه توګه، شریک شوي بفر کیچ د حافظې ټول مقدار 25٪ دی چې په ماشین کې شتون لري.

او دا معلومه شوه چې که موږ دا پیرامیټر بدل نه کړو، نو موږ به وکولی شو په یو ماشین کې یوازې 4 مثالونه پرمخ یوسو، د بیلګې په توګه 4 د دې ټولو پتلی کلونونو څخه. او دا، البته، بد دی، ځکه چې موږ غواړو له دوی څخه ډیر څه ولرو.

مګر له بلې خوا ، د بفر کیچ د شاخصونو لپاره پوښتنو پلي کولو لپاره کارول کیږي ، دا دی ، پلان پدې پورې اړه لري چې زموږ کیچونه څومره لوی دي. او که موږ یوازې دا پیرامیټر واخلو او کم کړو ، نو زموږ پلانونه خورا بدلولی شي.

د مثال په توګه، که موږ په پروډ کې لوی زیرمه ولرو، نو پوسټګریس به د شاخص کارولو ته ترجیح ورکړي. او که نه، نو بیا به SeqScan وي. او که زموږ پلانونه سم نه وای نو پایله به یې څه وي؟

مګر دلته موږ دې پایلې ته رسیدو چې په حقیقت کې په پوسټګریس کې پلان په پلان کې په شریک شوي بفر کې مشخص شوي ځانګړي اندازې پورې اړه نلري ، دا په اغیزمن_cache_size پورې اړه لري.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

Effective_cache_size د کیچ اټکل شوی مقدار دی چې موږ ته شتون لري، د بیلګې په توګه د بفر کیچ او د فایل سیسټم کیچ مجموعه. دا د ترتیب لخوا تنظیم شوی. او دا حافظه تخصیص نه ده.

او د دې پیرامیټر له امله، موږ کولی شو د پوسټګریس ډول چل کړو، ووایه چې موږ واقعیا ډیری ډیټا لرو، حتی که موږ دا ډاټا نلرو. او پدې توګه ، پلانونه به په بشپړ ډول د تولید سره سمون ولري.

مګر دا کولی شي په وخت اغیزه وکړي. او موږ د وخت په واسطه پوښتنې غوره کوو، مګر دا مهمه ده چې وخت په ډیری فکتورونو پورې اړه لري:

  • دا په هغه بار پورې اړه لري چې اوس مهال په محصول کې دي.

  • دا پخپله د ماشین ځانګړتیاو پورې اړه لري.

او دا یو غیر مستقیم پیرامیټر دی، مګر په حقیقت کې موږ کولی شو دقیقا د ډیټا مقدار سره سم اصلاح کړو چې دا پوښتنه به د پایلې ترلاسه کولو لپاره لوستل شي.

او که تاسو غواړئ چې وخت هغه څه ته نږدې وي چې موږ به یې په محصول کې وګورو، نو موږ اړتیا لرو چې ورته ورته هارډویر واخلو او په احتمالي توګه حتی نور هم ترڅو ټول کلونونه مناسب وي. مګر دا یو جوړجاړی دی، د بیلګې په توګه تاسو به ورته پلانونه ترلاسه کړئ، تاسو به وګورئ چې څومره ډاټا به یوه ځانګړې پوښتنه ولولي او تاسو به دې پایلې ته ورسیږئ چې آیا دا پوښتنه ښه ده (یا مهاجرت) یا بد، دا لاهم اړتیا لري چې اصلاح شي. .

راځئ چې وګورو چې څنګه جو په ځانګړي ډول مطلوب دی.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

راځئ چې د یو حقیقي سیسټم څخه غوښتنه وکړو. په دې حالت کې، ډیټابیس 1 terabyte دی. او موږ غواړو د تازه پوسټونو شمیر وګورو چې له 10 څخه ډیر لایکونه لري.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

موږ چینل ته پیغام لیکو، زموږ لپاره یو کلون ګمارل شوی دی. او موږ به وګورو چې دا ډول غوښتنه به په 2,5 دقیقو کې بشپړه شي. دا لومړی شی دی چې موږ یې ګورو.

B Joe به تاسو ته د پلان او میټریکونو پراساس اتومات وړاندیزونه وښیې.

موږ به وګورو چې پوښتنه د نسبتا لږ شمیر قطارونو ترلاسه کولو لپاره خورا ډیر ډیټا پروسس کوي. او یو ډول ځانګړي شاخص ته اړتیا ده، ځکه چې موږ ولیدل چې په پوښتنه کې ډیری فلټر شوي قطارونه شتون لري.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

راځئ چې نږدې وګورو چې څه پیښ شوي. په حقیقت کې ، موږ ګورو چې موږ د فایل کیچ یا حتی ډیسک څخه شاوخوا یو نیم ګیګابایټ ډیټا لوستلي دي. او دا ښه نه دی، ځکه چې موږ یوازې 142 کرښې ترلاسه کړې.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

او، داسې ښکاري چې موږ دلته د شاخص سکین لرو او باید په چټکۍ سره کار کړی وای، مګر له هغه وخته چې موږ ډیری لینونه فلټر کړل (موږ باید دوی حساب کړو)، غوښتنه ورو ورو کار شوه.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

او دا په پلان کې د دې حقیقت له امله پیښ شوي چې د پوښتنې شرایط او په شاخص کې شرایط په جزوي ډول سره سمون نلري.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

راځئ هڅه وکړو چې شاخص ډیر دقیق کړو او وګورو چې د دې وروسته د پوښتنې اجرا څنګه بدلیږي.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

د شاخص رامینځته کول ډیر وخت نیسي ، مګر اوس موږ پوښتنه ګورو او ګورو چې د 2,5 دقیقو پرځای وخت یوازې 156 ملی ثانیه دی ، کوم چې کافي دی. او موږ یوازې 6 میګابایټ ډیټا لوستلو.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

او اوس موږ یوازې د شاخص سکین کاروو.

بله مهمه کیسه دا ده چې موږ غواړو پلان په یو څه نور د پوهیدو وړ ډول وړاندې کړو. موږ د فلیم ګرافونو په کارولو سره لید پلي کړی.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

دا یو مختلف غوښتنه ده، ډیر شدید. او موږ د فلیم ګرافونه د دوه پیرامیټونو له مخې رامینځته کوو: دا د ډیټا مقدار دی چې یو ځانګړي نوډ په پلان او وخت کې شمیرل کیږي ، د بیلګې په توګه د نوډ اجرا کولو وخت.

دلته موږ کولی شو ځانګړي نوډونه یو له بل سره پرتله کړو. او دا به روښانه شي چې کوم یو یې ډیر یا لږ اخلي، کوم چې معمولا په نورو رینډینګ میتودونو کې ستونزمن وي.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

البته، هرڅوک پوهیږي وضاحت.depesz.com. د دې لید یوه ښه ځانګړتیا دا ده چې موږ د متن پلان خوندي کوو او ځینې لومړني پیرامیټونه په میز کې ځای په ځای کوو ترڅو موږ ترتیب کړو.

او هغه پراختیا کونکي چې لا تر اوسه پدې موضوع کې ندي ښکیل شوي هم تشریح.depesz.com کاروي، ځکه چې دا د دوی لپاره اسانه ده چې معلومه کړي چې کوم میټریکونه مهم دي او کوم ندي.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

د لید لپاره یوه نوې طریقه شتون لري - دا تشریح.dalibo.com دی. دوی د ونې لید ترسره کوي، مګر د یو بل سره نوډونه پرتله کول خورا سخت دي. دلته تاسو کولی شئ په جوړښت ښه پوه شئ، په هرصورت، که چیرې لویه غوښتنه وي، نو تاسو به د شا او خوا سکرول کولو ته اړتیا ولرئ، مګر یو اختیار هم.

همکاري

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

او، لکه څنګه چې ما وویل، سلیک موږ ته د همکارۍ فرصت راکوي. د مثال په توګه، که موږ د یوې پیچلې پوښتنې سره مخ شو چې روښانه نده چې څنګه اصلاح کړو، موږ کولی شو دا مسله د خپلو همکارانو سره په سلیک کې په موضوع کې روښانه کړو.

د DBA بوټ جو. اناتولي سټانسلر (Postgres.ai)

دا موږ ته ښکاري چې دا مهمه ده چې د بشپړ اندازې ډاټا ازموینه وکړو. د دې کولو لپاره، موږ د تازه ډیټابیس لابراتوار وسیله جوړه کړه، کوم چې په خلاصې سرچینې کې شتون لري. تاسو کولی شئ د جو بوټ هم وکاروئ. تاسو کولی شئ همدا اوس یې واخلئ او په خپل ځای کې یې پلي کړئ. ټول لارښودونه هلته شتون لري.

دا هم په یاد ولرئ چې حل پخپله انقلابي نه دی، ځکه چې ډیلفکس شتون لري، مګر دا د تصدۍ حل دی. دا په بشپړه توګه تړل شوی، دا خورا ګران دی. موږ په ځانګړي ډول په Postgres کې تخصص لرو. دا ټول د خلاصې سرچینې محصولات دي. مونږ سره یو ځای شه!

دا هغه ځای دی چې زه یې پای ته رسوم. له تاسو مننه!

پوښتنې

سلام! د راپور لپاره مننه! خورا په زړه پوري ، په ځانګړي توګه زما لپاره ، ځکه چې ما څه موده دمخه د ورته ستونزې په اړه حل کړی و. نو زه یو شمیر پوښتنې لرم. امید لرم چې زه به یې لږترلږه برخه ترلاسه کړم.

زه حیران یم چې تاسو د دې چاپیریال لپاره ځای څنګه محاسبه کوئ؟ ټیکنالوژي پدې معنی ده چې په ځانګړو شرایطو کې، ستاسو کلون کولی شي اعظمي اندازې ته وده ورکړي. په لنډه توګه ، که تاسو لس ټیرابایټ ډیټابیس او 10 کلون لرئ ، نو د داسې وضعیت انډول کول اسانه دي چیرې چې هر کلون 10 ځانګړي ډیټا وزن لري. تاسو دا ځای څنګه محاسبه کوئ، دا هغه ډیلټا ده چې تاسو یې په اړه خبرې کولې، په کوم کې چې دا کلون به ژوند کوي؟

ښه پوښتنه. دا مهمه ده چې دلته د ځانګړو کلونونو تعقیب وساتئ. او که چیرې یو کلون یو څه ډیر لوی بدلون ولري، دا وده پیل کوي، نو موږ کولی شو لومړی د دې په اړه کاروونکي ته خبرداری ورکړو، یا سمدلاسه دا کلون بند کړو ترڅو موږ د ناکام حالت سره مخ نه شو.

هو، زه یوه ځاله پوښتنه لرم. دا دی، تاسو د دې ماډلونو د ژوند دوره څنګه ډاډمن کوئ؟ موږ دا ستونزه او یوه بشپړه جلا کیسه لرو. دا څنګه کیږي؟

د هر کلون لپاره یو څه ttl شتون لري. اساسا، موږ یو ثابت ttl لرو.

څه، که پټ نه وي؟

1 ساعت، یعنی بې کاره - 1 ساعت. که دا ونه کارول شي، نو موږ یې وغورځوو. مګر دلته هیڅ حیرانتیا نشته، ځکه چې موږ کولی شو کلون په ثانیو کې پورته کړو. او که تاسو بیا ورته اړتیا لرئ نو مهرباني وکړئ.

زه د ټیکنالوژیو په انتخاب کې هم علاقه لرم ، ځکه چې د مثال په توګه ، موږ د یو دلیل یا بل لپاره په موازي ډول ډیری میتودونه کاروو. ولې ZFS؟ ولې تاسو LVM نه کاروئ؟ تاسو یادونه وکړه چې د LVM سره ستونزې وې. ستونزې څه وې؟ زما په نظر، ترټولو غوره انتخاب د ذخیره کولو سره دی، د فعالیت په شرایطو کې.

د ZFS اصلي ستونزه څه ده؟ حقیقت دا دی چې تاسو باید په ورته کوربه کې وګرځئ، د بیلګې په توګه ټول مثالونه به په ورته OS کې ژوند وکړي. او د ذخیره کولو په حالت کې، تاسو کولی شئ مختلف تجهیزات وصل کړئ. او خنډ یوازې هغه بلاکونه دي چې د ذخیره کولو سیسټم کې دي. او د ټیکنالوژیو د انتخاب پوښتنه په زړه پورې ده. ولې LVM نه؟

په ځانګړې توګه، موږ کولی شو په ناسته کې د LVM په اړه بحث وکړو. د ذخیره کولو په اړه - دا یوازې ګران دی. موږ کولی شو د ZFS سیسټم هرچیرې پلي کړو. تاسو کولی شئ دا په خپل ماشین کې ځای په ځای کړئ. تاسو کولی شئ په ساده ډول ذخیره ډاونلوډ کړئ او ځای په ځای یې کړئ. ZFS نږدې هرچیرې نصب شوی که موږ د لینکس په اړه وغږیږو. دا دی، موږ یو خورا انعطاف وړ حل ترلاسه کوو. او ZFS پخپله د بکس څخه ډیر څه ورکوي. تاسو کولی شئ هرڅومره ډیټا اپلوډ کړئ څومره چې تاسو غواړئ ، ډیری ډیسکونه وصل کړئ ، سنیپ شاټونه شتون لري. او، لکه څنګه چې ما وویل، دا اداره کول اسانه دي. دا د کارولو لپاره خورا خوندور ښکاري. هغه ازمویل شوی، هغه د ډیرو کلونو دی. هغه یوه لویه ټولنه لري چې وده کوي. ZFS خورا معتبر حل دی.

نیکولای سموخوالوف: کولای شم نوره تبصره وکړم؟ زما نوم نیکولای دی، موږ د اناتولي سره یوځای کار کوو. زه موافق یم چې ذخیره خورا ښه ده. او زموږ ځینې پیرودونکي خالص ذخیره لري وغيره.

اناتولي په سمه توګه یادونه وکړه چې موږ په موډلیت تمرکز کوو. او په راتلونکي کې، تاسو کولی شئ یو انٹرفیس پلي کړئ - یو سنیپ شاټ واخلئ، کلون جوړ کړئ، کلون ویجاړ کړئ. دا ټول اسانه دي. او ذخیره کول ښه دی، که دا وي.

مګر ZFS د هرچا لپاره شتون لري. DelPhix لا دمخه کافی دی، دوی 300 مشتریان لري. له دې څخه، fortune 100 50 مشتریان لري، د بیلګې په توګه دوی د NASA، او داسې نورو لپاره دي. دا د هرچا لپاره وخت دی چې دا ټیکنالوژي ترلاسه کړي. او له همدې امله موږ د خلاصې سرچینې کور لرو. موږ د انٹرفیس برخه لرو چې خلاص سرچینه نده. دا هغه پلیټ فارم دی چې موږ به یې وښیو. مګر موږ غواړو چې دا د هرچا لپاره د لاسرسي وړ وي. موږ غواړو یو انقلاب رامینځته کړو ترڅو ټول ازموینه کونکي په لپټاپونو کې اټکل بند کړي. موږ باید SELECT ولیکئ او سمدلاسه وګورو چې دا ورو دی. د DBA انتظار ودروئ چې تاسو ته یې په اړه ووایی. دلته اصلي هدف دی. او زه فکر کوم چې موږ ټول به دې ته ورسیږو. او موږ دا شی د هرچا لپاره جوړوو. نو ځکه ZFS، ځکه چې دا به هرچیرې شتون ولري. د ستونزو د حل کولو او د خلاصې سرچینې جواز درلودلو لپاره د ټولنې څخه مننه.*

سلامونه! د راپور لپاره مننه! زما نوم مکسیم دی. موږ د ورته مسلو سره معامله کړې. دوی پخپله پریکړه وکړه. تاسو د دې کلونونو ترمنځ سرچینې څنګه شریکوئ؟ هر کلون کولی شي په هر وخت کې خپل کار ترسره کړي: یو څوک یو شی ازموي، بل بل، څوک یو شاخص جوړوي، یو څوک دروند دنده لري. او که تاسو لاهم د CPU لخوا ویشلی شئ، نو د IO لخوا، تاسو څنګه ویشئ؟ دا لومړۍ پوښتنه ده.

او دوهمه پوښتنه د موقفونو د توپیر په اړه ده. راځئ چې ووایو زه دلته ZFS لرم او هرڅه ښه دي ، مګر په محصول کې پیرودونکي ZFS نلري ، مګر ext4 ، د مثال په توګه. په دې صورت کې څنګه؟

پوښتنې ډیرې ښې دي. ما دا ستونزه د حقیقت سره یو څه یادونه وکړه چې موږ سرچینې شریکوو. او د حل لاره همدا ده. تصور وکړئ چې تاسو په سټینګ کې ازموینه کوئ. ته هم داسې حالت کېدی شي چې یو څوک یو بار ورکوي، بل څوک. او د پایلې په توګه ، تاسو میټریکونه ګورئ چې د پوهیدو وړ ندي. حتی ورته ستونزه د محصول سره کیدی شي. کله چې تاسو غواړئ یو څه غوښتنه چیک کړئ او تاسو وګورئ چې پدې کې یو څه ستونزه شتون لري - دا ورو کار کوي ، نو په حقیقت کې ستونزه په غوښتنه کې نه وه ، مګر په حقیقت کې چې یو ډول موازي بار شتون لري.

او له همدې امله دلته مهمه ده چې تمرکز وکړو چې پلان به څه وي، موږ به په پلان کې کوم ګامونه پورته کړو او د دې لپاره به څومره معلومات راټول کړو. دا حقیقت چې زموږ ډیسکونه، د بیلګې په توګه، به د یو څه سره بار شي، دا به په ځانګړې توګه په وخت اغیزه وکړي. مګر موږ اټکل کولی شو چې دا غوښتنه د ډیټا مقدار لخوا څومره بار شوې ده. دا مهمه نده چې په ورته وخت کې به یو ډول اعدام وي.

زه دوه پوښتنې لرم. دا خورا خوندور توکي دي. ایا داسې قضیې شتون لري چې د تولید ډیټا خورا مهم وي، لکه د کریډیټ کارت شمیرې؟ ایا دمخه یو څه چمتو دی یا دا یو جلا دنده ده؟ او دویمه پوښتنه - ایا د MySQL لپاره داسې یو څه شتون لري؟

د معلوماتو په اړه. موږ به تر هغه وخته پورې خنډونه ترسره کړو چې موږ یې نه کوو. مګر که تاسو په سمه توګه جو ګومارئ ، که تاسو پراختیا کونکو ته لاسرسی نه ورکوئ ، نو بیا ډیټا ته لاسرسی شتون نلري. ولې؟ ځکه چې جو ډیټا نه ښیې. دا یوازې میټریکونه، پلانونه ښیې او دا دی. دا په قصدي توګه ترسره شوی، ځکه چې دا زموږ د پیرودونکي اړتیاوې دي. دوی غوښتل چې پرته له دې چې هرچا ته لاسرسی ومومي مطلوب شي.

د MySQL په اړه. دا سیسټم د هر هغه څه لپاره کارول کیدی شي چې په ډیسک کې ذخیره کوي. او له هغه وخته چې موږ پوسټګریس کوو، موږ اوس د پوسټګریس لپاره ټول اتوماتیک او تر ټولو مهم کار کوو. موږ غواړو د بیک اپ څخه ډیټا ترلاسه کول اتومات کړو. موږ پوسټګرس په سمه توګه تنظیم کوو. موږ پوهیږو چې څنګه پلانونه جوړ کړو، او داسې نور.

مګر څنګه چې سیسټم د توزیع وړ دی، دا د MySQL لپاره هم کارول کیدی شي. او داسې مثالونه شته. Yandex ورته شی لري، مګر دوی دا په هر ځای کې نه خپروي. دوی دا د Yandex.Metrica دننه کاروي. او د MySQL په اړه یوازې یوه کیسه ده. مګر ټیکنالوژي ورته دي، ZFS.

د راپور لپاره مننه! زه هم یو څو پوښتنې لرم. تاسو یادونه وکړه چې کلونینګ د تحلیلونو لپاره کارول کیدی شي، د بیلګې په توګه د اضافي شاخصونو جوړولو لپاره. ایا تاسو کولی شئ لږ څه ووایاست چې دا څنګه کار کوي؟

او زه به سمدلاسه دویمه پوښتنه د سټینډونو ورته والي ، د پلانونو ورته والي په اړه وپوښتم. پلان هم د پوسټګریس لخوا راټول شوي احصایې پورې اړه لري. تاسو دا ستونزه څنګه حل کوئ؟

د تحلیلونو په وینا، هیڅ ځانګړي قضیې شتون نلري، ځکه چې موږ تر اوسه دا نه ده کارولې، مګر داسې فرصت شتون لري. که موږ د شاخصونو په اړه وغږیږو ، نو تصور وکړئ چې یوه پوښتنه د سلګونو ملیون ریکارډونو او یو کالم سره یو میز تعقیبوي چې معمولا په پروډ کې نه ښودل کیږي. او موږ غواړو هلته ځینې معلومات محاسبه کړو. که دا غوښتنه پروډ ته واستول شي ، نو احتمال شتون لري چې دا به په پروډ کې ساده وي ، ځکه چې غوښتنه به د یوې دقیقې لپاره هلته پروسس شي.

ښه، راځئ چې یو پتلی کلون جوړ کړو چې د څو دقیقو لپاره ودرول خطرناک نه وي. او د دې لپاره چې دا د تحلیلونو لوستلو کې ډیر راحته کړي ، موږ به د هغه کالمونو لپاره شاخصونه اضافه کړو په کوم کې چې موږ ډیټا سره علاقه لرو.

شاخص به هر ځل جوړ شي؟

تاسو کولی شئ دا جوړ کړئ ترڅو موږ ډیټا ته لاس ورکړو، سنیپ شاټ جوړ کړو، بیا به موږ له دې سنیپ شاټ څخه بیرته راګرځوو او نوي غوښتنې به چلوو. دا دی ، تاسو کولی شئ دا رامینځته کړئ ترڅو تاسو وکولی شئ نوي کلونونه د دمخه ټاکل شوي شاخصونو سره لوړ کړئ.

لکه څنګه چې د احصایې په اړه پوښتنې لپاره، که موږ د بیک اپ څخه بیرته راګرځوو، که موږ نقل وکړو، نو زموږ احصایې به ورته وي. ځکه چې موږ د ټول فزیکي ډیټا جوړښت لرو، دا دی، موږ به ډاټا راوړو لکه څنګه چې دا د ټولو احصایې میترونو سره هم دي.

دلته بله ستونزه ده. که تاسو د بادل حل کاروئ، نو یوازې منطقي ډمپونه شتون لري، ځکه چې ګوګل، ایمیزون تاسو ته اجازه نه ورکوي چې فزیکي کاپي واخلئ. ستونزه به وي.

د راپور لپاره مننه. دلته د MySQL او د سرچینو شریکولو په اړه دوه ښه پوښتنې وې. مګر، په حقیقت کې، دا ټول حقیقت ته راځي چې دا د ځانګړي DBMS موضوع نه ده، مګر په ټولیز ډول د فایل سیسټم. او، په وینا، د سرچینو شریکولو مسلې هم باید له هغه ځایه حل شي، نه په پای کې چې دا پوسټګریس دی، مګر د فایل سیسټم کې، په سرور کې، د مثال په توګه.

زما پوښتنه یو څه توپیر لري. دا د څو پرتونو ډیټابیس ته نږدې دی، چیرې چې ډیری پرتونه شتون لري. د مثال په توګه، موږ د لسو ټیرابایټ عکس تازه کول تنظیم کړل، موږ یې نقل کوو. او موږ په ځانګړې توګه دا حل د ډیټابیسونو لپاره کاروو. نقل په پرمختګ کې دی، معلومات تازه کیږي. دلته 100 کارمندان په موازي توګه کار کوي، چې په دوامداره توګه دا مختلف شاټونه پیلوي. چې څه کول پکار دي؟ څنګه ډاډ ترلاسه کړئ چې هیڅ شخړه شتون نلري، دوی یو پیل کړ، او بیا د فایل سیسټم بدل شو، او دا انځورونه ټول لاړل؟

دوی به نه ځي ځکه چې دا څنګه ZFS کار کوي. موږ کولی شو په جلا توګه د فایل سیسټم بدلونونه په یوه تار کې وساتو چې د نقل کولو له امله راځي. او هغه کلونونه وساتئ چې پراختیا کونکي یې د معلوماتو په زړو نسخو کې کاروي. او دا زموږ لپاره کار کوي، هرڅه د دې سره سم دي.

دا معلومه شوه چې تازه به د اضافي پرت په توګه ترسره شي، او ټول نوي عکسونه به مخکې لاړ شي، د دې پرت پر بنسټ، سمه ده؟

د پخوانیو پرتونو څخه چې د پخوانیو نقلونو څخه وو.

پخوانۍ پرتونه به راټیټ شي، مګر دوی به زاړه پرت ته مراجعه وکړي، او ایا دوی به د وروستي پرت څخه نوي عکسونه واخلي چې په تازه کې ترلاسه شوي؟

په عمومي توګه، هو.

بیا د پایلې په توګه موږ به د انځر پورې پرتونه ولرو. او د وخت په تیریدو سره به دوی فشار ته اړتیا ولري؟

هو هر څه سم دي. یو څه کړکۍ شتون لري. موږ د اونۍ عکسونه ساتو. دا پدې پورې اړه لري چې تاسو کومې سرچینې لرئ. که تاسو د ډیری ډیټا ذخیره کولو وړتیا لرئ ، تاسو کولی شئ د اوږدې مودې لپاره سنیپ شاټونه ذخیره کړئ. دوی به پخپله نه ځي. د معلوماتو فساد به نه وي. که عکسونه زاړه وي، لکه څنګه چې موږ ته ښکاري، د بیلګې په توګه دا د شرکت په پالیسۍ پورې اړه لري، نو موږ کولی شو په ساده ډول دوی حذف کړو او ځای خالي کړو.

سلام، د راپور لپاره مننه! د جو په اړه پوښتنه. تاسو وویل چې پیرودونکي نه غواړي هرچا ته ډاټا ته لاسرسی ورکړي. په کلکه ووایو ، که چیرې یو څوک د توضیحي تحلیل پایله ولري ، نو هغه کولی شي معلومات وګوري.

دا داسې ده. د مثال په توګه، موږ لیکلی شو: "د بریښنالیک له کوم ځای څخه انتخاب کړئ = هغه ته". دا دی، موږ به پخپله ډاټا ونه ګورو، مګر موږ ځینې غیر مستقیم نښې لیدلی شو. دا باید پوه شي. مګر له بلې خوا، دا ټول شتون لري. موږ د لاګ پلټنه لرو، موږ د نورو همکارانو کنټرول لرو چې دا هم ګوري چې پراختیا کونکي څه کوي. او که څوک دا هڅه وکړي، نو امنیتي اداره به دوی ته راشي او په دې مسله به کار وکړي.

بعد له غرمه مو پخیر د راپور لپاره مننه! زه یوه لنډه پوښتنه لرم. که چیرې شرکت سلیک نه کاروي، ایا اوس د دې لپاره کوم پابند شتون لري، یا ایا دا ممکنه ده چې پراختیا کونکي د ډیټابیسونو سره د ازموینې غوښتنلیک وصل کولو لپاره مثالونه ځای په ځای کړي؟

اوس د سلیک سره لینک شتون لري ، یعنی بل میسنجر نشته ، مګر زه واقعیا غواړم د نورو میسنجرونو لپاره هم ملاتړ وکړم. تاسو څه کولی شئ؟ تاسو کولی شئ د جوی پرته د DB لابراتوار ځای په ځای کړئ، د REST API په مرسته یا زموږ د پلیټ فارم په مرسته لاړ شئ او کلونونه جوړ کړئ او د PSQL سره وصل شئ. مګر دا ترسره کیدی شي که تاسو چمتو یاست چې خپلو پراختیا کونکو ته ډیټا ته لاسرسی ورکړئ ، ځکه چې نور به هیڅ سکرین شتون ونلري.

زه دې پرت ته اړتیا نه لرم، مګر زه داسې فرصت ته اړتیا لرم.

بیا هو، دا کیدی شي.

سرچینه: www.habr.com

Add a comment