Тапсырыс беруші
Шешімдерді қабылдау мерзімі

09.01.26 (қоса алғанда)

Марапаттау нысаны

шарттық

Өнім күйі

Дайын өнім

Тапсырма түрі

Акт міндеттері

Сфера применения

Көмірсутек шикізатын өндіру және өңдеу

Область задачи

Геологиялық-физикалық зерттеу әдістері

Tech-тапсырма
Өнім түрі

БҚ/АЖ

Мәселенің сипаттамасы

Мұнай-газ жобаларына арналған экономикалық және инженерлік жағдайларды есептеудің қазіргі жүйесі өзара тәуелді асинхронды міндеттердің (DAG) күрделі графигіне негізделген. Жүйе деректерді хэштеу арқылы есептеулерді қайталау механизмін қолданады, бұл келесі мәселелерге әкеледі: 1. Сақталмаған өзгерістер кезінде есептеулерді жоғалту: пайдаланушы істің параметрлерін өзгертеді, есептеуді бастайды, бірақ істі сақтамайды. Қайта ашқан кезде есептеу болмайды, өйткені кейс деректерінің хэші есептеу хэшімен сәйкес келмейді. 2. "Қоқыс" есептеулерінің жинақталуы: деректер базасында сақталған жағдайларға байланысты емес есептеулер жинақталады, бұл өнімділік мәселелерін тудырады және дискілік кеңістікті алады. 3. Тәуелділік графигін қолдаудың күрделілігі: жүйе бір экономикалық есептеу үшін (Production, Sales, CAPEX, OPEX, Taxes, Engineer және т.б.) 40-80-ге дейін өзара байланысты ішкі тапсырмаларды жасайды. Тапсырмалар арасындағы сілтемелерді басқару, shared sub-jobs бақылау және қауіпсіз жою өте қиын болады. 4. Тұрақты және ықтималдық есептеулеріне арналған кодтың қайталануы: ЖҮГІРТКІЛЕРМЕН интерактивті жұмыс кезінде мәліметтер базасында жазбалар құрудың алдын алу үшін тіркелген есептеулер jobs жүйесін айналып өтіп, бөлек жүзеге асырылады. Бұл есептеулерді орындау үшін екі параллель код тармағын құруға әкелді, бұл қолдауды қиындатады, өзгерістерді синхрондау кезінде қателіктер қаупін арттырады және есептеу логикасының қайталануын талап етеді. 5. Хэштеу тұрақсыздығы: JSON кілттерінің реті, float сандарының дәлдігі және null мәндерін өңдеудегі айырмашылықтар бірдей деректермен қайталанатын есептеулерге әкеледі.

Күтілетін әсер

Есептеу жүйесінің оңтайландырылған архитектурасын енгізу: 1. Есептеулердің жоғалуын жою: әрбір есептеуді есептеуге дейін немесе одан кейін сақтағанына қарамастан, істі ашқан кезде әрқашан табуға болатынына көз жеткізіңіз. 2. Деректер базасына жүктемені азайту: мәліметтер базасындағы жазбалар санын 60-80% - ға азайту: Redis-те аралық нәтижелерді кэштеу ◦ Интерактивті режимге арналғанem in-memory есептеулер (ДБ-де жазусыз) ◦ Ескірген есептеулерді автоматты түрде тазарту 3. Архитектураны жеңілдету: күрделі тәуелділік графигінен аралық нәтижелерді кэштеу арқылы монолитті есептеуге көшу, бұл кодтың күрделілігін 70% төмендетеді және жөндеуді жеңілдетеді. 4. Пайдаланушы тәжірибесін жақсарту: ◦ Интерактивті режимде (slider)параметрлердің өзгеруіне жедел реакция ◦ Ұзақ мерзімді Monte Carlo модельдеулерін орындаудың мөлдір прогресі ◦ Есептеулердің барлық түрлері үшін біркелкі мінез құлық 5. Өнімділікті арттыру: ◦ Redis cache арқылы есептеу нәтижелерін қайта пайдалану ◦ Тәуелсіз есептеу блоктарын параллель орындау ◦ Есептеу кезеңдері арасында деректерді беруді оңтайландыру 6. Масштабтауды қамтамасыз ету: жүйе Laravel Horizon және Redis арқылы көлденең масштабтауды қолдана отырып, дерекқор жүктемесін арттырмай, бір уақытта көбірек есептеулерді басқара алады.

Жауапты тұлғаның ТАӘ

Артем Никитенко

Тапсырманың (жобаның) мақсаты мен сипаттамасы

Мұнай-газ жобаларының экономикалық, инженерлік және геологиялық модельдерімен жұмыс істеу кезінде тұрақтылықты, ашықтықты және өнімділікті қамтамасыз ететін OPTIM платформасы үшін асинхронды есептеу жүйесінің оңтайландырылған архитектурасын әзірлеу және енгізу.

Ескерту