સામગ્રીનું કોષ્ટક[છુપાવો][બતાવો]
- 1. સિસ્ટમ ડિઝાઇન દ્વારા તમારો અર્થ શું છે?
- 2. સિસ્ટમ ડિઝાઇનરની સૌથી મહત્વપૂર્ણ લાક્ષણિકતાઓ શું છે?
- 3. CAP પ્રમેય બરાબર શું છે?
- 4. લોડ બેલેન્સિંગ દ્વારા તમે શું સમજો છો?
- 5. અસુમેળ પ્રોગ્રામિંગ અને સમાંતર પ્રોગ્રામિંગ વચ્ચે શું તફાવત છે?
- 6. હોરીઝોન્ટલ અને વર્ટીકલ સ્કેલિંગ વચ્ચે શું તફાવત છે?
- 7. લેટન્સી, થ્રુપુટ અને સિસ્ટમની ઉપલબ્ધતા દ્વારા તમારો અર્થ શું છે?
- 8. ACID ગુણધર્મો શું છે?
- 9. શાર્ડિંગ બરાબર શું છે?
- 10. CDN શું છે?
- 11. શા માટે CDN નો ઉપયોગ કરવો?
- 12. શાર્ડિંગ અને પાર્ટીશન વચ્ચે શું તફાવત છે?
- 13. કેશીંગ બરાબર શું છે?
- 14. CDN એજ સર્વર્સ શું છે?
- 15. સિસ્ટમ ડિઝાઇન માટે વિવિધ સુસંગતતા પેટર્ન શું છે?
- 16. તમે આશાવાદી લોકીંગનો અર્થ શું કરો છો?
- 17. "નેતાની ચૂંટણી" દ્વારા તમારો અર્થ શું છે?
- 18. TinyURL જેવી URL શોર્ટનિંગ સેવા ડિઝાઇન કરવા માટે તમારો અભિગમ શું છે?
- 19. ટ્વિટર ડિઝાઇન કરવા માટે તમારો અભિગમ શું છે?
- 20. ફેસબુક માટે ન્યૂઝફીડ સિસ્ટમ બનાવો
- 21. સિસ્ટમની BASE મિલકત શું છે?
- 22. IP એડ્રેસ એફિનિટી ટેકનિક સાથે લોડ બેલેન્સિંગ શું છે?
- 23. કેશ રિપ્લેસમેન્ટ (અથવા ઇવિક્શન પોલિસી) એલ્ગોરિધમ્સ બરાબર શું છે?
- 24. ડિસ્ટ્રિબ્યુટેડ ટ્રાન્ઝેક્શનથી તમારો અર્થ શું છે?
- 25. ભૂખમરો બરાબર શું છે?
- ઉપસંહાર
તમે પ્રારંભ કરો તે પહેલાં, અમે અમારી વાંચવાની ભલામણ કરીએ છીએ સિસ્ટમ ડિઝાઇન પર પ્રારંભિક માર્ગદર્શિકા તમારા મૂળભૂત જ્ઞાનને તાજું કરવા માટે.
સિસ્ટમ ડિઝાઇન જ્ઞાનની જરૂર હોય તેવા પદ માટે ઇન્ટરવ્યુ કરતી વખતે, તમારી પાસે તમારી પૃષ્ઠભૂમિ વિશે વાત કરવાની અને જટિલ સિસ્ટમો વિકસાવવાની તમારી ક્ષમતા દર્શાવવાની તક હોય છે.
સંભવિત એમ્પ્લોયર સાથે વાત કરતી વખતે, તમે જે રીતે તમારી કુશળતા વ્યક્ત કરો છો તે તમને એ દર્શાવવામાં મદદ કરી શકે છે કે તમે પદ માટે સક્ષમ ઉમેદવાર છો.
તમે મૂળભૂત ડિઝાઇન ખ્યાલો શીખીને અને તેમના વિશેની પૂછપરછ માટે તમે કેવી રીતે પ્રતિસાદ આપશો તે વિશે વિચારીને તમે તમારા જોબ ઇન્ટરવ્યૂ માટે તૈયારી કરી શકો છો. અમે તમને તમારા આગામી ઇન્ટરવ્યુની તૈયારી કરવામાં મદદ કરવા માટે આ પોસ્ટમાં કેટલાક લાક્ષણિક સિસ્ટમ ડિઝાઇન ઇન્ટરવ્યુ પ્રશ્નો અને જવાબો પર જઈશું.
1. સિસ્ટમ ડિઝાઇન દ્વારા તમારો અર્થ શું છે?
મોડ્યુલ્સ, આર્કિટેક્ચર, ઘટકો અને તેમના ઇન્ટરફેસ અને પૂર્વનિર્ધારિત માપદંડો પર આધારિત ડેટા સહિત સિસ્ટમની લાક્ષણિકતાઓ સ્થાપિત કરવાની પ્રક્રિયાને સિસ્ટમ ડિઝાઇન તરીકે ઓળખવામાં આવે છે.
તે કંપની અથવા સંસ્થાના ચોક્કસ ધ્યેયો અને ઉદ્દેશ્યોને પૂર્ણ કરવા માટે સિસ્ટમોને વ્યાખ્યાયિત કરવાની, બનાવવાની અને ડિઝાઇન કરવાની પ્રક્રિયા છે. સિસ્ટમ ડિઝાઈન એ કોડિંગ કરતાં સિસ્ટમ વિશ્લેષણ, આર્કિટેક્ચરલ પેટર્ન, API, ડિઝાઇન પેટર્ન અને તે બધાને એકસાથે ગ્લુઇંગ કરવા વિશે વધુ છે.
2. સિસ્ટમ ડિઝાઇનરની સૌથી મહત્વપૂર્ણ લાક્ષણિકતાઓ શું છે?
- વપરાશકર્તા ક્રિયાપ્રતિક્રિયા
- બાહ્ય API કૉલ
- ઑફલાઇન પ્રક્રિયાઓ
3. CAP પ્રમેય બરાબર શું છે?
CAP (કન્સિસ્ટન્સી-એવેલેબિલિટી-પાર્ટીશન ટોલરન્સ) પ્રમેય મુજબ, વિતરિત સિસ્ટમ એક જ સમયે C, A અને P બધાને સુનિશ્ચિત કરી શકતી નથી. તે વધુમાં વધુ ત્રણમાંથી બે ખાતરીઓ જ આપી શકે છે. ચાલો આને સમજવામાં મદદ કરવા માટે વિતરિત ડેટાબેઝ સિસ્ટમનો ઉપયોગ કરીએ.
- સુસંગતતા: આ સ્પષ્ટ કરે છે કે ડેટાબેઝ ટ્રાન્ઝેક્શન પૂર્ણ થયા પછી ડેટા સુસંગત રહેવો જોઈએ. ઉદાહરણ તરીકે, ડેટાબેઝ અપડેટ પછી તમામ ક્વેરી સમાન પ્રતિસાદ આપશે.
- ઉપલબ્ધતા: ડેટાબેસેસ દરેક સમયે ઉપલબ્ધ અને પ્રતિભાવશીલ હોવા જોઈએ.
- પાર્ટીશન સહિષ્ણુતા: જો સંદેશાવ્યવહાર સમસ્યારૂપ બને તો પણ, ડેટાબેઝ સિસ્ટમે કામ કરવાનું ચાલુ રાખવું જોઈએ.
4. લોડ બેલેન્સિંગ દ્વારા તમે શું સમજો છો?
લોડ બેલેન્સિંગ બેકએન્ડ સર્વરોના સમૂહમાં આવનારા ટ્રાફિકને અસરકારક રીતે વિખેરવાની પ્રક્રિયા છે. આને સર્વર પૂલ તરીકે ઓળખવામાં આવે છે. આધુનિક વેબસાઇટ્સ ગ્રાહકોના લાખો પ્રશ્નોને હેન્ડલ કરવા અને તેમને ઝડપથી અને વિશ્વસનીય રીતે જવાબ આપવા માટે બનાવવામાં આવી છે. આ માંગણીઓને હેન્ડલ કરવા માટે વધુ સર્વરની જરૂર પડશે.
આ કિસ્સામાં, વિનંતી ટ્રાફિકને દરેક સર્વર વચ્ચે કાર્યક્ષમ રીતે વિભાજિત કરવા માટે તેમના પર વધુ પડતા બોજને ટાળવા માટે મહત્વપૂર્ણ છે. લોડ બેલેન્સર ટ્રાફિક કોપ તરીકે કાર્ય કરે છે, વિનંતીઓને અટકાવે છે અને તેમને ઉપલબ્ધ સર્વર્સ વચ્ચે રૂટ કરે છે જેથી કરીને કોઈ એક સર્વર પર વધુ બોજ ન આવે, સંભવિતપણે એપ્લીકેશનની કામગીરીમાં ઘટાડો થાય.
5. અસુમેળ પ્રોગ્રામિંગ અને સમાંતર પ્રોગ્રામિંગ વચ્ચે શું તફાવત છે?
જ્યારે તમે કોઈ પણ વસ્તુને અસુમેળ રીતે ચલાવો છો, ત્યારે તેનો અર્થ થાય છે કે તમે કોઈ અન્ય વસ્તુ પર જાઓ તે પહેલાં તમારે તેના સમાપ્ત થવાની રાહ જોવાની જરૂર નથી. સમાનતા એ ઘણા કાર્યોના એકસાથે અમલીકરણનો ઉલ્લેખ કરે છે.
જ્યારે તમે નોકરીઓને શ્રમના વિવિધ ભાગોમાં તોડી શકો છો, ત્યારે સમાનતા અસરકારક રીતે કાર્ય કરે છે. Async અને Callbacks એ એકરૂપતાનું પ્રતિનિધિત્વ કરવા માટેનું એક માધ્યમ (ટૂલ અથવા મિકેનિઝમ) છે, એટલે કે સંસ્થાઓનું એક જૂથ જે સંસાધનોને સંચાર અને શેર કરી શકે છે.
6. હોરીઝોન્ટલ અને વર્ટીકલ સ્કેલિંગ વચ્ચે શું તફાવત છે?
ઉપકરણોના વિખરાયેલા નેટવર્કમાં પ્રોસેસિંગ અને મેમરીની માંગને ફેલાવતા નેટવર્કમાં નવા કમ્પ્યુટિંગ સાધનોના ઉમેરાને હોરિઝોન્ટલ સ્કેલિંગ તરીકે ઓળખવામાં આવે છે. સરળ રીતે કહીએ તો, વર્તમાન પૂલમાં નવા સર્વર દાખલાઓ ઉમેરવામાં આવે છે, અને ટ્રાફિક લોડ આ ઉપકરણો વચ્ચે અસરકારક રીતે ફેલાય છે.
વર્ટિકલ સ્કેલિંગ એ RAM, કાર્યક્ષમ CPUs ઉમેરીને અથવા ઉચ્ચ ક્ષમતાવાળા નવા મશીનમાં સ્થાનાંતરિત કરીને એક કમ્પ્યુટરની સંસાધન ક્ષમતાને વિસ્તૃત કરવાની કલ્પનાનો સંદર્ભ આપે છે. સર્વરની કાર્યક્ષમતા કોઈપણ પ્રોગ્રામિંગ ફેરફારોની જરૂર વગર વધારી શકાય છે.
7. લેટન્સી, થ્રુપુટ અને સિસ્ટમની ઉપલબ્ધતા દ્વારા તમારો અર્થ શું છે?
પ્રદર્શન એ સિસ્ટમ ડિઝાઇનનું આવશ્યક પાસું છે કારણ કે તે અમારી સેવાઓની ઝડપ અને વિશ્વસનીયતામાં ફાળો આપે છે. ત્રણ સૌથી મહત્વપૂર્ણ પ્રદર્શન પગલાં નીચે મુજબ છે:
- મિલિસેકન્ડમાં એક સંદેશ પહોંચાડવામાં જે સમય લાગે છે તેને લેટન્સી કહેવામાં આવે છે.
- ચોક્કસ સમયગાળામાં સિસ્ટમ દ્વારા સફળતાપૂર્વક ટ્રાન્સફર કરાયેલ ડેટાની માત્રાને થ્રુપુટ તરીકે ઓળખવામાં આવે છે. તેને માપવા માટે બિટ્સ પ્રતિ સેકન્ડનો ઉપયોગ કરવામાં આવે છે.
- પ્રશ્નો પર પ્રતિક્રિયા આપવા માટે સિસ્ટમ કેટલો સમય ઉપલબ્ધ છે તે તેની ઉપલબ્ધતા દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે. સિસ્ટમ અપટાઇમ / (સિસ્ટમ અપટાઇમ+ડાઉનટાઇમ) તેની ગણતરી માટેનું સૂત્ર છે.
8. ACID ગુણધર્મો શું છે?
- એટોમિસિટી: તે ખાતરી આપે છે કે ડેટાબેઝમાં ફેરફાર કાં તો બધા અથવા કોઈ નથી.
- સુસંગતતા: ડેટાબેઝમાં ડેટા મૂલ્યો સુસંગત છે.
- અલગતા: તે બે વ્યવહારોના વિભાજનનો ઉલ્લેખ કરે છે.
- ટકાઉપણું: સર્વર નિષ્ફળ જાય તો પણ ડેટા સાચવવામાં આવે છે.
9. શાર્ડિંગ બરાબર શું છે?
શેરિંગ એ વિશાળ લોજિકલ ડેટાસેટને ઘણા ડેટાબેઝમાં વિભાજીત કરવાની તકનીક છે. તે આડા ડેટા વિભાજનનો પણ ઉલ્લેખ કરે છે કારણ કે ડેટા ઘણા કમ્પ્યુટર્સ પર સંગ્રહિત થશે. પરિણામે, વહેંચાયેલ ડેટાબેઝ એક વિશાળ કમ્પ્યુટર કરતાં વધુ પ્રશ્નોને હેન્ડલ કરી શકે છે.
10. CDN શું છે?
કન્ટેન્ટ ડિલિવરી નેટવર્ક એ કમ્પ્યુટર્સનું વિશ્વવ્યાપી નેટવર્ક છે જે ઝડપથી ઇન્ટરનેટ માહિતી પ્રદાન કરવા માટે સહયોગ કરે છે. તે HTML પૃષ્ઠો, JavaScript ફાઇલો, સ્ટાઈલશીટ્સ, ચિત્રો અને વિડિયો જેવા ઘટકોની ઝડપી ડિલિવરી સક્ષમ કરે છે જે ઇન્ટરનેટ સામગ્રી લોડ કરવા માટે જરૂરી છે.
11. શા માટે CDN નો ઉપયોગ કરવો?
- વેબસાઇટના લગભગ 80% જેટલા સ્થિર સંસાધનોને ધ્યાનમાં લેતા, CDN અપનાવવાથી મૂળ સર્વર પરનો તાણ નોંધપાત્ર રીતે ઓછો થાય છે.
- મુસાફરી માટે ઓછું અંતર હોવાથી, ઘણા ભૌગોલિક વિસ્તારોમાંથી મુલાકાતીઓ હોય તેવા વેબસાઇટ માલિકોને માહિતી ઝડપથી પૂરી પાડવામાં આવશે.
- CDN ના વપરાશકર્તાઓ ટ્રાફિક વધારાના પ્રતિભાવમાં ઝડપથી ઉપર અને નીચે સ્કેલ કરવાની ક્ષમતાથી પણ લાભ મેળવે છે.
12. શાર્ડિંગ અને પાર્ટીશન વચ્ચે શું તફાવત છે?
ડેટાબેઝ શેરિંગ - ડેટાબેઝ શેરિંગ એ એક ડેટાસેટને અસંખ્ય ડેટાબેઝમાં પાર્ટીશન કરવાની પદ્ધતિ છે જેથી કરીને તેને વિવિધ વર્કસ્ટેશનો પર સંગ્રહિત કરી શકાય. મોટા ડેટાસેટ્સને નાના ભાગોમાં તોડી શકાય છે અને ઘણા ડેટા નોડ્સમાં સંગ્રહિત કરી શકાય છે, જે સિસ્ટમની કુલ સંગ્રહ ક્ષમતામાં વધારો કરે છે.
ઘણી બધી મશીનોમાં ડેટા ફેલાવીને, એક વહેંચાયેલ ડેટાબેઝ એક સિસ્ટમ કરતાં વધુ પ્રશ્નોને હેન્ડલ કરી શકે છે.
ડેટાબેઝ પાર્ટીશનીંગ એ સંગ્રહિત ડેટાબેઝ ઑબ્જેક્ટ્સ (કોષ્ટકો, અનુક્રમણિકાઓ અને દૃશ્યો) ને અલગ ટુકડાઓમાં વિભાજીત કરવાની પ્રક્રિયા છે. નિયંત્રણક્ષમતા, પ્રદર્શન અને પ્રાપ્યતા વધારવા માટે, મોટા ડેટાબેઝ ઓબ્જેક્ટોને પાર્ટીશન કરવામાં આવે છે.
કેટલાક કિસ્સાઓમાં, જ્યારે પાર્ટીશન કરેલ માહિતીનો ઉપયોગ કરી રહ્યા હોય ત્યારે પાર્ટીશનીંગ ઝડપ સુધારી શકે છે. પાર્ટીશન ઇન્ડેક્સનું કદ ઘટાડી શકે છે અને ઇન્ડેક્સમાં અગ્રણી સ્તંભ તરીકે કામ કરીને મેમરીમાં સૌથી વધુ જરૂરી સૂચકાંકો શોધવાની તક વધારી શકે છે.
13. કેશીંગ બરાબર શું છે?
કેશીંગ એ કેશ તરીકે ઓળખાતા અસ્થાયી સ્ટોરેજ એરિયામાં ફાઇલની નકલો રાખવાની તકનીક છે, જે ડેટા એક્સેસને ઝડપી બનાવે છે અને સાઇટ લેટન્સી ઘટાડે છે. કેશમાં માત્ર ચોક્કસ માત્રામાં જ ડેટા સ્ટોર કરી શકાય છે.
પરિણામે, વ્યવસાયના ઉદ્દેશ્યો માટે સૌથી વધુ અનુકૂળ હોય તેવી કેશ અપડેટ તકનીકો નક્કી કરવી મહત્વપૂર્ણ છે.
14. CDN એજ સર્વર્સ શું છે?
CDN સર્વર્સ કે જે તમારા મૂળ સર્વર અથવા સ્ટોરેજ ક્લસ્ટરમાંથી મેળવેલી સામગ્રીને કેશ કરે છે તે એજ સર્વર્સ તરીકે ઓળખાય છે. પોઈન્ટ ઓફ પ્રેઝન્સ એ એક એવો શબ્દ છે જેનો ઉપયોગ એજ સર્વર્સ (POP) ને વર્ણવવા માટે વારંવાર થાય છે.
એજ સર્વર્સ ભૌતિક રીતે POP પર સ્થિત છે. તે POP પર, માહિતી ઘણા એજ સર્વર્સ દ્વારા કેશ કરવામાં આવી શકે છે.
ઘણી જગ્યાએથી વેબસાઈટના વિભાગો પ્રદાન કરવાની ક્ષમતા મુલાકાતી અને વેબ સર્વર વચ્ચેનું અંતર ઘટાડે છે, પરિણામે લેટન્સી ઓછી થાય છે. CDN એજ સર્વર્સ આ ચોક્કસ ધ્યેયને પરિપૂર્ણ કરે છે.
15. સિસ્ટમ ડિઝાઇન માટે વિવિધ સુસંગતતા પેટર્ન શું છે?
CAP પ્રમેય મુજબ, દરેક વાંચવાની વિનંતીએ સૌથી તાજેતરમાં લખાયેલ ડેટા પુનઃપ્રાપ્ત કરવો જોઈએ. જ્યારે ઘણી બધી ડેટા નકલો સુલભ હોય છે, ત્યારે તેમને સમન્વયિત કરવા જેથી ગ્રાહકોને સતત ધોરણે નવો ડેટા પ્રાપ્ત થાય તે એક મુશ્કેલી બની જાય છે. નીચેના સંભવિત સુસંગતતા દાખલાઓ છે:
- નબળી સુસંગતતા: ડેટા લખ્યા પછી, વાંચવાની વિનંતી અપડેટ કરેલ ડેટા મેળવવા માટે સક્ષમ હોઈ શકે છે અથવા નહીં પણ. સ્થિરતાનું આ સ્તર રીઅલ-ટાઇમ એપ્લિકેશન્સ જેમ કે VoIP, વિડિઓ ચેટ અને મલ્ટિપ્લેયર ગેમિંગ માટે આદર્શ છે.
- આખરી સુસંગતતા: ડેટા લખાયા પછી રીડ્સ આખરે મિલિસેકંડમાં સૌથી તાજેતરનો ડેટા જોશે. આ કિસ્સામાં ડેટા અસુમેળ રીતે ડુપ્લિકેટ કરવામાં આવે છે. DNS અને ઇમેઇલ સિસ્ટમ્સ આના ઉદાહરણો છે. આ ઉચ્ચ ઉપલબ્ધતા ધરાવતી સિસ્ટમમાં અસરકારક રીતે કાર્ય કરે છે.
- મજબૂત સુસંગતતા: ડેટા લખ્યા પછી, ભાવિ વાચકો સૌથી તાજેતરનો ડેટા જોશે. આ કિસ્સામાં ડેટા સિંક્રનસ રીતે કૉપિ કરવામાં આવે છે. આ RDBMS અને ફાઇલ સિસ્ટમ્સમાં જોઇ શકાય છે, જે ડેટા ટ્રાન્સફર માટે યોગ્ય છે.
16. તમે આશાવાદી લોકીંગનો અર્થ શું કરો છો?
આશાવાદી લોકીંગ એ એક પદ્ધતિ છે જેમાં તમે રેકોર્ડ વાંચો છો, સંસ્કરણ નંબર નોંધો છો (વૈકલ્પિક રીતોમાં તારીખો, ટાઇમસ્ટેમ્પ અથવા ચેકસમ/હેશનો સમાવેશ થાય છે), અને પછી બે વાર તપાસો કે સંસ્કરણ પાછું લખતા પહેલા બદલાયું નથી.
જ્યારે તમે રેકોર્ડ પાછું લખો છો, ત્યારે તમે અપડેટને ફિલ્ટર કરવા માટે સંસ્કરણનો ઉપયોગ કરો છો તેની ખાતરી કરવા માટે કે તે પરમાણુ છે. (એટલે કે, જ્યારે તમે સંસ્કરણ તપાસો છો અને જ્યારે તમે ડિસ્ક પર રેકોર્ડ લખો છો ત્યારે વચ્ચે બદલાયેલ નથી) અને તે બધું એક જ સમયે અપડેટ કરો.
17. "નેતાની ચૂંટણી" દ્વારા તમારો અર્થ શું છે?
એપ્લિકેશનની ઉપલબ્ધતામાં યોગદાન આપતા અસંખ્ય સર્વર્સ સાથેની વિતરિત સિસ્ટમમાં, એવા સમયે હોઈ શકે છે જ્યારે માત્ર એક સર્વર તૃતીય-પક્ષ API ને અપડેટ કરવા માટે જવાબદાર હોય છે, કારણ કે API નો ઉપયોગ કરતી વખતે બહુવિધ સર્વર્સ સમસ્યાઓનું કારણ બની શકે છે.
આ સર્વરને પ્રાથમિક સર્વર તરીકે ઓળખવામાં આવે છે, અને તેને પસંદ કરવાની પ્રક્રિયાને લીડર ઇલેક્શન તરીકે ઓળખવામાં આવે છે. જ્યારે લીડર સર્વર વિતરિત સિસ્ટમમાં નિષ્ફળ જાય છે, ત્યારે સર્વરોએ નિષ્ફળતાની નોંધ લેવી જોઈએ અને નવો લીડર પસંદ કરવો જોઈએ. સર્વસંમતિ તકનીકનો ઉપયોગ કરીને, આ અભિગમ ઉચ્ચ ઉપલબ્ધતા અને મજબૂત સુસંગતતા એપ્લિકેશન માટે શ્રેષ્ઠ અનુરૂપ છે.
18. TinyURL જેવી URL શોર્ટનિંગ સેવા ડિઝાઇન કરવા માટે તમારો અભિગમ શું છે?
TinyURL લાંબા URL ને એક અનન્ય ટૂંકા URL માં પરિવર્તિત કરે છે. આ તકનીકો ટૂંકા URL ને પણ સ્વીકારી શકે છે અને સંપૂર્ણ URL પરત કરી શકે છે.
કેટલાક નિર્ણાયક ગુણો શું છે?
- મૂળ કરતાં નાનું URL બનાવો.
- લાંબુ URL રાખો અને તેને ટૂંકા URL સાથે બદલો.
- ટૂંકા URL માં રીડાયરેક્શન માટે મંજૂરી આપો.
- કસ્ટમ નામો સાથેના ટૂંકા URL ને સપોર્ટ કરવામાં આવે છે.
- એકસાથે અનેક પૂછપરછો સંભાળો.
સૌથી પ્રચલિત સમસ્યાઓ શું છે?
- તમે ડેટાબેઝ સ્ટોરેજનો ટ્રૅક કેવી રીતે રાખશો?
- જો વપરાશકર્તા લોડ અપેક્ષાઓ કરતાં વધી જાય તો શું થાય?
- જો બે વ્યક્તિઓ સમાન કસ્ટમ URL નો ઉપયોગ કરે તો શું?
નીચેના સૂચનો ધ્યાનમાં લો:
- હેશિંગ એ એક ખ્યાલ છે જેનો ઉપયોગ જૂના અને નવા URL ને કનેક્ટ કરવા માટે થઈ શકે છે.
- REST API ફ્રન્ટ-એન્ડ કોમ્યુનિકેશનને હેન્ડલ કરવા અને ભારે ભારને સંતુલિત કરવા માટે વાપરી શકાય છે.
- મલ્ટિથ્રેડીંગ એ એક ધારણા છે જે તમને એક સાથે અનેક વિનંતીઓને હેન્ડલ કરવાની મંજૂરી આપે છે.
- મૂળ URL નો એસક્યુએલ ડેટાબેઝમાં સંગ્રહિત થાય છે.
19. ટ્વિટર ડિઝાઇન કરવા માટે તમારો અભિગમ શું છે?
આપેલ આવશ્યકતાઓ:
- ટ્વિટ્સ મોકલી રહ્યાં છીએ
- અન્ય વપરાશકર્તાઓને અનુસરી રહ્યાં છે
- ટ્વીટ ફીડ/ન્યૂઝફીડ
- સિસ્ટમ સ્કેલેબલ છે
- ઝડપથી લોડ થાય છે
- સિસ્ટમ વિશ્વસનીય છે
જ્યારે તમે માપદંડ સ્થાપિત કરી લો ત્યારે તમે તમારી Twitter API ડિઝાઇન વિશે વિચારવાનું શરૂ કરી શકો છો. તે આ રીતે દેખાશે:
શરૂ કરવા માટે, અમે API ના મુખ્ય અંતિમ બિંદુઓને સ્કેચ કરીશું. અહીં કેટલાક ઉદાહરણો છે:
- ટ્વીટ (સંદેશ) મોકલો
- followUser(userID)
- અનફોલો યુઝર(યુઝરઆઈડી)
- getFeed(પાનું)
આર્કિટેક્ચર કે જે આ લાક્ષણિકતાઓને સક્ષમ કરશે તે પછી સ્કેચ આઉટ કરી શકાય છે. અમે સર્વર વિનંતી સબમિટ કરનાર વપરાશકર્તા સાથે પ્રારંભ કરી શકીએ છીએ. સ્કેલેબિલિટીની જરૂરિયાતને પરિપૂર્ણ કરવા માટે મોટા ટ્રાફિક સ્તરોને રૂટમાં સહાય કરવા માટે અમે લોડ બેલેન્સરની પાછળ વધારાના API સર્વર્સ ઇન્સ્ટોલ કરી શકીએ છીએ. અમારી ટ્વીટ્સ સ્ટોર કરવા માટે હવે અમને ડેટાબેઝ ઉમેરવાની જરૂર પડશે.
એ યાદ રાખવું અગત્યનું છે કે અમે જે API પ્રદાન કરીએ છીએ તે સ્કેલેબલ હોવું જોઈએ. આ સેવાને સ્કેલેબલ બનાવવા માટે, અમે અમારા ન્યૂઝફીડ માટે એક અલગ કેશમાંથી અમારા API સર્વરને વાંચી શકીએ છીએ. આમ કરતી વખતે, અમે અમારી ફીડ કેશને અદ્યતન રાખવા માટે ફીડ પ્રદાતાનો પણ ઉપયોગ કરવો જોઈએ.
20. ફેસબુક માટે ન્યૂઝફીડ સિસ્ટમ બનાવો
ફેસબુક પર ન્યૂઝફીડ વપરાશકર્તાઓને તેમના મિત્રોના વર્તુળો, મનપસંદ પૃષ્ઠો અને તેઓએ અનુસરેલા સંગઠનોમાં શું ચાલી રહ્યું છે તે જોવાની મંજૂરી આપે છે.
કેટલીક આવશ્યક લાક્ષણિકતાઓ શું છે?
- વપરાશકર્તા અનુસરે છે તે અન્ય સિસ્ટમ એન્ટિટીની પોસ્ટના આધારે ન્યૂઝફીડ બનાવો.
- ન્યૂઝફીડ પોસ્ટિંગમાં ટેક્સ્ટ, ચિત્રો, ઑડિઓ અને વિડિયોનો ઉપયોગ કરી શકાય છે.
- રીઅલ-ટાઇમમાં, વપરાશકર્તાની ન્યૂઝફીડમાં નવી સામગ્રી ઉમેરો.
કેટલીક સૌથી સામાન્ય સમસ્યાઓ શું છે?
- જો નવી પોસ્ટ ન્યૂઝ ફીડમાં દેખાવામાં લાંબો સમય લે તો?
- શું અલ્ગોરિધમ વપરાશકર્તાની પ્રવૃત્તિમાં વધારો મેનેજ કરી શકે છે?
- ન્યૂઝ ફીડમાં કઈ પોસ્ટ્સ પ્રથમ દર્શાવવી જોઈએ?
નીચેના સૂચનો ધ્યાનમાં લો:
- અનુયાયીઓને પોસ્ટ્સ વિતરિત કરવા માટે ફેનઆઉટ મિકેનિઝમની તપાસ કરો.
- ઉચ્ચ વપરાશકર્તા લોડને અસરકારક રીતે હેન્ડલ કરવા માટે શાર્ડિંગનો ઉપયોગ કેવી રીતે થઈ શકે તે તપાસો.
- વપરાશકર્તાનો ફીડ ડેટા અસંખ્ય સર્વર પર ડુપ્લિકેટ ન હોવો જોઈએ. તેના બદલે યુઝર આઈડીના આધારે શેરિંગ કરી શકાય છે.
21. સિસ્ટમની BASE મિલકત શું છે?
BASE લક્ષણો NoSQL ડેટાબેસેસમાં સર્વવ્યાપક છે જે તાજેતરમાં બહાર આવ્યા છે. CAP પ્રમેય મુજબ, BASE સિસ્ટમ સુસંગતતા પ્રદાન કરતી નથી. આ એક બનાવેલ ટૂંકું નામ છે જે CAP પ્રમેયની સિસ્ટમની નીચેની મિલકતને અનુરૂપ છે:
- "મૂળભૂત રીતે ઉપલબ્ધ" શબ્દનો અર્થ એ છે કે સિસ્ટમ દરેક સમયે ઉપલબ્ધ રહેશે.
- નરમ સ્થિતિનો અર્થ છે કે સિસ્ટમની સ્થિતિ સમય સાથે બદલાઈ શકે છે, પછી ભલેને કોઈ ઇનપુટ આપવામાં ન આવે. આ મોટે ભાગે મોડેલની અંતિમ સુસંગતતાને કારણે છે.
- આપેલ છે કે તે સમયગાળા દરમિયાન સિસ્ટમ ઇનપુટ પ્રાપ્ત કરતી નથી, અંતિમ સુસંગતતાનો અર્થ એ છે કે સિસ્ટમ સમય જતાં સુસંગત બનશે.
22. IP એડ્રેસ એફિનિટી ટેકનિક સાથે લોડ બેલેન્સિંગ શું છે?
લોડ બેલેન્સિંગની અન્ય અગ્રણી પદ્ધતિ IP એડ્રેસ એફિનિટી છે. ક્લાયંટ IP સરનામું આ પદ્ધતિમાં સર્વર નોડ સાથે જોડાયેલ છે. એક સર્વર નોડ ક્લાયંટ IP સરનામાંની બધી વિનંતીઓનું સંચાલન કરે છે.
આ પદ્ધતિ અમલમાં મૂકવા માટે સરળ છે કારણ કે IP સરનામું હંમેશા HTTP વિનંતી હેડરમાં ઍક્સેસિબલ હોય છે અને વધુ સેટિંગ્સની જરૂર નથી. જો તમારા ક્લાયંટની કૂકીઝ નિષ્ક્રિય થવાની સંભાવના છે, તો લોડ બેલેન્સિંગનું આ સ્વરૂપ ફાયદાકારક બની શકે છે.
23. કેશ રિપ્લેસમેન્ટ (અથવા ઇવિક્શન પોલિસી) એલ્ગોરિધમ્સ બરાબર શું છે?
કેશ અલ્ગોરિધમ્સ (કેશ રિપ્લેસમેન્ટ એલ્ગોરિધમ્સ, કેશ રિપ્લેસમેન્ટ પોલિસી અથવા કેશ ઇવિક્શન પોલિસી તરીકે પણ ઓળખાય છે) એ ઓપ્ટિમાઇઝેશન સૂચનાઓ અથવા અલ્ગોરિધમ્સ છે, જેનો ઉપયોગ કમ્પ્યુટર પ્રોગ્રામ અથવા હાર્ડવેર-જાળવેલું માળખું કમ્પ્યુટર પર સંગ્રહિત ડેટાના કેશને સંચાલિત કરવા માટે કરી શકે છે.
પરંપરાગત મેમરી સ્ટોરેજ કરતાં ઝડપી અથવા ઓછા ખર્ચાળ હોય તેવા મેમરી પ્રદેશોમાં તાજેતરમાં વપરાયેલ અથવા વારંવાર એક્સેસ કરેલ ડેટા સ્ટોર કરીને કેશીંગ ઝડપને વધારે છે. જ્યારે કેશ ભરાઈ જાય, ત્યારે એલ્ગોરિધમે નક્કી કરવું જોઈએ કે નવી વસ્તુઓ માટે સ્થાન બનાવવા માટે કઈ વસ્તુઓને દૂર કરવી.
24. ડિસ્ટ્રિબ્યુટેડ ટ્રાન્ઝેક્શનથી તમારો અર્થ શું છે?
ડિસ્ટ્રિબ્યુટેડ ટ્રાન્ઝેક્શન એ કોઈપણ સંજોગો છે જેમાં એક જ ઘટના ડેટાના બે અથવા વધુ વિશિષ્ટ સ્ત્રોતોમાં ફેરફારનું કારણ બને છે જે પરમાણુ રીતે પ્રતિબદ્ધ થઈ શકતું નથી.
માઇક્રોસર્વિસિસની દુનિયામાં તે વધુ જટિલ બની જાય છે કારણ કે દરેક સેવા કાર્યનું એક એકમ છે, અને મોટાભાગે વ્યવસાયને સફળ બનાવવા માટે અસંખ્ય સેવાઓએ સહયોગ કરવો જ જોઇએ.
25. ભૂખમરો બરાબર શું છે?
જ્યારે થ્રેડ વહેંચાયેલ સંસાધનોની નિયમિત ઍક્સેસ મેળવવામાં અસમર્થ હોય, ત્યારે તેને ભૂખે મરવાનું કહેવાય છે. આ ત્યારે થાય છે જ્યારે "લોભી" થ્રેડો અથવા ઉચ્ચ "પ્રાયોરિટી" ધરાવતા થ્રેડો લાંબા સમય સુધી વહેંચાયેલ સંસાધનોને અગમ્ય બનાવે છે.
એવા ઑબ્જેક્ટને ધ્યાનમાં લો જે સિંક્રનાઇઝ્ડ પદ્ધતિ પ્રદાન કરે છે જે વારંવાર મોડું પરત કરે છે. જો એક થ્રેડ વારંવાર આ પદ્ધતિને કૉલ કરે છે, તો અન્ય થ્રેડો કે જેને સમાન ઑબ્જેક્ટની વારંવાર સિંક્રનાઇઝ ઍક્સેસની જરૂર હોય છે તે વારંવાર અવરોધિત કરવામાં આવશે.
ઉપસંહાર
એક વિચાર-મંથન સત્ર છે જે સિસ્ટમ ડિઝાઇન ઇન્ટરવ્યુમાં આવશ્યક છે. અમે આ પોસ્ટમાં સૌથી સામાન્ય સિસ્ટમ ડિઝાઇન ઇન્ટરવ્યુ પ્રશ્નોને સંબોધિત કર્યા છે.
ચોક્કસ સિસ્ટમ બનાવતી વખતે તમે જે પદ્ધતિ અપનાવો છો તેની વ્યાપક સમજ એ સિસ્ટમ ડિઝાઇન ઇન્ટરવ્યુ પાસ કરવા માટે મહત્વપૂર્ણ છે.
એક જવાબ છોડો