Packets, Transactions and Queues: Design Principles for HFT Systems from a Measurement Study of CME Market Data
एक वर्ष से अधिक के CME मार्केट डेटा का विश्लेषण करते हुए, यह शोध पत्र पारंपरिक सिंगल-थ्रेडेड HFT डिज़ाइन को चुनौती देता है, यह प्रदर्शित करते हुए कि जबकि एक थ्रेड सब-पीरियड पैकेट प्रोसेसिंग के लिए पर्याप्त है, एक टू-स्टेज थ्रेडेड आर्किटेक्चर ट्रांजेक्शन बर्स्ट के कारण होने वाली क्यूइंग टेल्स (queuing tails) को महत्वपूर्ण रूप से कम कर सकता है, बशर्ते कि यह विभाजन सिस्टम के सबसे धीमे चरण को छोटा कर दे।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने नहीं लिखा है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
हाई-फ्रीक्वेंसी ट्रेडिंग की दुनिया में, जहाँ कंप्यूटर सेकंड के एक अंश में शेयर खरीदते और बेचते हैं, गति केवल एक लाभ नहीं है; यह पूरा खेल है। ये प्रणालियाँ एक सरल सिद्धांत पर काम करती हैं: यदि आप किसी भी अन्य व्यक्ति की तुलना में बाजार की जानकारी को तेज़ी से प्रोसेस कर सकते हैं, तो आप कीमतों के सूक्ष्म अंतर का लाभ इससे पहले उठा सकते हैं जब वे समाप्त हो जाएं। ऐसा करने के लिए, इंजीनियर विशेष सॉफ़्टवेयर बनाते हैं जो स्टॉक एक्सचजों से डेटा की एक निरंतर धारा को सुनता है, उसे डिकोड करता है, और माइक्रोसेकंड में निर्णय लेता है। वर्षों से, उद्योग एक सख्त नियम के तहत संचालित हो रहा है: इस सॉफ़्टवेयर के सबसे महत्वपूर्ण हिस्से को एक ही प्रोसेसर कोर पर रखें। तर्क यह था कि अलग-अलग कोर या "थ्रेड्स" के बीच डेटा स्थानांतरित करना बहुत धीमा और जोखिम भरा था, जिससे ऐसी देरी होती जो सिस्टम की गति को बर्बाद कर देती। यह दृष्टिकोण सॉफ़्टवेयर को एक एकल, केंद्रित कार्यकर्ता की तरह मानता था जो कभी भी कार्य को दूसरे को नहीं सौंपता, यह मानते हुए कि कोई भी व्यवधान स्वयं कार्य की तुलना में अधिक लागत वाला होगा।
हालाँकि, यह लंबे समय से चली आ रही धारणा इस धारणा पर आधारित थी कि बाजार का डेटा कैसे आता है: कि यह एक स्थिर, यादृच्छिक (रैंडम) प्रवाह के रूप में आता है, जैसे अप्रत्याशित अंतराल पर गिरने वाली वर्षा की बूंदें। यदि ऐसा होता, तो एकल-कार्यकर्ता दृष्टिकोण वास्तव में सबसे तेज़ होता। लेकिन क्या होगा यदि डेटा यादृच्छिक रूप से नहीं आता है? क्या होगा यदि डेटा अचानक, तीव्र उछाल (बर्स्ट) में आता है, जहाँ एक पल में हजारों अपडेट सिस्टम पर हमला करते हैं? शिकागो मर्केंटाइल एक्सचेंज के वास्तविक बाजार डेटा के एक नए माप अध्ययन से पता चलता है कि व्यस्त क्षणों के लिए पुराना नियम गलत हो सकता है। एक वर्ष से अधिक समय तक अरबों डेटा पैकेटों को ट्रैक करके, शोधकर्ताओं ने पाया कि बाजार का डेटा यादृच्छिक रूप से नहीं आता है। इसके बजाय, यह सघन क्लस्टर (समूहों) में आता है, जहाँ एक घटना तेजी से अन्य घटनाओं की श्रृंखला को जन्म देती है, जिससे एक "स्व-उत्तेजित" (self-exciting) पैटर्न बनता है। यह खोज गति के गणित को बदल देती है। यह पता चलता है कि जब डेटा इन विशिष्ट, क्लस्टर्ड उछालों में आता है, तो काम को कई प्रोसेसरों के बीच विभाजित करना वास्तव में सिस्टम को तेज़ और अधिक विश्वसनीय बना सकता है, बशर्ते कि सिस्टम को उछालों की लय को संभालने के लिए सही ढंग से डिज़ाइन किया गया हो।
शोधकर्ताओं ने कच्चे डेटा स्ट्रीम को देखना शुरू किया जैसा कि वह एक्सचेंज के मैचिंग इंजन (जहाँ ऑर्डर प्रोसेस किए जाते हैं) से ट्रेडर के कंप्यूटरों तक यात्रा करता है। उन्होंने प्रत्येक सिंगल डेटा पैकेट का पीछा किया, और ठीक नोट किया कि वह एक्सचेंज से कब निकला और कब पहुँचा। उन्होंने पाया कि एक्सचेंज का सिस्टम एक गेटकीपर की तरह काम करता है जिसकी एक निश्चित गति सीमा होती है। भले ही मैचिंग इंजन ऑर्डरों को अविश्वसनीय रूप से तेज़ी से प्रोसेस करता है—कभी-कभी एक माइक्रोसेकंड के एक अंश के भीतर एक-दूसरे के बाद—एक्सचेंज का डेटा पब्लिशर उन सभी को एक साथ नहीं भेज सकता है। यह उन्हें एक-एक करके भेजता है, जिसमें प्रत्येक पैकेट के बीच लगभग 7.5 माइक्रोसेकंड का न्यूनतम अंतराल होता है। यह डेटा पैकेटों की एक ट्रेन बनाता है जो ट्रेडर के कंप्यूटर पर एक स्थिर, लयबद्ध अंतराल के साथ पहुँचती है, चाहे स्रोत पर कितनी भी उथल-पुथल क्यों न रही हो।
यह लयबद्ध आगमन ही नए निष्कर्षों की कुंजी है। शोधकर्ताओं ने यह परीक्षण करने के लिए एक कंप्यूटर सिमुलेशन बनाया कि विभिन्न सॉफ़्टवेयर डिज़ाइन इस विशिष्ट लय को कैसे संभालते हैं। उन्होंने पारंपरिक सिंगल-थ्रेडेड दृष्टिकोण, जहाँ एक प्रोसेसर सारा काम करता है, बनाम एक मल्टी-स्टेज पाइपलाइन, जहाँ काम को क्रमवार काम करने वाले कई प्रोसेसरों के बीच विभाजित किया जाता है, की तुलना की। अपने सिमुलेशन में, उन्होंने सिस्टम में वास्तविक डेटा पैकेटों का सटीक समय डाला। परिणाम स्पष्ट थे: उन कार्यों के लिए जो पैकेटों के बीच 7.5-माइक्रोसेकंड के अंतराल से अधिक समय लेते हैं, सिंगल-थ्रेडेड दृष्टिकोण एक बड़ा बैकलॉग (बकाया) बना देता है। जब डेटा का एक उछाल आता है, तो सिंगल प्रोसेसर अभिभूत हो जाता है, और उछाल के अंतिम कुछ पैकेटों के लिए देरी स्वयं कार्य से दर्जनों गुना अधिक हो जाती है। यह वह "टेल" (पूंछ) है जिससे ट्रेडर्स डरते हैं, क्योंकि इसका अर्थ है कि उनके निर्णय बहुत देर से लिए जाते हैं।
इसके विपरीत, मल्टी-स्टेज पाइपलाइन ने इन उछालों को आसानी से संभाला। काम को विभाजित करके, सिस्टम आने वाले पैकेटों की ट्रेन को समानांतर (पैरेलल) में प्रोसेस कर सका। जबकि पहला प्रोसेसर पहले पैकेट को डिकोड कर रहा था, दूसरा दूसरे पैकेट पर काम कर रहा था, और इसी तरह। इसने सिस्टम को बैकलॉग को बहुत तेज़ी से खाली करने की अनुमति दी, जिससे प्रत्येक पैकेट के लिए देरी कम और सुसंगत बनी रही। सिमुलेशन ने दिखाया कि 16 माइक्रोसेकंड या उससे अधिक समय लेने वाले कार्यों के लिए, काम को विभाजित करने से सबसे खराब स्थिति वाली देरी को दस गुना या उससे अधिक कम कर दिया गया, जबकि सामान्य, गैर-बर्स्टी क्षणों के लिए केवल एक मामूली दंड (पेनल्टी) लगा। शोधकर्ताओं ने पुष्टि की कि यह सुधार डेटा की शुद्ध मात्रा के कारण नहीं था, बल्कि आगमन के समय के क्लस्टर्ड, बर्स्टी स्वभाव के कारण था। जब उन्होंने समान मात्रा में डेटा को यादृच्छिक रूप से आने का सिमुलेशन किया, तो मल्टी-स्टेज सिस्टम ने कोई लाभ नहीं दिया, और सिंगल-थ्रेडेड सिस्टम कुशल बना रहा।
अध्ययन ने देरी के कई अन्य संभावित कारणों को भी खारिज कर दिया। उन्होंने पाया कि डेटा पैकेट का आकार या उनके भीतर संदेशों की संख्या मुख्य रूप से धीमे होने का कारण नहीं थी। यहाँ तक कि जब उन्होंने उछाल को हटाने के लिए डेटा को पुनर्व्यवस्थित किया लेकिन पैकेटों की संख्या समान रखी, तो भारी देरी गायब हो गई। इससे सिद्ध हुआ कि समस्या पूरी तरह से आगमन के समय (टाइमिंग) के बारे में थी। शोधकर्ताओं ने एक्सचेंज को भी देखा ताकि यह समझ सके कि डेटा इन क्लस्टर्स में क्यों आता है। उन्होंने पाया कि एक्सचेंज का मैचिंग इंजन अक्सर कई ऑर्डरों को लगभग एक साथ प्रोसेस करता है, जो संभवतः इसलिए है क्योंकि कई ट्रेडर्स एक ही बाजार घटना पर एक साथ प्रतिक्रिया दे रहे होते हैं। हालाँकि, एक्सचेंज का पब्लिशर फिर उन्हें अलग करता है, जिससे वह लयबद्ध ट्रेन बनती है जिसे ट्रेडर्स के सिस्टम को संभालना पड़ता है।
इन ट्रेडिंग सिस्टम के डिजाइनरों के लिए, यह पेपर एक स्पष्ट, डेटा-संचालित मार्गदर्शिका प्रदान करता है। यदि किसी सिस्टम का प्रोसेसिंग समय पैकेटों के बीच के 7.5-माइक्रोसेकंड के अंतराल से कम है, तो पुराना नियम अभी भी लागू होता है: इसे सिंगल थ्रेड पर रखें। काम को विभाजित करने का कोई लाभ नहीं है, और यह अनावश्यक जटिलता भी जोड़ता है। लेकिन यदि प्रोसेसिंग समय उस अंतराल से अधिक है, तो सिंगल-थ्रेडेड दृष्टिकोण उछाल के दौरान विफल हो जाएगा, और सिस्टम को कई चरणों में विभाजित किया जाना चाहिए। शोधकर्ता इस बात पर जोर देते हैं कि लक्ष्य जितने संभव हो उतने अधिक प्रोसेसरों का उपयोग करना नहीं है, बल्कि यह सुनिश्चित करना है कि प्रक्रिया का सबसे धीमा हिस्सा एक्सचेंज की लय के साथ तालमेल बिठाने के लिए पर्याप्त तेज़ हो। उन्होंने यह भी पाया कि प्रोसेसरों का विशिष्ट विन्यास (अरेंजमेंट) उतना महत्वपूर्ण नहीं है जितना कि यह सुनिश्चित करना कि सबसे धीमे चरण को कुशलतापूर्वक संभाला जाए।
यह कार्य यह दावा नहीं करता है कि इसने हाई-स्पीड ट्रेडिंग की हर समस्या को हल कर दिया है, न ही यह सुझाव देता है कि सिंगल-थ्रेडेड दृष्टिकोण अप्रचलित हो गया है। यह केवल एक सटीक माप प्रदान करता है कि वह दृष्टिकोण कब काम करना बंद कर देता है और कब एक अलग डिज़ाइन आवश्यक हो जाता है। सैद्धांतिक मॉडलों पर भरोसा करने के बजाय वास्तविक दुनिया को मापने के माध्यम से, शोधकर्ताओं ने इंजीनियरों को एक ठोस सीमा (थ्रेशोल्ड) दी है। उन्होंने दिखाया है कि डेटा स्ट्रीम की प्रकृति—विशेष रूप से इसके स्व-उत्तेजित उछालों में आने की प्रवृत्ति—उस सॉफ़्टवेयर को बनाने के सर्वोत्तम तरीके को निर्धारित करती है जिसका उपभोग किया जाता है। सबक यह है कि वित्त की हाई-स्पीड दुनिया में, डेटा की लय को समझना कंप्यूटर की गति के समान ही महत्वपूर्ण है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।