मेरे पास एक डेटा ट्रांसफॉर्मेशन उत्पाद है, जो डेटाबेस में एक टेबल का चयन करता है और स्रोत डेटाबेस में पंक्ति डेटाबेस को गंतव्य डेटाबेस में बदल देता है।किसी भी डेटाबेस पर भारी लेनदेन को संभालने के तरीके?
यह एक समय में 1000 पंक्तियों को संसाधित करके और इसे 10 धागे समानांतर करके वर्तमान उत्पाद (जावा आधारित वर्कबेंच और इंजन) में संभाला जाता है। यह दृष्टिकोण छोटे डेटा सेट पर ठीक काम करता है। इस दृष्टिकोण अभी भी काम करता है, लेकिन
- होस्ट मशीन के सीपीयू अपने उत्पाद चलाता है जिस पर, भारी बोझ किया जा रहा है - लेकिन, जब मैं बड़ा डेटा सेट को बदलने के लिए है एक समय में (एक्स के बारे में मिलियन रिकॉर्ड कहते हैं)।
- स्रोत डेटाबेस और लक्ष्य डेटाबेस को बहुत अधिक लेनदेन के साथ पेंच किया जाता है जो वे धीमा करना शुरू करते हैं। (अब, यह इस तथ्य के लिए जिम्मेदार ठहराया जा सकता है कि डेटाबेस सर्वर शायद हार्डवेयर के धीमे टुकड़े पर चल रहा है।)
मैंने समाधान की तलाश शुरू कर दी और मैं हार्डवेयर को "गोमांस" "स्रोत/गंतव्य डेटाबेस सर्वर मशीनों पर। इसमें शामिल है, एक नया मल्टी-कोर सीपीयू और कुछ अतिरिक्त रैम खरीदना। बाहर निकलता है, हार्डवेयर को अपग्रेड करना केवल एकमात्र चिंता नहीं थी: डेटाबेस के लिए कई सॉफ़्टवेयर लाइसेंस प्राप्त करने की आवश्यकता थी - बहु-कोर प्रोसेसर (प्रति कोर लाइसेंस) के लिए धन्यवाद।
तो, गेंद अब मेरी अदालत में है, मुझे अपने उत्पाद में बदलाव करके इस मुद्दे को हल करने के तरीकों के साथ आना होगा। और, यहां वह जगह है जहां मुझे आपकी मदद चाहिए। स्रोत डेटाबेस से
- पढ़ना डेटा
Approach1, एक अस्थायी मध्यम (फाइल) के लिए यह बने: इस समय, मैं बहुत बड़ा भार से निपटने के लिए एक संभावित दृष्टिकोण के बारे में सोच सकता है।
- फ़ाइल वितरित करने के लिए स्विच करने के "व्यापार-बंद चाल" को संभालने के द्वारा, एक वितरित वातावरण (सस्ता सिंगल कोर मशीन) में इसे चलाकर, लगातार फ़ाइल में डेटा को ट्रांसफॉर्म करें। (वितरित कंप्यूटिंग भाग को संभालने के लिए अपाचे हैडोप जैसे कुछ का उपयोग करना)
- किसी गंतव्य डेटाबेस में डेटा लिखना।
यह सब कुछ मैं वास्तुशिल्प परिप्रेक्ष्य से अब के लिए आ सकता हूं। क्या आपने पहले इस स्थिति को संभाला है? यदि हां, तो आपने इसे कैसे संभाला? अपने सुझावों और सहायता की सराहना करते हैं।
प्रदर्शन बाधा क्या है? आपने दो उम्मीदवारों का उल्लेख किया है: एप्लिकेशन सीपीयू लोड और डेटाबेस लोड। क्या आप इसे आगे संकीर्ण कर सकते हैं? – oksayt
@oksayt अभी, मेरी प्रमुख चिंता डेटाबेस लोड है। मेरे पास इस पर कोई बेंचमार्क नहीं है, लेकिन विचार संभव बाधाओं में फैक्टरिंग करके बेहतर उत्पाद बनाना है। – Jay