__БЕЗКН__

() је управљана база података коју развија компанија (). Сервис подржава моделе података типа кључ—вредност и документно оријентисане структуре, а дизајниран је за апликације које захтевају високу скалабилност, доступност и перформансе.

ДајнамоДБ је намењен раду у дистрибуираним системима и облачним окружењима, где се велике количине података обрађују уз минимално кашњење. Сервис је постао једна од најпознатијих NoSQL база података унутар AWS екосистема и често се користи у веб апликацијама, системима за е-трговину, видео-играма, аналитичким платформама и интернет сервисима великог обима.

Историја Почетком двехиљадитих година Амазон је функционисао као децентрализована мрежа различитих сервиса. У раним фазама развоја, сервиси су директно приступали базама података других сервиса, што је временом постало велико оптерећење за инфраструктуру и развојне тимове.

Током празничне сезоне 2004. године, велики број Амазонових технологија имао је проблеме услед огромног интернет саобраћаја и преоптерећења база података. Традиционални релациони системи за управљање базама података нису могли довољно ефикасно да поднесу огроман број захтева, нарочито када су у питању операције читања података засноване на примарном кључу.

Као одговор на ове проблеме, Амазонови инжењери развили су интерни систем под називом Дајнамо (енг. Dynamo), дистрибуирану базу података типа кључ—вредност, оптимизовану за високу доступност и брзину рада.

Иако је Дајнамо био успешан интерни пројекат, његово коришћење је захтевало ручно управљање серверима, партицијама и скалирањем. Због тога је AWS касније развио ДајнамоДБ, који је аутоматизовао већину административних операција и омогућио једноставније коришћење NoSQL технологије у облаку.

Организација података ДајнамоДБ организује податке у табеле које су по концепту сличне табелама у класичним базама података или прорачунским табелама. Свака табела садржи ставке (редове), док се свака ставка састоји од атрибута (колона).

За разлику од релационих база података, ДајнамоДБ не захтева фиксну шему података. То значи да различите ставке у истој табели могу имати различите атрибуте, што омогућава већу флексибилност приликом складиштења података.

Ставке и атрибути Основна јединица података у ДајнамоДБ-у назива се ставка. Ставка представља скуп атрибута који описују неки објекат или запис у бази.

Атрибут представља појединачни елемент податка и функционише као пар кључ—вредност. Кључ је увек стринг типа, док вредност може бити различитог типа података, укључујући:

бројеве, текстуалне вредности, логичке вредности, листе, документе, скупове података.

Кључеви и индекси Свака табела у ДајнамоДБ-у мора имати примарни кључ (енг. Primary Key) који јединствено идентификује ставке у табели.

Примарни кључ може бити:

једноставан — састоји се од једног атрибута, сложен — састоји се од партиционог и сортирајућег кључа.

Партициони кључ Партициони кључ (енг. Partition Key) одређује физичку локацију података унутар система. ДајнамоДБ користи механизам хеширања како би расподелио податке између различитих партиција.

Када примарни кључ садржи само партициони кључ, две ставке не могу имати исту вредност тог кључа.

Сортирајући кључ Када примарни кључ садржи два атрибута, други атрибут се назива сортирајући кључ (енг. Sort Key). Он омогућава логичко организовање података унутар исте партиције и користан је за временске серије, листе догађаја и сличне структуре података.

Индекси ДајнамоДБ подржава и секундарне индексе који омогућавају брже претраживање података.

Постоје две главне врсте секундарних индекса:

локални секундарни индекс (енг. Local Secondary Index, LSI), глобални секундарни индекс (енг. Global Secondary Index, GSI).

Локални секундарни индекс користи исти партициони кључ као примарни индекс, али другачији сортирајући кључ. Глобални секундарни индекс може имати потпуно другачији партициони кључ.

Архитектура система ДајнамоДБ користи комбинацију хеш функција и B-стабала за организацију и претрагу података. мини|356x356п|Веб-конзола Приликом уноса података, систем најпре хешира вредност партиционог кључа, након чега се подаци смештају у одговарајућу партицију. Свака партиција може да складишти до 10 GB података.

Да би се спречио губитак података, ДајнамоДБ користи механизам репликације. Свака партиција има три чвора, од којих сваки садржи копију података. Један од чворова функционише као „главни чвор” (енг. Leader Node) и први обрађује операције уписа података.

Систем користи Паксос алгоритам (енг. Paxos algorithm) за избор новог главног чвора у случају отказа.

Моделовање података У ДајнамоДБ-у се користе различити архитектонски обрасци за моделовање података.

Дизајн једне табеле Дизајн једне табеле (енг. Single Table Design) подразумева складиштење више повезаних типова података унутар исте табеле. Овај приступ може побољшати перформансе и смањити кашњење приликом читања података.

Дизајн више табела Дизајн више табела (енг. Multiple Table Design) користи више засебних табела за различите врсте података и приступне шаблоне.

Временске серије ДајнамоДБ се често користи за складиштење података временских серија (енг. Time-Series Data), као што су логови, метрике и догађаји. У овом моделу се најчешће користи комбинација партиционог кључа и временске ознаке као сортирајућег кључа.

Перформансе Амазон наводи да ДајнамоДБ може да постигне кашњење од неколико милисекунди код једноставних операција читања и уписа података.

Међутим, сложеније операције, попут скенирања великих количина података или филтрираних упита, могу имати значајно веће кашњење услед додатне обраде и преноса података.

Закључавање ДајнамоДБ не подржава класичне механизме закључавања карактеристичне за релационе базе података, али се могу користити различити приступи за контролу конкурентног приступа подацима.

Један од приступа је оптимистичко закључавање (енг. Optimistic Locking), које користи број верзије ради откривања конфликата приликом ажурирања података.

Други приступ је песимистичко закључавање (енг. Pessimistic Locking), које се може реализовати коришћењем атрибута попут времена закључавања и идентификатора корисника који је закључао податак.

Извршавање упита Када корисник ДајнамоДБ-а (енг. DynamoDB) пошаље операцију уписа података, као што су Put, Update или Delete, систем не користи класичну оптимизацију упита карактеристичну за релационе базе података. За разлику од SQL система, где се упити преводе у релациону алгебру и пролазе кроз процес оптимизације, ДајнамоДБ користи једноставнији и бржи приступ.

Захтев најпре долази до рутера захтева (енг. Request Router), који проверава аутентификацију и ауторизацију корисника. Систем затим хешира вредност партиционог кључа како би одредио у којој се партицији подаци налазе.

Свака партиција садржи три чвора, при чему сваки чвор има копију података. Операција уписа се најпре извршава на главном чвору, након чега се промене преносе на остале чворове. Након успешног уписа на други чвор, систем кориснику шаље поруку о успешној операцији, док се синхронизација са трећим чвором наставља у позадини.

Овакав приступ омогућава високу доступност и брзину рада, док се конзистентност података одржава преко главног чвора.

Репликација индекса Након уписа података, посебан системски механизам познат као пропагатор логова (енг. Log Propagator) ажурира све секундарне индексе повезане са табелом.

У случају ажурирања постојећих података, ДајнамоДБ може извршити комбинацију операција брисања и поновног уноса података како би индекси остали синхронизовани.

Операције читања Када корисник пошаље Get захтев за читање података, систем пролази кроз исти процес аутентификације и одређивања партиције.

Пошто свака партиција има три чвора са копијама података, ДајнамоДБ нуди два начина читања:

конзистентно читање (енг. Strongly Consistent Read), евентуално конзистентно читање (енг. Eventually Consistent Read).

Конзистентно читање Код конзистентног читања, подаци се читају директно са главног чвора, чиме се гарантује да ће корисник добити најновију верзију података.

Недостатак овог приступа је што велики број захтева може преоптеретити главни чвор и смањити доступност система.

Евентуално конзистентно читање Код евентуално конзистентног читања, систем насумично бира један од чворова у партицији. Овај приступ побољшава доступност и распоређује оптерећење између више чворова, али постоји мала могућност да корисник добије застареле податке.

У пракси, период неусаглашености између чворова обично траје само неколико милисекунди, јер се репликација података одвија веома брзо.

Контроверзе У октобру 2025. године, грешка у синхронизацији компоненти ДајнамоДБ-а изазвала је прекид рада AWS региона US-EAST-1 који је трајао око 14 часова.

Овај инцидент довео је до прекида рада великог броја интернет сервиса и поново покренуо расправе о зависности модерних интернет платформи од централизованих облачних сервиса.

Види још

База података Релациона база података

Референце

Спољашње везе

Категорија:Базе података на мрежи Категорија:Amazon (предузеће)