Веб кызматтары үчүн эс тутумдагы архитектура: технологиянын негиздери жана принциптери

In-Memory - бул колдонмонун оперативдүү эсинде сакталган маалыматтарды сактоо үчүн түшүнүктөрдүн жыйындысы, ал эми диск резервдик көчүрүү үчүн колдонулат. Классикалык ыкмаларда маалыматтар дискте, ал эми эс тутум кэште сакталат. Мисалы, маалыматтарды иштеп чыгуу үчүн сервери бар веб-тиркеме аны сактоочу жайга сурайт: ал аны кабыл алат, өзгөртөт жана тармак аркылуу көптөгөн маалыматтар берилет. In-Memoryде эсептөөлөр маалыматтарга - сактоого жөнөтүлөт, ал жерде алар иштетилет жана тармак азыраак жүктөлөт.

Архитектурасынын аркасында In-Memory маалыматтарга жетүүнү бир нече эсеге, ал тургай кээде чоңдуктагы буйруктарга тезирээк ылдамдатат. Мисалы, банк аналитиктери аналитикалык тиркемеде өткөн жыл үчүн динамикада берилген кредиттер боюнча отчетту көргүсү келет. Бул процесс классикалык DBMSде бир нече мүнөттү талап кылат, бирок In-Memory менен ал дээрлик дароо пайда болот. Себеби бул ыкма көбүрөөк маалыматты кэштоого мүмкүндүк берет жана ал оперативдүү эс тутумда "колунда" сакталат. Тиркеме катуу дисктен маалыматтарды талап кылуунун кереги жок, анын жеткиликтүүлүгү тармак жана дисктин ылдамдыгы менен чектелген.

In-Memory менен дагы кандай мүмкүнчүлүктөр бар жана бул кандай ыкма? Владимир Плигин - GridGain компаниясынын инженери. Бул карап чыгуу материалы In-Memory менен иштебеген жана сынап көргүсү келген же программалык камсыздоону иштеп чыгуунун жана архитектуралык дизайндагы заманбап тенденцияларга кызыккан веб-тиркемелерди иштеп чыгуучулар үчүн пайдалуу болот.

пикир. Макала Владимирдин #GetIT Conf конференциясындагы баяндамасынын стенограммасына негизделген. Өзүн-өзү изоляциялоону киргизүүнүн алдында биз Москвада жана Санкт-Петербургда иштеп чыгуучулар үчүн жолугушууларды жана конференцияларды үзгүлтүксүз өткөрүп турдук: биз тенденцияларды, учурдагы өнүгүү маселелерин, көйгөйлөрдү жана аларды чечүү жолдорун талкууладык. Азыр конференция өткөрүү мүмкүн эмес, бирок мурункулардан пайдалуу материалдар менен бөлүшүүгө убакыт келди.

In-Memory ким жана кантип колдонот

In-Memory көбүнчө колдонуучунун тез аракеттешүүсү же чоң көлөмдөгү маалыматтарды иштетүү талап кылынган жерлерде колдонулат.

  • банктар Мисалы, кардарлар тиркемелерди колдонгондо кечигүүлөрдү азайтуу үчүн же насыя берүүдөн мурун кардарды талдоо үчүн In-Memory колдонуңуз.
  • Fintech маалыматтарды иштеп чыгуу жана талдоо аутсорсинг банктар үчүн кызматтардын жана тиркемелерди жакшыртуу үчүн In-Memory колдонот. 
  • Камсыздандыруу компаниялары: тобокелдиктерди эсептөө үчүн, мисалы, бир нече жылдар бою кардарлардын маалыматтарын талдоо.
  • Логистикалык компаниялар. Алар көптөгөн маалыматтарды иштеп чыгышат, мисалы, миңдеген параметрлери менен жүк жана жүргүнчүлөрдү ташуу үчүн оптималдуу маршруттарды эсептеп, жүктөрдүн абалына көз салышат.
  • Чекене. In-Memory чечимдери кардарларды тезирээк тейлөөгө жана маалыматтын чоң көлөмүн иштетүүгө жардам берет: жөнөтүүлөр, эсеп-фактуралар, транзакциялар, кампаларда миңдеген товарлардын болушу жана аналитикалык отчетторду даярдоо.
  • В IOT In-Memory салттуу маалымат базаларын алмаштырат.
  • Фармацевтика компаниялар In-Memory колдонушат, мисалы, дары курамын айкалыштыруу аркылуу сорттоо. 

Мен сизге биздин кардарлар In-Memory чечимдерин кантип колдонсо болорун жана аларды өзүңүз кантип ишке ашыра аларыңыздын бир нече мисалдарын айтып берем.

Негизги сактагыч катары эстутумда

Биздин кардарлардын бири АКШдан медициналык илимий жабдуулардын ири жеткирүүчүсү. Алар негизги маалымат сактагыч катары In-Memory чечимди колдонушат. Бардык маалыматтар дискте сакталат, ал эми активдүү колдонулган маалыматтардын ички топтому оперативдүү эс тутумда сакталат. Сактагычка кирүү ыкмалары стандарттуу - GDBC (Generic Database Connector) жана SQL суроо тили.

Веб кызматтары үчүн эс тутумдагы архитектура: технологиянын негиздери жана принциптери

Бул жалпысынан In-Memory Database (IMDB) же Memory-Centric Storage деп аталат. Чечимдердин бул классы көптөгөн аталыштарга ээ, булар жалгыз эмес. 

IMDB өзгөчөлүктөрү:

  • In-Memoryде сакталган жана SQL аркылуу кирүүчү маалыматтар башка ыкмалардагыдай эле. Алар синхрондоштурулган, бир гана көрсөтүү жолу, аларга кайрылуу жолу башка. Транзакция маалыматтар ортосунда иштейт.

  • IMDB реляциялык маалымат базаларына караганда ылдамыраак, анткени ал дискке караганда оперативдүү эс тутумдан маалыматты тезирээк кабыл алат. 
  • Ички оптималдаштыруу алгоритмдеринин көрсөтмөлөрү азыраак.
  • IMDB'лер колдонмолордогу маалыматтарды, окуяларды жана транзакцияларды башкаруу үчүн ылайыктуу.

IMDBs жарым-жартылай ACIDди колдойт: Atomicity, Consistency, and Isolation. Бирок алар "узактуулукту" колдобойт - кубат өчүрүлгөндө, бардык маалыматтар жоголот. Көйгөйдү чечүү үчүн, сиз снапшотторду колдонсоңуз болот - катуу дисктеги маалыматтар базасынын резервдик көчүрмөсүнө окшош маалымат базасынын "сүрөтү" же кайра жүктөөдөн кийин маалыматтарды калыбына келтирүү үчүн транзакцияларды (логдорду) жазыңыз.

катага чыдамдуу колдонмолорду түзүү

Келгиле, каталарга чыдамдуу веб тиркемесинин классикалык архитектурасын элестетип көрөлү. Ал төмөнкүдөй иштейт: бардык суроо-талаптар серверлердин ортосунда веб балансизатор тарабынан бөлүштүрүлөт. Бул система туруктуу, анткени серверлер бири-бирин кайталайт жана инциденттер болгон учурда резервдик көчүрүшөт.

Веб кызматтары үчүн эс тутумдагы архитектура: технологиянын негиздери жана принциптери

Балансатор бардык суроо-талаптарды бир сеанстан бир серверге багыттайт. Бул таякча сеанс механизми: ар бир сеанс жергиликтүү түрдө сакталган жана иштетилген сервер менен байланышкан. 

Серверлердин бири иштебей калса эмне болот?

Веб кызматтары үчүн эс тутумдагы архитектура: технологиянын негиздери жана принциптери

Архитектура кайталангандыктан, кызмат таасир этпейт. Бирок биз өлгөн сервердин сеанстарынын бир бөлүгүн жоготуп алабыз. Жана ошол эле учурда, бул сессияларга байланган колдонуучулар. Мисалы, кардар буйрутма берип, аны капысынан кеңседен ыргытып жиберет. Ал кайра кирип, баарын кайра жасоого туура келерин көргөндө бактысыз болот.

Веб-тиркеме көп сандагы колдонуучуларды колдоо жана жайлуу иштеши үчүн жайлатпоо үчүн талап кылынат. Бирок, эгерде ал баш тартылса, ар бир кийинки суроо-талап менен сеанс дүкөнү менен баарлашууга кеткен убакыт көбөйөт. Бул башка колдонуучулар үчүн орточо күтүү убактысын жогорулатат. Бирок алар көнүп калгандан көп күткүсү келбейт.

Бул көйгөйдү биздин башка кардар, АКШдан чоң PASS провайдери сыяктуу чечсе болот. Ал веб-сеанстарды кластерлөө үчүн In-Memory колдонот. Бул үчүн, ал аларды жергиликтүү эмес, борборлоштурулган - In-Memory кластеринде сактайт. Бул учурда, сессиялар тезирээк жеткиликтүү, анткени алар RAMда мурунтан эле бар.

Веб кызматтары үчүн эс тутумдагы архитектура: технологиянын негиздери жана принциптери

Сервер бузулганда, баланстоочу классикалык архитектурадагыдай бузулган серверден суроо-талаптарды башка серверлерге жөнөтөт. Бирок маанилүү айырма бар: сеанстар In-Memory кластеринде сакталат жана серверлер кулаган сервердин сеанстарына кирүү мүмкүнчүлүгүнө ээ.

Бул архитектура бүтүндөй системанын катачылыкка чыдамдуулугун жогорулатат. Мындан тышкары, таяк сессиясынын механизминен таптакыр баш тартууга болот.

Гибриддик транзакциялык аналитикалык иштетүү (HTAP)

Эреже катары, транзакциялык жана аналитикалык системалар өзүнчө сакталат. Алар бөлүнгөндө, негизги база жүктүн астында калат. Аналитикалык иштетүү үчүн маалыматтар репликага көчүрүлөт, андыктан аналитикалык иштетүү транзакция процесстерине тоскоол болбойт. Бирок көчүрүү артта калуу менен болот — артта калуусуз кайталоо мүмкүн эмес. Муну синхрондуу кылсак, ал да негизги базаны жайлатып, эч кандай утуш албайбыз.

HTAPда баары башкача иштейт - бир эле маалымат кампасы тиркемелерден транзакциялык жүктөө үчүн жана көп убакытты талап кылган аналитикалык сурамдар үчүн колдонулат. Маалыматтар RAMда болгондо, аналитикалык сурамдар тезирээк аткарылат, ал эми маалымат базасы бар сервер азыраак жүктөлөт (орточо эсеп менен).

Веб кызматтары үчүн эс тутумдагы архитектура: технологиянын негиздери жана принциптери

Гибриддик ыкма транзакцияларды иштетүү менен аналитиканын ортосундагы дубалды бузат. Эгерде биз аналитиканы бир эле сактагычта жүргүзсөк, анда RAMдагы маалыматтар боюнча аналитикалык сурамдар ишке киргизилет. Алар алда канча так, чечмеленүүчү жана адекваттуу.

In-Memory чечимдерин интеграциялоо

(салыштырмалуу) жөнөкөй жол - баарын нөлдөн баштап иштеп чыгуу. Биз дискте маалыматтарды сактайбыз жана эстутумда ысык маалыматтарды сактайбыз. Бул серверди кайра жүктөөдө же өчүрүүлөрдө аман калууга жардам берет.

Бул жерде маалымат дискте сакталганда эки негизги сценарий иштейт. Биринчиден, биз кластердин же бөлүктөрүнүн кыйроолорунан же үзгүлтүксүз кайра жүктөөлөрдөн аман калгыбыз келет - биз аны жөнөкөй маалымат базасы катары колдонгубуз келет. Экинчи сценарийде, өтө көп маалымат болгондо, алардын бир бөлүгү эс тутумда болот.

Эгерде бардыгын нөлдөн баштап куруу мүмкүн болбосо, анда In-Memory'ду мурунтан эле орнотсо болот. учурдагы архитектура. Бирок In-Memory чечимдеринин баары бул үчүн ылайыктуу эмес. Үч милдеттүү шарт бар. In-Memory чечими төмөнкүлөрдү колдоого алышы керек:

  • анын астында жайгашкан маалымат базасына туташуу үчүн стандарттуу жол (мисалы, MySQL);
  • сактагыч менен өз ара аракеттенүү логикасын кайра жазуу жана өзгөртүү үчүн эмес, стандарттык суроо тили;
  • транзакциялык - өз ара аракеттенүүнүн семантикасын сактоо.

Эгерде үч шарт тең аткарылса, анда интеграция болушу мүмкүн. Биз колдонмо менен маалымат базасынын ортосунда эс тутумдагы маалыматтар торчосун жайгаштырабыз. Эми жазуу сурамдары негизги маалымат базасына өткөрүлүп берилет, ал эми окуу сурамдары маалыматтар кэште болбосо, негизги маалымат базасына өткөрүлүп берилет.

Веб кызматтары үчүн эс тутумдагы архитектура: технологиянын негиздери жана принциптери

Эгер маалыматтарга тез жетүү жана аны иштетүү сиз үчүн маанилүү болсо, мисалы, бизнес-аналитика үчүн, In-Memory программасын ишке ашыруу жөнүндө ойлонсоңуз болот. Жана ишке ашыруу үчүн, сиз жаңы архитектураны долбоорлоодо эки ыкманы тең колдоно аласыз.

Source: www.habr.com

Комментарий кошуу