Scaling Django with Database Sharding & Replication
Sharding qilishga ishim tushmagan (halicha tushmasin) lekin replicationda master-slave arxitekturasini Django bilan ko'p ishlatishga to'g'ri kelmoqda ...
Qisqasi:
We always shard database and partition the data.
More:
- https://planetscale.com/blog/database-sharding
- https://valiancesolutions.com/learning-hub/master-slave-database-design-for-scalable-multi-tenancy-systems/
- https://testdriven.io/blog/django-multi-tenant/🔥
Sharding qilishga ishim tushmagan (halicha tushmasin) lekin replicationda master-slave arxitekturasini Django bilan ko'p ishlatishga to'g'ri kelmoqda ...
Qisqasi:
We always shard database and partition the data.
More:
- https://planetscale.com/blog/database-sharding
- https://valiancesolutions.com/learning-hub/master-slave-database-design-for-scalable-multi-tenancy-systems/
- https://testdriven.io/blog/django-multi-tenant/
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5 4⚡1 1
Process va thread
Pythondagi (dasturlashdagi) ko'p so'raladigan mazgi savollardan.
Qisqa:
Process - bu qaysidir dasturiy taminotning komputer ichida bajarilayotgan jarayoni.
Thread - bu process ichidagi element bo'lib dasturni haqiqatdan ishlashiga ya'ni siz buyurgan amallarni natijaga aylantirishga yordam beradi.
Processlar - kamida bitta(main thread)yoki odatda bir necha threadlardan tashkil topgan bo'ladi. Processlar bir biri bilan xotira ulashmaydi va bu agar bir process ishdan chiqsa yoki xato ishlashni boshlasa boshqa processlarga tasir qilmaydi. Process thread natijalarini boshqaradi
Threadlar - bir biri bilan xotira ulashadi va agarda birortasi noto'g'ri ishlashni boshlasa hammasiga tasir qiladi.
Savol
Bir vaqtda kompyuterda bir necha dasturlarni ishlatamiz bunda kompyuter bularni qanday boshqaradi?⬇️
» @davron_coder
Pythondagi (dasturlashdagi) ko'p so'raladigan mazgi savollardan.
Qisqa:
Process - bu qaysidir dasturiy taminotning komputer ichida bajarilayotgan jarayoni.
Thread - bu process ichidagi element bo'lib dasturni haqiqatdan ishlashiga ya'ni siz buyurgan amallarni natijaga aylantirishga yordam beradi.
Processlar - kamida bitta(main thread)yoki odatda bir necha threadlardan tashkil topgan bo'ladi. Processlar bir biri bilan xotira ulashmaydi va bu agar bir process ishdan chiqsa yoki xato ishlashni boshlasa boshqa processlarga tasir qilmaydi. Process thread natijalarini boshqaradi
Threadlar - bir biri bilan xotira ulashadi va agarda birortasi noto'g'ri ishlashni boshlasa hammasiga tasir qiladi.
Savol
Bir vaqtda kompyuterda bir necha dasturlarni ishlatamiz bunda kompyuter bularni qanday boshqaradi?
» @davron_coder
Please open Telegram to view this post
VIEW IN TELEGRAM
2 6🔥4⚡2🤝1
pyproject.toml + Poetry 🔥
Ko'pchiligimiz Python loyihalarda (men ham)requirements.txt ishlatamiz. Lekin bilasizmi, bu usul eskirgan?)
requirements.txt faqat kutubxonalar ro‘yxatini saqlaydi, lekin Python versiyasi, qayerdan o'rnatilgani haqida malumot yuq.
Zamonaviy yechim esa pyproject.toml va Poetry.
Bu loyihani:
- barqaror qiladi
- har kimda bir xil muhit yaratadi
- dependency boshqaruvini yengillashtirar ekan
Masalan, pyproject.toml fayli shunday ko‘rinadi👇
Poetry shu fayldan foydalanib, virtual environment yaratadi va kutubxonalarni to‘liq nazorat qiladi.
Bu - xuddi Node.js’dagi package.json va package-lock.json kabi ishlaydi.
Xullas:
requirements.txt --> kechagi kun
pyproject.toml --> bugun va ertangi kun "deyishmoqda"
More👈
Ko'pchiligimiz Python loyihalarda (men ham)requirements.txt ishlatamiz. Lekin bilasizmi, bu usul eskirgan?)
requirements.txt faqat kutubxonalar ro‘yxatini saqlaydi, lekin Python versiyasi, qayerdan o'rnatilgani haqida malumot yuq.
Zamonaviy yechim esa pyproject.toml va Poetry.
Bu loyihani:
- barqaror qiladi
- har kimda bir xil muhit yaratadi
- dependency boshqaruvini yengillashtirar ekan
Masalan, pyproject.toml fayli shunday ko‘rinadi👇
[tool.poetry]
name = "myproject"
version = "0.1.0"
description = "Awesome Python project"
authors = ["Davronbek <[email protected]>"]
[tool.poetry.dependencies]
python = "^3.10"
flask = "^3.0.0"
requests = "^2.31.0"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Poetry shu fayldan foydalanib, virtual environment yaratadi va kutubxonalarni to‘liq nazorat qiladi.
Bu - xuddi Node.js’dagi package.json va package-lock.json kabi ishlaydi.
Xullas:
requirements.txt --> kechagi kun
pyproject.toml --> bugun va ertangi kun "deyishmoqda"
More
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥4🤝4⚡1🎉1 1
So G9.
Before sleep, u should watch this.
P.s) just learn C instead of it))
https://youtu.be/8twxK9-GTx8?si=fYhYqSSRMXaSLwnZ
Before sleep, u should watch this.
P.s) just learn C instead of it))
https://youtu.be/8twxK9-GTx8?si=fYhYqSSRMXaSLwnZ
YouTube
Cython is awesome in Python
Today, we’re going to learn how to create C extensions for our Python scripts to boost the performance of our functions!
▶ Become job-ready with Python: https://www.indently.io
▶ Learn Rust with me: https://www.youtube.com/@Rustfully
00:00 Learning Python…
▶ Become job-ready with Python: https://www.indently.io
▶ Learn Rust with me: https://www.youtube.com/@Rustfully
00:00 Learning Python…
1🔥3⚡1👍1 1
DEVSHOP.UZ - dasturchilar uchun birinchi “shop”
Bu OLX emas, bu Amazon ham emas.
Bu - keyboarddan kofegacha, hoodie’dan memegacha - faqat devlar tushunadigan joy.🍷
Hozir V1 ustida ishlanmoqda:
- Developer’lar faqatgin GitHub orqali kirib, o‘z futbolka rangini tanlaydi
- Python, Go, Docker, JS logolarini joylashtiradi
- live preview’da o‘z merch dizaynini yasaydi
- va Click / Payme orqali zakaz beradi
- Tashkent bo'ylab yetkazib berish tekin
Dasturchiga kodi yoqmasa, hech bo‘lmasa futbolkasi yoqsin:)
Keyingi bosqichlarda:
Har kim o‘z mahsulotini sotsa dev-to-dev bozor
Meme galereya
Yani “bug” ham, “hoodie” ham, “coffee” ham bor bo‘ladi ☕💻
etc...
🔥 Hozirda backend va front’ni o‘zim (+AI) yozilmoqda.
Agar creative dizayner yoki frontendchi bo‘lsangiz - DM ochiq.
#DevShopUZ #soon
Bu OLX emas, bu Amazon ham emas.
Bu - keyboarddan kofegacha, hoodie’dan memegacha - faqat devlar tushunadigan joy.
Hozir V1 ustida ishlanmoqda:
- Developer’lar faqatgin GitHub orqali kirib, o‘z futbolka rangini tanlaydi
- Python, Go, Docker, JS logolarini joylashtiradi
- live preview’da o‘z merch dizaynini yasaydi
- va Click / Payme orqali zakaz beradi
- Tashkent bo'ylab yetkazib berish tekin
Dasturchiga kodi yoqmasa, hech bo‘lmasa futbolkasi yoqsin:)
Keyingi bosqichlarda:
Har kim o‘z mahsulotini sotsa dev-to-dev bozor
Meme galereya
Yani “bug” ham, “hoodie” ham, “coffee” ham bor bo‘ladi ☕
etc...
🔥 Hozirda backend va front’ni o‘zim (+AI) yozilmoqda.
Agar creative dizayner yoki frontendchi bo‘lsangiz - DM ochiq.
#DevShopUZ #soon
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14 5🔥2🤔1🤝1
🧠 Build Own X
Foydalanayotgan texnologiyalaringiz ichida nimalar sodir bo'layotganini bilasizmi?
Rebuild To Learn :)
More: https://codecrafters.io/
#BuildOwnX #RebuildToLearn
Foydalanayotgan texnologiyalaringiz ichida nimalar sodir bo'layotganini bilasizmi?
Rebuild To Learn :)
More: https://codecrafters.io/
#BuildOwnX #RebuildToLearn
🔥5 4🤷♂1⚡1
Kichik e'lon: 🎮 +🎧
PS5 Slim olingan narxidan ancha arzonga sotilmoqda ekan
ps) Dasturchilar uchun skidkasi bor😉
Qiziqanlar 👉 @davronbek_dev
[more]
#sale #ps5
PS5 Slim olingan narxidan ancha arzonga sotilmoqda ekan
ps) Dasturchilar uchun skidkasi bor😉
Qiziqanlar 👉 @davronbek_dev
[more]
#sale #ps5
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 React.js Dasturchi Kerak!
🏢 Tashkilot: UzDavKarantin, Axborot-Kommunikatsiyalar boshqarmasi
📍 Joylashuv: Toshkent shahri
🕰 Ish vaqti: 09:00 - 18:00
💰 Maosh: 15 000 000+ so‘mdan (tajribaga qarab kelishiladi)
⸻
Ishxonamiz taklif qiladi:
☕️ Qulay ish muhiti
💼 Barqaror, doimiy ish
📈 Yangi bilimlar qiziqarli murakkab loyihalarda o‘sish imkoniyati.
💧 Chanqoqga qarshi kuler
⸻
⚙️ Texnologiyalar:
• React.js (functional components, hooks, component architecture)
• Next.js (SSR/SSG, routing, performance optim.)
• TypeScript — to‘liq typing, interfeyslar, generics
• State management: Redux / Redux Toolkit, Zustand
• JavaScript (ES6+) — native JSda toza kod yozish qobiliyati
• UI & styling: Tailwind CSS, ShadCN UI, shuningdek Material UI, Ant Design kabi kutubxonalar bilan ishlash
• Maps & geospatial: Leaflet, React-Leaflet, MapLibre / Mapbox / react-map-gl, OpenLayers, GeoJSON, turf.js (geospatial processing), klasterlash, heatmap, routing va tile server integratsiyalari
• Integratsiya va autentifikatsiya: E-IMZO, One ID va davlat xizmatlari uchun kerakli auth/tashdiqlash oqimlarini amalga oshira olishi
⸻
⚠️ Eslatma:
Hozircha junior yoki internship darajasidagi nomzodlar uchun vakansiya mavjud emas.
Kamida 2–3 yillik real loyihalarda tajriba talab etiladi.
⸻
📬 @AsadbekAzamov01
#vacancy #frontend
🏢 Tashkilot: UzDavKarantin, Axborot-Kommunikatsiyalar boshqarmasi
📍 Joylashuv: Toshkent shahri
🕰 Ish vaqti: 09:00 - 18:00
💰 Maosh: 15 000 000+ so‘mdan (tajribaga qarab kelishiladi)
⸻
Ishxonamiz taklif qiladi:
☕️ Qulay ish muhiti
💼 Barqaror, doimiy ish
📈 Yangi bilimlar qiziqarli murakkab loyihalarda o‘sish imkoniyati.
⸻
⚙️ Texnologiyalar:
• React.js (functional components, hooks, component architecture)
• Next.js (SSR/SSG, routing, performance optim.)
• TypeScript — to‘liq typing, interfeyslar, generics
• State management: Redux / Redux Toolkit, Zustand
• JavaScript (ES6+) — native JSda toza kod yozish qobiliyati
• UI & styling: Tailwind CSS, ShadCN UI, shuningdek Material UI, Ant Design kabi kutubxonalar bilan ishlash
• Maps & geospatial: Leaflet, React-Leaflet, MapLibre / Mapbox / react-map-gl, OpenLayers, GeoJSON, turf.js (geospatial processing), klasterlash, heatmap, routing va tile server integratsiyalari
• Integratsiya va autentifikatsiya: E-IMZO, One ID va davlat xizmatlari uchun kerakli auth/tashdiqlash oqimlarini amalga oshira olishi
⸻
⚠️ Eslatma:
Hozircha junior yoki internship darajasidagi nomzodlar uchun vakansiya mavjud emas.
Kamida 2–3 yillik real loyihalarda tajriba talab etiladi.
⸻
📬 @AsadbekAzamov01
#vacancy #frontend
⚡2👍2🔥2😁2 1
🔥4🤷♂2 2⚡1👍1
Forwarded from ITEC 🧑💻🧠
❓ Biznes egasi sifatida mijozlaringizni haqiqatan qanchalik ushlab qolayotganingizni bilishni xohlaysizmi?
🫴🏻 Eng samarali yechim — Cohort (yoki Vintage) tahlili.
Bu tahlil mijozlarni ular biznesga kirgan yoki birinchi xarid qilgan vaqtiga ko‘ra guruhlaydi va keyingi oylar davomida ularning faoliyatini kuzatadi. Shu orqali siz:
- qaysi davrlardagi mijozlar yaxshiroq ushlanayotganini,
- qaysi o‘zgarishlar mijozlarni yo‘qotishga olib kelayotganini,
- mahsulot yangilanishlarining xatti-harakatga ta’sirini
aniq ko‘ra olasiz.
💡 Esingizda bo‘lsin: yangi mijoz jalb qilish qimmat, lekin mavjud mijozni ushlab qolish oson va samarali. Shu bois, cohort tahlili biznesingizni strategik rivojlantirishda muhim vosita hisoblanadi.
🫴🏻 Eng samarali yechim — Cohort (yoki Vintage) tahlili.
Bu tahlil mijozlarni ular biznesga kirgan yoki birinchi xarid qilgan vaqtiga ko‘ra guruhlaydi va keyingi oylar davomida ularning faoliyatini kuzatadi. Shu orqali siz:
- qaysi davrlardagi mijozlar yaxshiroq ushlanayotganini,
- qaysi o‘zgarishlar mijozlarni yo‘qotishga olib kelayotganini,
- mahsulot yangilanishlarining xatti-harakatga ta’sirini
aniq ko‘ra olasiz.
💡 Esingizda bo‘lsin: yangi mijoz jalb qilish qimmat, lekin mavjud mijozni ushlab qolish oson va samarali. Shu bois, cohort tahlili biznesingizni strategik rivojlantirishda muhim vosita hisoblanadi.
🔥4⚡2👍2 1
Forwarded from Jakhongir Rakhmonov - IT
Bu narsani har bir backend dasturchisi bilishi shart
Backendni jiddiy o‘rganaman degan dasturchi albatta Distributed System lar haqida o‘rganishi kerak. Chunki minglab, millionlab foydalanuvchilar ishlatadigan sistemalar distributed bo‘lmasdan ilojisi yo‘q.
Distributed System lar bir nechta qismlardan, bir nechta ma’lumotlar bazasidan tashkil topgan bo‘ladi va ushbu qismlar bir biri bilan network orqali gaplashishadi. Bunday holatda esa har doim ham hamma narsa siz kutgandek ishlayvermaydi. Qandaydir muammolar bo‘lib turishi aniq, ayniqsa network bilan. Biror serverda internet sekin ishlashi mumkin, qandaydir DNS muammo bo‘lishi mumkin, packet loss bo‘lishi mumkin va hokazo. Xullas bunday muammo bo‘lishi aniq, 100%.
Shunday holatlarga sizning tizimingiz tayyor bo‘lishi kerak. Oldindan shunday network muammo bo‘lsa nima qilamiz deb o‘ylab qo‘yish kerak.
Bunda bizga CAP nazariyasi yordam beradi. Unga ko‘ra sistemalarda uch xil xususiyat bor:
- [C] Consistency - Ma’lumotlar bazasidan sistemaning barcha qismlari nimadir o‘qimoqchi bo‘lganida eskirib qolgan ma’lumotni olmaydi, eng oxirgi yozilgan ma’lumotlarni oladilar.
- [A] Availability - Tizim har doim ishlab turadi.
- [P] Partition tolerance - Network bilan muammo bo‘lganda ham tizim kutilgandek ishlaydi.
Tepada aytib o‘tdikki network bilan muammolar har doim bo‘ladi va ushbu nazariyaga ko‘ra siz faqatgina yoki Consistency ni yoki Availability ni tanlashga majbursiz. Ikkalasini birdaniga tanlay olmaysiz. Ya’ni sizda har doim P bo‘ladi, siz C yoki A ni tanlashingiz shart.
Masalan sizda Master database va uning replikasi bor. Foydalanuvchilar Masterga yozadi, ma’lumotlarning nusxalari replikaga boradi va replikadan foydalanadiganlar eng oxirgi (ya’ni consistent) ma’lumotlarni o‘qiy oladilar.
Deylik qandaydir network muammo bo‘ldi va master bilan replika orasida bog‘lanish uzildi.
Endi sizda ikkita yo‘l bor:
Birinchisi - consistency ni prioritetga qo‘yish, ya’ni CP. Master ishlayveradi, replicaga kelayotgan requestlar esa "Database unavailable" degan xatoni oladi.
Ikkinchisi - availability ni prioritetga qo‘yish, yani AP. Master ham replica ham ishlayveradi. Lekin bir biriga yozilgan ma’lumotlarni jo‘natishmaydi. Consistency yo‘qoladi. Foydalanuvchilar eskirib qolgan ma’lumotlarni ko‘rishi mumkin.
Qaysi birini tanlash esa holatga bog‘liq.
Masalan siz Netflix quryapsiz. Agar foydalanuvchilar sal-pal eskirib qolgan ma’lumotlarni ko‘rsa qo‘rqinchli emas Netflix uchun. Shuning uchun ham bu sistemani AP qilish kerak, availability ni prioritetga qo‘yish kerak.
Yana bir misol. Deylik siz biror avialiniyaning sistemasini quryapsiz. Unda parvozlarni qidirish funksiyasi mavjud. Bu holatda ham AP qilgan, ya’ni availabilityni muhib deb topish to‘g‘ri. Chunki foydalanuvchilar sal-pal eskirib qolgan narxlarni ko‘rsa ham unchalik qo‘rqinchli emas. Amma umuman qidira olishmasa - qo‘rqinchli.
Lekin chipta sotib olayotganda esa CP qilish shart. Consistent bo‘lishi kerak. Ma’lumotlar aniq va so‘ngi bo‘lishi kerak. Aks holda bitta o‘rinning chiptasini bir nechta odamga sotib yuborishingiz mumkin. Bu esa - qo‘rqinchli.
@jakhonrakhmonov
Backendni jiddiy o‘rganaman degan dasturchi albatta Distributed System lar haqida o‘rganishi kerak. Chunki minglab, millionlab foydalanuvchilar ishlatadigan sistemalar distributed bo‘lmasdan ilojisi yo‘q.
Distributed System lar bir nechta qismlardan, bir nechta ma’lumotlar bazasidan tashkil topgan bo‘ladi va ushbu qismlar bir biri bilan network orqali gaplashishadi. Bunday holatda esa har doim ham hamma narsa siz kutgandek ishlayvermaydi. Qandaydir muammolar bo‘lib turishi aniq, ayniqsa network bilan. Biror serverda internet sekin ishlashi mumkin, qandaydir DNS muammo bo‘lishi mumkin, packet loss bo‘lishi mumkin va hokazo. Xullas bunday muammo bo‘lishi aniq, 100%.
Shunday holatlarga sizning tizimingiz tayyor bo‘lishi kerak. Oldindan shunday network muammo bo‘lsa nima qilamiz deb o‘ylab qo‘yish kerak.
Bunda bizga CAP nazariyasi yordam beradi. Unga ko‘ra sistemalarda uch xil xususiyat bor:
- [C] Consistency - Ma’lumotlar bazasidan sistemaning barcha qismlari nimadir o‘qimoqchi bo‘lganida eskirib qolgan ma’lumotni olmaydi, eng oxirgi yozilgan ma’lumotlarni oladilar.
- [A] Availability - Tizim har doim ishlab turadi.
- [P] Partition tolerance - Network bilan muammo bo‘lganda ham tizim kutilgandek ishlaydi.
Tepada aytib o‘tdikki network bilan muammolar har doim bo‘ladi va ushbu nazariyaga ko‘ra siz faqatgina yoki Consistency ni yoki Availability ni tanlashga majbursiz. Ikkalasini birdaniga tanlay olmaysiz. Ya’ni sizda har doim P bo‘ladi, siz C yoki A ni tanlashingiz shart.
Masalan sizda Master database va uning replikasi bor. Foydalanuvchilar Masterga yozadi, ma’lumotlarning nusxalari replikaga boradi va replikadan foydalanadiganlar eng oxirgi (ya’ni consistent) ma’lumotlarni o‘qiy oladilar.
Deylik qandaydir network muammo bo‘ldi va master bilan replika orasida bog‘lanish uzildi.
Endi sizda ikkita yo‘l bor:
Birinchisi - consistency ni prioritetga qo‘yish, ya’ni CP. Master ishlayveradi, replicaga kelayotgan requestlar esa "Database unavailable" degan xatoni oladi.
Ikkinchisi - availability ni prioritetga qo‘yish, yani AP. Master ham replica ham ishlayveradi. Lekin bir biriga yozilgan ma’lumotlarni jo‘natishmaydi. Consistency yo‘qoladi. Foydalanuvchilar eskirib qolgan ma’lumotlarni ko‘rishi mumkin.
Qaysi birini tanlash esa holatga bog‘liq.
Masalan siz Netflix quryapsiz. Agar foydalanuvchilar sal-pal eskirib qolgan ma’lumotlarni ko‘rsa qo‘rqinchli emas Netflix uchun. Shuning uchun ham bu sistemani AP qilish kerak, availability ni prioritetga qo‘yish kerak.
Yana bir misol. Deylik siz biror avialiniyaning sistemasini quryapsiz. Unda parvozlarni qidirish funksiyasi mavjud. Bu holatda ham AP qilgan, ya’ni availabilityni muhib deb topish to‘g‘ri. Chunki foydalanuvchilar sal-pal eskirib qolgan narxlarni ko‘rsa ham unchalik qo‘rqinchli emas. Amma umuman qidira olishmasa - qo‘rqinchli.
Lekin chipta sotib olayotganda esa CP qilish shart. Consistent bo‘lishi kerak. Ma’lumotlar aniq va so‘ngi bo‘lishi kerak. Aks holda bitta o‘rinning chiptasini bir nechta odamga sotib yuborishingiz mumkin. Bu esa - qo‘rqinchli.
@jakhonrakhmonov
👍12🔥3 1