3.15

Gweld yn Saesneg

3.15 Storio dros dro (caching) a chyflenwi cynnwys

Trosolwg a chymhelliad

Mae storfa yn gopi o ddata a gedwir yn rhywle cyflymach neu agosach na’r gwreiddiol, fel y gellwch ateb cais heb wneud y gwaith llawn, drud eto. Mae bron pob system sy’n teimlo’n gyflym yn gyflym oherwydd storio dros dro. Mae’r ymholiad cronfa ddata a fyddai’n cymryd 40 milieiliad yn dychwelyd o fewn llai nag un pan fo’i ganlyniad eisoes yn y cof. Mae’r ddelwedd a fyddai’n croesi cefnfor yn cael ei gweini o beiriant yn yr un ddinas. Storio dros dro yw’r dechneg berfformiad fwyaf grymus sydd gennych, a hi hefyd yw’r un fwyaf tebygol o roi i chi wall cynnil, gyrru dyn yn wallgof.

Mae’r bennod hon yn mynd yn ddwfn i strategaeth storio dros dro. Mae pennod 3.4 (pensaernïaeth data a storio) yn cyflwyno storfeydd a rhwydweithiau cyflenwi cynnwys fel un pryder storio ymhlith llawer, ac mae pennod 3.13 (rhwydweithio a chysylltedd) yn ymdrin â’r llwybr rhwydwaith y maent yn teithio arno. Yma cewch y penderfyniadau: ble i osod storfa, sut i’w chwilfachu (key), pryd i ddirymu, sut i’w hamddiffyn dan lwyth, a sut i resymu am yr hendod (staleness) yr ydych yn ei gyfnewid am gyflymder. Mae storio dros dro yn cyffwrdd â pheirianneg perfformiad (pennod 2.16), graddadwyedd a gwydnwch (pennod 3.5), realiti methiant rhannol systemau dosranedig (pennod 3.3), ac, oherwydd y gall storfa wenwynig weini ymosodiad i filoedd o ddefnyddwyr, diogelwch cymwysiadau (pennod 4.2).

Daw’r cymhelliad i lawr i dri lifer. Mae storio dros dro yn torri oedi, fel bod defnyddwyr yn aros llai. Mae’n torri llwyth, fel bod eich tarddiad (origin) yn gwasanaethu mwy o draffig ar yr un caledwedd. Ac mae’n torri cost, oherwydd ni fydd cais a atebir wrth yr ymyl byth yn cyffwrdd â’ch cronfa ddata, eich cyfrifiadura, na’ch bil allanfa (egress). I dimau mawr, strategaeth storio dros dro a rennir yw’r gwahaniaeth rhwng platfform sy’n graddio’n rhagweladwy ac un lle mae pob gwasanaeth yn ailddyfeisio dirymu ac yn ei gael yn anghywir. Mewn systemau menter a llywodraeth, lle mae pigau traffig ar ddyddiadau cau ffeilio a diwrnodau lansio, storfa a ddyluniwyd yn dda yw’r hyn sy’n aml yn sefyll rhwng porth sy’n gweithio a methiant cyhoeddus.

Egwyddorion allweddol

  • Storio dros dro er mwyn torri oedi, llwyth, a chost, a gwybod pa un rydych yn ei brynu.
  • Gosod storfeydd ar yr haen gywir o’r hierarchaeth, agosaf at lle maent yn helpu fwyaf.
  • Trin dirymu fel y rhan anodd; dylunio allweddi a hyd oes cyn i chi storio.
  • Amddiffyn y storfa dan lwyth gyda chydgrynhoi, amrywiad ar hap (jitter), ac amddiffynfeydd yn erbyn rhuthr.
  • Dewis patrwm ysgrifennu yn fwriadol: mae cysondeb a chyflymder yn tynnu yn erbyn ei gilydd.
  • Mesur cyfradd trawiadau, hendod, a llwyth tarddiad; mae storfa na fesurir yn rhwymedigaeth.
  • Trin cynnwys wedi’i storio fel arwyneb ymosod; mae storfa wedi’i gwenwyno yn gwasanaethu pawb.

Argymhellion

Deall hierarchaeth y storfeydd

Nid yw storio dros dro yn un peth mewn un lle. Mae’n hierarchaeth o gopïau, pob un yn nes at y defnyddiwr na’r un flaenorol, a chewch ddylunio ar draws pob un ohonynt. Agosaf at y defnyddiwr mae’r storfa cleient: storfa HTTP y porwr, storfa leol ap symudol, storfa cof mewn-broses. Nesaf mae’r rhwydwaith cyflenwi cynnwys (CDN), fflyd o weinyddion wedi’u dosbarthu ledled y byd sy’n dal copïau o’ch cynnwys wrth ymyl y rhwydwaith, yn agos at ddefnyddwyr. Y tu ôl i hynny mae’r storfa dirprwy gwrthdro neu gatiau, storfa a rennir o flaen eich gweinyddion. Yna’r storfa gymhwysiad: siop allwedd-gwerth cyflym megis grid data mewn-cof yn dal canlyniadau wedi’u cyfrifo, sesiynau, a darnau wedi’u rendro. Yn olaf storfa ymholiad a byffer y gronfa ddata ei hun, sy’n cadw tudalennau poeth yn y cof fel bod y disg yn cael ei gyffwrdd yn llai.

Mae pob haen yn gwasanaethu swydd wahanol: mae’r storfa cleient yn dileu’r cais yn llwyr, mae’r CDN yn amsugno traffig darllen byd-eang, mae’r dirprwy gwrthdro yn amddiffyn eich tarddiad rhag gwaith unfath ailadroddus, mae’r storfa gymhwysiad yn arbed ailgyfrifo, ac mae storfa’r gronfa ddata yn cadw’r storfa’n ymatebol. Cais sy’n methu pob haen ac yn cyrraedd y gronfa ddata yw’r llwybr arafaf, drutaf sydd gennych, felly pwynt yr hierarchaeth yw ateb mor bell i fyny ac allan ag y gellwch yn ddiogel. Dylunio hyn fel system, oherwydd gall darn wedi’i storio ar yr haen gymhwysiad a chopi CDN hendod uwchben anghytuno mewn ffyrdd sy’n drysu defnyddwyr.

Trin dirymu fel y broblem anodd

Mae hen jôc yn dweud mai’r ddwy broblem anoddaf mewn cyfrifiadureg yw enwi pethau, dirymu storfa, a gwallau un-yn-fyr. Mae’r jôc yn parhau oherwydd bod dirymu yn wirioneddol anodd: mae storfa’n gopi, a’r eiliad y bydd y gwreiddiol yn newid, mae pob copi’n gelwydd posibl. Mae gennych dair strategaeth eang. Mae dod i ben yn seiliedig ar amser gydag amser i fyw (TTL), sef y cyfnod y mae cofnod yn aros yn ddilys cyn cael ei ystyried yn hen, yn symlaf: rydych yn derbyn hendod ffiniedig ac yn gadael i gofnodion heneiddio allan. Mae dirymu penodol yn puro neu’n diweddaru cofnodion pan fydd y data sylfaenol yn newid, sy’n union ond sy’n mynnu eich bod yn gwybod pob lle mae copi’n byw. Mae dirymu wedi’i yrru gan ddigwyddiad yn tanysgrifio storfeydd i ddigwyddiadau newid fel eu bod yn eu hadnewyddu eu hunain, sy’n graddio’n well ar draws llawer o storfeydd ond sy’n ychwanegu dibyniaeth negeseua.

Mae’r rhan fwyaf o systemau go iawn yn cymysgu’r rhain: TTLau byr ar gyfer data sy’n newid yn aml ac yn goddef eiliadau o hendod, TTLau hwy ynghyd â phuro penodol ar gyfer data sy’n newid yn anaml ond sy’n rhaid iddo fod yn gywir pan fydd yn newid, ac allweddi storfa fersiynau ar gyfer cynnwys sy’n anghyfnewidiol unwaith y’i cyhoeddir. Mae’r tric allwedd-fersiwn yn werth ei fewnoli: yn lle dirymu, rydych yn newid yr allwedd. Ni fydd taflen arddull a weinir fel app.v187.css byth angen ei phuro, oherwydd mae fersiwn newydd yn allwedd newydd ac mae’r hen un yn syml yn peidio â chael ei gofyn amdani. Pryd bynnag y gellwch droi problem dirymu yn broblem enwi, gwnewch hynny.

Dylunio allweddi storfa a TTLau yn fwriadol

Mae storfa cystal â’i hallwedd yn unig. Yr allwedd storfa yw’r dynodwr y storir ac y chwilir gwerth oddi tano, ac mae ei chael yn anghywir yn achosi dau fethiant dirgroes. Yn rhy fras, ac rydych yn gweini data un defnyddiwr i un arall: mae tudalen bersonol wedi’i storio o dan URL sy’n anwybyddu hunaniaeth y defnyddiwr yn ollyngiad data. Yn rhy fân, ac mae eich cyfradd trawiadau’n cwympo oherwydd nad oes dau gais yn rhannu allwedd. Penderfynwch yn fwriadol beth sy’n perthyn yn yr allwedd: hunaniaeth yr adnodd ynghyd â beth bynnag sy’n newid yr ymateb yn ddilys (iaith, arian cyfred, dosbarth dyfais) a dim byd nad yw’n gwneud hynny. Normaleiddiwch allweddi fel nad yw gwahaniaethau dibwys fel trefn paramedrau ymholiad yn darnio’r storfa.

Mae TTLau’n haeddu’r un ystyriaeth. Mae TTL yn addewid am yr uchafswm hendod y byddwch yn ei wasanaethu, felly gosodwch ef o oddefiant go iawn y data, nid rhif crwn a ddyfalwyd gan rywun: mae ticiwr stoc yn goddef eiliadau, catalog cynnyrch funudau, rheoliad cyhoeddedig oriau neu allwedd fersiwn a dim dod i ben o gwbl. Ychwanegwch ledaeniad bach ar hap, a elwir yn amrywiad ar hap (jitter), fel nad yw swp o gofnodion a ysgrifennwyd gyda’i gilydd i gyd yn dod i ben yr un eiliad ac yn rhuthro’r tarddiad. Ysgrifennwch y penderfyniadau hyn i lawr, oherwydd mae TTL heb reswm yn rhif y bydd yr peiriannydd nesaf yn ofni ei newid.

Amddiffyn rhag rhuthr a chydgrynhoi ceisiadau

Pan fydd cofnod storfa poblogaidd yn dod i ben, mae pob cais a’i heisiau yn methu ar unwaith ac yn rhuthro’r tarddiad gyda’i gilydd. Dyma’r rhuthr storfa, a elwir hefyd yn “thundering herd”, a gall daflu drosodd y union gronfa ddata yr oedd y storfa’n ei hamddiffyn. Adeiladwch yr amddiffynfeydd unwaith a’u hailddefnyddio ym mhobman. Mae cydgrynhoi ceisiadau (single-flight) yn gadael i’r cais cyntaf yn unig am allwedd sy’n eisiau ailgyfrifo’r gwerth tra bo’r lleill yn aros am ei ganlyniad, fel bod mil o gamargraffiadau ar yr un pryd yn achosi un alwad tarddiad. Mae ailgyfrifiad cynnar tebygolol yn adnewyddu cofnod poeth ar hap ychydig cyn iddo ddod i ben, fel bod un cais cefndir yn ei adnewyddu cyn i’r dorf weld camargraffiad. Mae polisi gwasanaethu-hen-tra’n-adnewyddu (stale-while-revalidate) yn gwasanaethu’r copi ychydig yn hen ar unwaith ac yn ei adnewyddu’n anghydamserol, fel na fydd defnyddwyr byth yn aros am gamargraffiad o gwbl.

Mae’r patrymau hyn yn bwysicaf yn union pan fo angen y storfa arnoch fwyaf, dan lwyth brig, felly dilyswch nhw ar raddfa realistig: gall amddiffynfa sy’n gweithio gyda deg defnyddiwr fethu o hyd gyda deng mil. Parwch nhw â phatrymau gwydnwch pennod 3.5, yn enwedig terfynau amser a thorwyr cylched, fel bod eich haen storfa, pan fo’r tarddiad yn wirioneddol araf, yn ei amddiffyn yn hytrach na phentyrru arno. Y nod yw storfa sy’n ymddwyn orau dan bwysau, nid un sy’n mwyhau pigyn yn doriad.

Dewis patrwm ysgrifennu yn fwriadol

Mae sut rydych yn trin ysgrifennu yn penderfynu pa mor ffres y mae eich storfa’n aros a faint rydych yn ei fentro ar fethiant. Mae pedwar patrwm cyffredin. Yn storfa-ochr (llwytho diog), mae’r cymhwysiad yn gwirio’r storfa, ac ar gamargraffiad yn darllen y tarddiad, yn llenwi’r storfa, ac yn dychwelyd y gwerth; mae ysgrifeniadau’n mynd i’r tarddiad ac yn dirymu’r cofnod. Dyma’r rhagosodiad am reswm da: syml, a’r storfa’n dal dim ond yr hyn a ofynnir amdano. Mewn ysgrifennu-drwodd, mae pob ysgrifeniad yn mynd i’r storfa a’r tarddiad gyda’i gilydd, fel bod y storfa bob amser yn gyfredol, ar draul oedi ysgrifennu a storio data na fydd efallai byth yn cael ei ddarllen. Mewn ysgrifennu-nôl (write-behind), mae ysgrifeniadau’n taro’r storfa yn gyntaf ac yn fflysio i’r tarddiad yn anghydamserol, gan wneud ysgrifeniadau’n gyflym ond gan fentro colled os bydd y storfa’n marw cyn y fflysio. Mewn ysgrifennu-o-gwmpas, mae ysgrifeniadau’n mynd yn syth i’r tarddiad ac yn osgoi’r storfa, gan osgoi corddi rhag data trwm ei ysgrifennu sy’n anaml ei ddarllen, ar draul camargraffiad gwarantedig ar y darlleniad cyntaf.

Dewiswch fesul llwyth gwaith, nid unwaith ar gyfer y system gyfan. Mae catalog trwm ei ddarllen yn addas i storfa-ochr neu ysgrifennu-drwodd. Mae log neu ffrwd fetrigau trwm eu hysgrifennu yn addas i ysgrifennu-o-gwmpas, fel nad yw’r storfa’n cael ei chorddi gan ddata nad oes neb yn ei ailddarllen. Mae ysgrifennu-nôl yn addas i ysgrifeniadau cynhyrchedd uchel lle mae risg fach, ddealledig o golled yn dderbyniol a bod parhauster yn cael ei drin mewn man arall. Nodwch y patrwm ar gyfer pob storfa’n benodol, oherwydd bydd darllenydd sy’n tybio storfa-ochr pan fo’r cod yn gwneud ysgrifennu-nôl yn camfarnu ffresni ac ymddygiad methiant fel ei gilydd.

Paru polisi dadleoli â’ch patrwm mynediad

Mae gan storfa faint sefydlog, felly pan fydd yn llenwi, rhaid i rywbeth fynd. Mae’r polisi dadleoli’n penderfynu beth. Mae a ddefnyddiwyd leiaf yn ddiweddar (LRU) yn dadleoli’r cofnod na chyffyrddwyd ag ef hiraf, gan fetio bod defnydd diweddar yn rhagfynegi defnydd yn y dyfodol, ac mae’n rhagosodiad synhwyrol. Mae a ddefnyddiwyd leiaf yn aml (LFU) yn dadleoli’r cofnod â’r nifer lleiaf o drawiadau, sy’n addas i setiau poeth sefydlog lle mae ychydig o eitemau’n barhaol boblogaidd ond gall lynu wrth gofnodion a oedd yn boeth unwaith ac na fyddant byth yn addasu. Mae amrywiadau megis LRU wedi’i segmentu a pholisïau addasol yn cymysgu diweddarwch ac amlder; mae cyntaf-i-mewn-cyntaf-allan a dod-i-ben syml yn seiliedig ar amser yn rhatach ond yn fwy pŵl.

Parwch y polisi â sut y cyrchir eich data: LFU neu bolisi ymwybodol o amlder ar gyfer set boeth fach sy’n anaml symud, LRU lle mae poblogrwydd yn symud dros amser fel gyda newyddion neu gynnwys sy’n tueddu. Beth bynnag a ddewiswch, meintiwch y storfa fel bod y set boeth yn ffitio, oherwydd mae storfa sy’n rhy fach i ddal y set waith yn “trasho”, gan ddadleoli cofnodion ychydig cyn eu bod eu hangen eto. Gwyliwch y gyfradd ddadleoli fel metrig dosbarth cyntaf, gan fod cynnydd sydyn fel arfer yn golygu bod y storfa’n rhy fach neu fod ffrwydrad allweddi’n ei darnio.

Defnyddio semanteg storio HTTP yn gywir

Mae gan y we fodel storio aeddfed, safonedig wedi’i adeiladu i mewn i HTTP, ac mae ei ddefnyddio’n dda yn rhoi i chi storio cleient a CDN am ddim. Y pennawd Cache-Control yw’r wyneb rheoli: mae max-age yn gosod hyd oes ffresni, mae public a private yn dweud a all storfeydd a rennir gadw’r ymateb, mae no-store yn gwahardd storio, ac mae stale-while-revalidate yn caniatáu gwasanaethu copi hen tra’n adnewyddu. Mae dilysu’n gadael i storfa wirio ffresni’n rhad heb ail-nôl y corff. Mae ETag (tag endid) yn ddynodwr fersiwn didreiddiad y mae’r gweinydd yn ei atodi i ymateb; mae’r cleient yn ei anfon yn ôl mewn pennawd If-None-Match, ac mae’r gweinydd yn ateb 304 Not Modified heb gorff os na newidiodd dim. Mae Last-Modified gyda If-Modified-Since yn gwneud yr un peth gan ddefnyddio stampiau amser.

Y ddisgyblaeth ymarferol yw bod yn benodol. Gosodwch Cache-Control ar bob ymateb yn hytrach na gadael i storfeydd ddyfalu â heuristigau. Marciwch ymatebion preifat, y-defnyddiwr fel private neu no-store fel na fydd dirprwy a rennir byth yn eu storio, camgymeriad cyffredin a pheryglus. Defnyddiwch URLau fersiynau gyda max-age hir a’r cyfarwyddyd immutable ar gyfer asedau statig, a dilysu ag ETagiau ar gyfer cynnwys sy’n newid yn anrhagweladwy. Mae cael y penawdau hyn yn gywir yn troi’r haen gyfan cleient a CDN yn storfa gywir, seiliedig ar safonau na fu’n rhaid i chi ei hadeiladu.

Gwthio gwaith at yr ymyl gyda CDNau a chyfrifiadura ymyl

Dechreuodd CDN fel ffordd o storio ffeiliau statig yn agos at ddefnyddwyr, ac mae’n dal i wneud hynny’n rhagorol: delweddau, sgriptiau, fideo, a lawrlwythiadau wedi’u gweini o leoliad ymyl filieiliadau i ffwrdd yn hytrach na tharddiad pell. Mae CDNau modern yn mynd ymhellach. Maent yn storio cynnwys deinamig a phersonoledig ag allweddi manwl, yn terfynu TLS wrth yr ymyl, yn amsugno pigau traffig ac ymosodiadau gwrthod gwasanaeth dosranedig, ac yn cynyddol yn rhedeg eich cod. Mae cyfrifiadura ymyl yn gweithredu rhesymeg yn y lleoliadau ymyl eu hunain, fel y gellwch bersonoli ymateb, gwirio awdurdodiad, neu gydosod darn tudalen heb daith gron i ranbarth canolog.

Pwyswch ar hyn ar gyfer y darlleniadau sy’n dominyddu’r rhan fwyaf o systemau. Rhowch asedau statig y tu ôl i’r CDN ag URLau fersiynau hirhoedlog, storiwch ymatebion API wrth yr ymyl lle mae ffresni’n caniatáu (wedi’u hallweddu’n ofalus fel nad yw personoli’n gollwng), a defnyddiwch gyfrifiadura ymyl ar gyfer rhesymeg ysgafn, sensitif i oedi yn agos at ddefnyddwyr. Y cyfaddawd yw cyrhaeddiad yn erbyn rheolaeth: mae’r ymyl yn gyflym ac yn agos ond yn bell o’ch data ac yn anos ei ddadfygio, felly cadwch unrhyw beth sy’n gofyn cysondeb cryf neu gyflwr awdurdodol ffres yn y tarddiad a gadewch i’r ymyl drin y traffig darllen enfawr, y gellir ei storio.

Trin y storfa fel arwyneb ymosod

Mae storfa’n gwasanaethu’r un ymateb wedi’i storio i lawer o ddefnyddwyr, sy’n ei gwneud yn darged. Mae gwenwyno storfa yn ymosodiad lle mae cais wedi’i grefftio fel bod y storfa’n storio ymateb niweidiol neu wedi’i reoli gan ymosodwr ac yna’n ei wasanaethu i bawb sy’n dilyn. Mae fel arfer yn ecsbloetio mewnbwn heb-ei-allweddu: pennawd y mae’r cymhwysiad yn ei adlewyrchu yn yr ymateb ond y mae’r storfa’n ei anwybyddu wrth adeiladu’r allwedd. Mae’r ymosodiad twyll storfa gwe cysylltiedig yn twyllo storfa i storio ymateb preifat dioddefwr o dan URL cyhoeddus. Mae’r ddau’n fethiannau allweddu ac ymddiried mewn mewnbynnau, wedi’u trafod yn fwy eang ym mhennod 4.2.

Amddiffynnwch yn fwriadol. Cynhwyswch yn yr allwedd storfa bob mewnbwn a all newid yr ymateb, a gwrthodwch adlewyrchu penawdau heb-eu-hallweddu i gyrff wedi’u storio. Peidiwch byth â gadael i storfa a rennir storio ymatebion wedi’u dilysu, y-defnyddiwr o dan allwedd a rennir. Normaleiddiwch a dilyswch lwybrau a pharamedrau ceisiadau cyn storio. Gosodwch Vary yn gywir fel bod storfeydd yn rhannu ymatebion yn ôl y penawdau sydd wir yn bwysig, megis amgodiad cynnwys neu iaith. Gan fod un cofnod gwenwynig yn niweidio pob defnyddiwr i lawr yr afon, triniwch ffurfweddiad storfa fel cod sensitif i ddiogelwch a’i adolygu felly.

Gwneud ymddygiad storfa’n arsylladwy

Ni allwch reoli storfa na allwch ei gweld. Y metrig pennawd yw’r gyfradd trawiadau: y gyfran o geisiadau a wasanaethir o’r storfa yn hytrach na’r tarddiad. Gall cyfradd trawiadau sy’n gostwng yn dawel o 95 i 70 y cant amlhau llwyth tarddiad sawl gwaith a rhagflaenu toriad, a dim ond os gwyliwch chi hi y gwnewch ei dal yn gynnar. Offeryniwch bob haen ar wahân, gan y gall cyfradd trawiadau iach CDN guddio cyfradd trawiadau storfa gymhwysiad sy’n cwympo oddi tani. Dyma wyneb penodol-i-storio arferion arsylladwyedd pennod 9.2.

Traciwch fwy na thrawiadau: cyfradd ddadleoli a phwysau cof i ddal tanfeintio, oedi ar bob haen i gadarnhau bod y storfa wir yn gyflymach, cyfradd cais tarddiad i weld faint o lwyth mae’r storfa’n ei amsugno, a hendod (pa mor hen yw’r cofnodion a wasanaethir) i gadarnhau eich bod yn anrhydeddu eich addewidion ffresni. Rhybuddiwch ar y cymarebau sy’n rhagfynegi trafferth, yn enwedig cyfradd trawiadau sy’n gostwng neu gyfradd ddadleoli sy’n codi, fel eich bod yn dysgu am storfa sy’n dirywio o ddangosfwrdd yn hytrach nag oddi wrth ddefnyddwyr. Mae storfa a arsylwir yn ased y gellwch ei diwnio; mae un na arsylwir yn ddibyniaeth guddiedig sy’n aros i’ch synnu.

Cyfaddawdau: manteision ac anfanteision

Mae storio dros dro’n prynu cyflymder a graddfa ag arian cyfred ffresni a chymhlethdod. Mae pob storfa’n fet bod hen-ond-cyflym yn curo ffres-ond-araf ar gyfer y data penodol hwn, a’r grefft yw gosod y bet honno’n ymwybodol yn hytrach nag yn ddiofyn. Mae’r tabl isod yn crynhoi’r prif ddewisiadau.

DewisManteisionAnfanteision
Storfa-ochrSyml; dim ond yr hyn a ddarllenir a storirMae’r darlleniad cyntaf bob amser yn methu; risg o hendod byr ar ôl ysgrifennu
Ysgrifennu-drwoddStorfa bob amser yn gyfredol ar ysgrifennuYsgrifennu arafach; storio data na fydd efallai byth yn cael ei ddarllen
Ysgrifennu-nôlYsgrifennu cyflym iawn; amsugno byrstiauRisg colli data os bydd y storfa’n methu cyn fflysio
Ysgrifennu-o-gwmpasOsgoi corddi’r storfa â data trwm ei ysgrifennuCamargraffiad gwarantedig ar y darlleniad cyntaf
TTL byrHendod ffiniedig, bachCyfradd trawiadau is; mwy o lwyth tarddiad
TTL hir / allweddi fersiynauCyfradd trawiadau uchel; llwyth tarddiad iselHendod oni ddirymir; angen allweddi disgybledig
CDN ac ymylOedi isel byd-eang; amsugno pigauPell o’r data; anos ei ddadfygio a’i ddirymu
Dadleoli LRUAddasu i boblogrwydd sy’n symudGall ddadleoli set boeth sefydlog dan lwyth trwm-sganio
Dadleoli LFUAmddiffyn set boeth sefydlogAraf i addasu; yn glynu wrth gofnodion a oedd yn boeth gynt

Y tyndra sy’n dychwelyd yw cysondeb yn erbyn perfformiad. Mae storfa â TTL hir a chyfradd trawiadau uchel yn gyflym ac yn rhad ac yn gallu gwasanaethu data hen; mae storfa â TTL byr a dirymu ymosodol yn ffres ac yn gywir ac yn gweithio’r tarddiad yn galetach. Nid oes ateb cywir cyffredinol, dim ond ateb cywir fesul darn o ddata, wedi’i osod gan ei oddefiant go iawn i hendod. Yr ail dyndra yw symlrwydd yn erbyn cyrhaeddiad: mae storfa gymhwysiad yn agos at eich data ac yn hawdd ei resymu, tra bo’r ymyl yn bell, yn gyflym, ac yn anos ei ddirymu. Datryswch y ddau drwy ddosbarthu eich data yn ôl angen ffresni a chyfaint darllen, yna gosod a ffurfweddu pob dosbarth yn fwriadol.

Cwestiynau i’w trafod gyda’ch tîm

  1. Beth yw goddefiant hendod go iawn pob math o ddata a storiwn, ac a ydym wedi gosod TTLau a dirymu o’r goddefiant hwnnw yn hytrach nag o arferiad? Mae’r rhan fwyaf o dimau’n storio â TTL a ddewiswyd gan rywun unwaith ac na chafodd ei ailedrych, felly gwasenir rhywfaint o ddata’n hennach nag y gall y busnes ei dderbyn tra bo data arall yn dod i ben mor ymosodol fel bod y storfa prin yn helpu. Dewch â’ch deg adnodd storiedig mwyaf poblogaidd ac, ar gyfer pob un, gofynnwch i’r bobl sy’n berchen ar y data hwnnw pa mor hen y caiff fod yn ddiogel: eiliadau, munudau, oriau, neu byth unwaith y’i cyhoeddir. Fel arfer fe welwch fod yr atebion yn amrywio’n eang ac nad yw eich TTLau presennol yn cyfateb iddynt. Y canlyniad a ddymunwch yw dosbarthiad ffresni byr, pob dosbarth wedi’i fapio i ddull (TTL byr, TTL hir ynghyd â phuro, neu allweddi anghyfnewidiol wedi’u fersiynu), fel bod penderfyniadau storio’n dilyn semanteg data yn hytrach na dyfalu.

  2. Pe bai ein cofnod storfa mwyaf poblogaidd yn dod i ben ar hyn o bryd dan draffig brig, beth fyddai’n digwydd i’r tarddiad? Mae’r cwestiwn hwn yn datgelu a oes gennych amddiffyniad rhuthr go iawn neu ddim ond gobaith. Mae llawer o systemau’n rhedeg yn iawn nes bod allwedd boeth yn dod i ben yn ystod pigyn traffig a phob cais yn rhuthro’r gronfa ddata ar unwaith, gan droi’r storfa o darian yn sbardun. Ewch drwy’r llwybr yn benodol ar gyfer eich pwynt terfyn prysuraf: a oes cydgrynhoi ceisiadau fel mai dim ond un camargraffiad sy’n cyrraedd y tarddiad, a oes amrywiad ar hap fel nad yw cofnodion yn dod i ben ar yr un pryd, a oes polisi gwasanaethu-hen-tra’n-adnewyddu fel nad yw defnyddwyr byth yn aros am ailgyflenwad? Dewch â thystiolaeth prawf llwyth, nid greddf, oherwydd gall amddiffyniad rhuthr sy’n dal gyda deg defnyddiwr gwympo o hyd gyda deng mil. Os na allwch ateb yn hyderus, mae eich buddsoddiad gwydnwch nesaf newydd eich canfod chi.

  3. Ydym ni’n siŵr nad yw unrhyw storfa a rennir byth yn storio data preifat un defnyddiwr o dan allwedd y gall defnyddiwr arall ei tharo? Dyma’r camgymeriad storio sy’n troi’n ddigwyddiad diogelwch ac yn bennawd papur newydd. Mae’n digwydd pan storir ymateb personoledig neu wedi’i ddilysu o dan allwedd sy’n hepgor hunaniaeth y defnyddiwr, neu pan fo pennawd Cache-Control a fwriadwyd i gadw ymateb yn breifat ar goll, fel bod dirprwy neu CDN a rennir yn ei storio ac yn ei wasanaethu i’r person nesaf. Archwiliwch pa ymatebion sy’n storadwy ar haenau a rennir, cadarnhewch fod pob ymateb y-defnyddiwr wedi’i farcio’n private neu’n no-store, a chadarnhewch fod pob allwedd storfa’n cynnwys pob mewnbwn sy’n newid yr ymateb. Trin hyn fel adolygiad diogelwch, oherwydd radiws y ffrwydrad yw pob defnyddiwr i lawr yr afon, a chysylltwch ef ag arferion pennod 4.2.

  4. Pa batrwm ysgrifennu y mae pob un o’n storfeydd wir yn ei ddefnyddio, ac a ddewisodd unrhyw un ef yn fwriadol? Mae storfa-ochr, ysgrifennu-drwodd, ysgrifennu-nôl, ac ysgrifennu-o-gwmpas yn gwneud addewidion dirgroes am ffresni ac am yr hyn a gollwch pan fydd y storfa’n methu, ac eto yn y rhan fwyaf o gronfeydd cod y patrwm yw beth bynnag a gopïodd yr awdur cyntaf. I dîm mawr mae hyn yn bwysig oherwydd gall un gwasanaeth sy’n tybio ffresni storfa-ochr tra bo un arall yn dawel yn rhedeg ysgrifennu-nôl gynhyrchu data sy’n edrych wedi’i lygru ond sydd ddim ond yn hen, a bydd y peiriannydd ar-alwad yn gwastraffu oriau’n hela ysbryd. Dewch â rhestr fesul-storfa: y patrwm ysgrifennu, y ffresni y mae’n ei warantu, a’r hyn sy’n digwydd i ysgrifeniadau heb eu fflysio os bydd y broses yn marw. Lle mae unrhyw storfa’n defnyddio ysgrifennu-nôl, dewch â’r stori parhauster sy’n ei chefnogi. Mewn systemau menter a llywodraeth sy’n trin data ariannol neu gofnodion, mae storfa ysgrifennu-nôl heb warant gefnogol yn ganfyddiad archwiliad yn aros i ddigwydd, felly dylai’r drafodaeth orffen â phatrwm pob storfa wedi’i enwi, ei gyfiawnhau, a’i ysgrifennu i lawr.

  5. Pan fyddwn yn defnyddio neu’n newid data, a yw pob haen storfa berthnasol yn dirymu’n gywir, neu a ydym yn dibynnu ar rywun yn cofio puro? Dirymu yw’r rhan anodd, a’r modd methiant yw distaw: gwerth a gywirwyd sy’n aros yn anghywir am oriau oherwydd na chafodd un haen o’r hierarchaeth, CDN, dirprwy gwrthdro, neu storfa gymhwysiad, y neges byth. Mae sefydliad mawr yn lluosi’r risg hon, oherwydd gall un newid rhesymegol angen lledaenu ar draws llawer o storfeydd mewn llawer o ranbarthau sy’n eiddo i dimau gwahanol. Dewch â thrasiad concrid o un newid data diweddar a’i ddilyn drwy bob haen storfa, gan ofyn ym mhob un: beth a sbardunodd ddirymu yma, a faint o amser gymerodd? Ffafriwch ddyluniadau sy’n troi dirymu’n enwi (allweddi fersiynau) neu’n ddigwyddiadau (mae newid yn cyhoeddi puro) dros lawlyfrau rhedeg â llaw. Mewn systemau sector cyhoeddus lle gall ffigwr cyhoeddedig anghywir, cyfradd dreth neu swm budd-dal, gario pwysau cyfreithiol, nid niwsans yw bwlch dirymu ond datguddiad cydymffurfiaeth, felly dylai’r canlyniad fod yn lwybr dirymu wedi’i fapio ar gyfer pob dosbarth o ddata wedi’i storio.

  6. Ydym ni’n trin storio dros dro fel seilwaith platfform a rennir, neu a yw pob tîm yn ailddyfeisio allweddi, dirymu, ac amddiffyniad rhuthr ar eu pen eu hunain? Mae storio dros dro a wneir yn dda yn set fach o broblemau anodd wedi’u datrys unwaith: allweddi wedi’u normaleiddio, dirymu wedi’i yrru gan ddigwyddiad, cydgrynhoi ceisiadau, semanteg HTTP gywir, ac arsylladwyedd fesul haen. Pan fydd pob tîm yn gwella’r rhain, mae sefydliad mawr yn talu am yr un camgymeriadau dro ar ôl tro, ac mae nam gwenwyno neu ollyngiad data preifat a drwsiwyd mewn un gwasanaeth yn parhau’n dawel mewn deg arall. Dewch â map gonest o bwy sy’n berchen ar gonfensiynau storio heddiw a faint o god storio dyblyg sy’n bodoli ar draws gwasanaethau. Yr ystyriaeth gystadleuol yw ymreolaeth: mae timau’n gwrthwynebu llyfrgell a rennir orfodol, felly pwyswch ragosodiad ffordd-balmantog sy’n hawdd ei fabwysiadu yn erbyn safon galed sy’n cael ei gorfodi. I grŵp platfform menter neu lywodraeth, gallu storio a rennir, wedi’i brofi’n dda yw hefyd y ffordd rataf o wneud i ofynion diogelwch ac archwilio ddal yn unffurf, felly dylai’r drafodaeth benderfynu beth sy’n dod yn seilwaith a rennir a phwy sy’n ei ariannu.

Lens sector

Cwmni newydd (startup). Storio dros dro yw’r llwybr rhataf i chi oroesi pigyn traffig na allwch fforddio graddio ar ei gyfer eto, felly treuliwch yr ychydig amser sydd gennych ar ychydig o osodiadau grymus iawn: CDN ag URLau fersiynau ar gyfer asedau statig, a haen storfa-ochr sengl â TTLau byr ac amrywiad ar hap o flaen eich ymholiad poethaf. Pwyswch ar wasanaethau CDN a storio wedi’u rheoli yn hytrach na rhedeg eich un eich hun, ac ychwanegwch gydgrynhoi ceisiadau’n gynnar, oherwydd mae rhuthr diwrnod-lansio yn erbyn cronfa ddata fach yn fethiant mwyaf tebygol o orffen diwrnod da yn ddrwg. Hepgorwch gynlluniau dirymu cywrain nes bod gennych ddata’n dweud wrthych eu bod yn bwysig.

Busnes bach. Heb arbenigwr storio a chyllideb dynn, ffafriwch brynu storio a gewch am ddim y tu mewn i offer rydych eisoes yn eu rhedeg: CDN wedi’i fwndelu â’ch cynhaliaeth, penawdau Cache-Control HTTP ar ymatebion eich fframwaith gwe, a chache ymholiad adeiledig eich cronfa ddata. Mae’r alwad adeiladu-yn-erbyn-prynu bron bob amser o blaid prynu yma, gan fod storfa wedi’i chamallweddu sy’n gollwng data un cwsmer i un arall yn costio llawer mwy na’r gwasanaeth rheoledig a osgowyd. Cywirwch y ddwy fuddugoliaeth rad, penawdau HTTP cywir a byth storio tudalennau wedi’u dilysu ar haenau a rennir, a gadewch y patrymau egsotig yn llonydd.

Menter. Ar raddfa ar draws llawer o dimau mae’r risg yn symud o unrhyw storfa unigol i anghysondeb rhyngddynt: cynlluniau allwedd sy’n gwahaniaethu, dirymu anghyson, a gollyngiadau data preifat sy’n ymddangos mewn un gwasanaeth ac nid mewn un arall. Darparwch storio fel seilwaith platfform a rennir gyda rhagosodiadau ffordd-balmantog ar gyfer allweddi, dirymu, amddiffyniad rhuthr, ac arsylladwyedd fesul haen, fel bod cyfradd trawiadau, dadleoli, a hendod yn weladwy mewn un lle ac wedi’u llywodraethu’n unffurf. Gwnewch ffurfweddiad storfa’n adolygadwy fel cod sensitif i ddiogelwch, a thriniwch ddirymu ar draws rhanbarthau fel problem ddylunio dosbarth cyntaf yn hytrach na llawlyfr rhedeg fesul tîm.

Llywodraeth. Mae cyfyngiadau caffael a thryloywder yn siapio beth y gallwch ei storio a sut y gallwch brofi ei fod yn ddiogel. Storiwch gynnwys cyhoeddus yn ymosodol, canllawiau, ffurflenni, a thablau cyfradd y tu ôl i CDN â TTLau hir, fel bod pigyn dyddiad cau ffeilio’n cael ei amsugno ymhell o’r tarddiad, a dogfennwch y ffurfweddiad hwnnw ar gyfer archwilio. Ni ddylai tudalennau wedi’u dilysu sy’n dangos cofnodion dinesydd ei hun byth gyffwrdd â storfa a rennir, a dylai’r rheol honno fod yn wiriadwy, nid dim ond wedi’i honni. Lle mae CDN neu wasanaeth storio’n cael ei gaffael gan werthwr, mynnwch fod y contract yn datgelu’r rheolyddion sydd eu hangen arnoch (allweddu, puro, a chofnodi) ac osgowch glymu a fyddai’n dal data cyhoeddus y tu ôl i fformatau storio perchnogol.

Enghreifftiau

Cwmni newydd. Mae ap defnyddwyr bach yn rhedeg ei gatalog cynnyrch drwy haen storfa-ochr wedi’i chefnogi gan siop mewn-cof, gyda TTL 60 eiliad ac amrywiad ar hap fel nad yw cofnodion yn dod i ben gyda’i gilydd. Mae asedau statig yn mynd i CDN ag enwau ffeil fersiynau a max-age blwyddyn, fel bod defnyddiad sy’n newid taflen arddull yn gwasanaethu URL newydd a byth angen puro. Pan fydd lansiad ar bodlediad poblogaidd yn anfon pigyn traffig, mae cydgrynhoi single-flight yn golygu bod y miloedd o gamargraffiadau tudalen gartref ar yr un pryd yn achosi un darlleniad cronfa ddata, nid miloedd. Mae’r sylfaenwyr yn gwario bron dim ar storio ac eto’n trin pigyn a fyddai wedi toddi eu cronfa ddata fach, oherwydd iddynt osod ychydig o storfeydd wedi’u dewis yn dda yn fwriadol.

Menter. Mae manwerthwr byd-eang yn gwasanaethu miliynau o siopwyr drwy storfa haenog: CDN ar gyfer delweddau ac ymatebion API storadwy, storfa dirprwy gwrthdro a rennir ym mhob rhanbarth, a storfa gymhwysiad ar gyfer prisio wedi’i gyfrifo a darnau stoc. Mae allweddi storfa wedi’u normaleiddio ac yn cynnwys arian cyfred, iaith, a dosbarth dyfais, fel na fydd personoli byth yn gollwng ac mae cyfraddau trawiadau’n aros yn uchel. Mae data cynnyrch yn defnyddio TTLau byr gyda dirymu wedi’i yrru gan ddigwyddiad, fel bod newid pris yn cyhoeddi i fws negeseua sy’n puro’r allweddi yr effeithir arnynt ar draws rhanbarthau o fewn eiliadau. Mae pob haen yn adrodd cyfradd trawiadau, cyfradd ddadleoli, a hendod i’r platfform arsylladwyedd ym mhennod 9.2, ac unwaith fe wnaeth rhybudd ar gyfradd trawiadau sy’n gostwng ddal storfa danfeintiedig cyn iddi ddod yn doriad wrth y ddesg dalu.

Llywodraeth. Mae asiantaeth dreth genedlaethol yn rhedeg porth ffeilio sy’n dawel am y rhan fwyaf o’r flwyddyn ac wedi’i lethu yn agos at y dyddiad cau. Mae’r tîm yn storio’n ymosodol lle mae’n ddiogel a byth lle nad yw. Gwasanaethir cynnwys cyhoeddus (tudalennau canllaw, ffurflenni, tablau cyfradd) o CDN â TTLau hir ac URLau fersiynau, gan amsugno pigyn darllen diwrnod-y-dyddiad-cau ymhell o’r tarddiad. Mae tudalennau wedi’u dilysu sy’n dangos ffeilio dinesydd ei hun wedi’u marcio’n no-store ac ni fyddant byth yn cyffwrdd â storfa a rennir, fel na wasanaethir byth i unrhyw drethdalwr ddata un arall. Adolygir ffurfweddiad storfa fel cod sensitif i ddiogelwch yn erbyn arferion pennod 4.2, a phrofir amddiffyniad rhuthr ar raddfa dyddiad-cau fisoedd ymlaen llaw, fel bod y porth a arferai blygu ar ddiwrnod prysuraf y flwyddyn bellach yn dal.

Achos busnes: cymhellion, ROI, a TCO

Mae’r enillion ar storio dros dro’n anarferol o uniongyrchol ac yn hawdd eu meintioli. Mae storfa sy’n codi cyfradd trawiadau o 80 i 95 y cant yn torri traffig tarddiad gan dri-chwarter, a all olygu gohirio uwchraddiad cronfa ddata, rhedeg llai o weinyddion cymhwysiad, neu oroesi pigyn traffig a fyddai fel arall wedi mynnu graddio brys. Mae gwelliannau oedi’n trosi’n refeniw mewn masnach ac yn foddhad a chyfraddau cwblhau mewn gwasanaethau cyhoeddus, lle mae ymchwil ers tro wedi cysylltu tudalennau cyflymach â throsiad uwch a llai o adael. Mae costau allanfa a chyfrifiadura’n gostwng oherwydd na fydd cais a wasanaethir o’r ymyl byth yn talu am led band na phrosesu tarddiad. Ar gyfer systemau trwm eu darllen, sef y rhan fwyaf o systemau, storio dros dro yn aml yw’r perfformiad rhataf y gellwch ei brynu.

Pwyswch gyfanswm cost perchnogaeth yn onest. Mae’r costau uniongyrchol yn fach: mae seilwaith CDN a storio’n rhad o’i gymharu â’r capasiti tarddiad y mae’n ei arbed. Y gost go iawn yw disgyblaeth beirianneg, oherwydd mae storfa sy’n anghywir yn waeth na dim storfa. Mae namau hendod, camgymeriadau dirymu, a bregusrwyddau gwenwyno storfa i gyd yn cario cost go iawn, ac maent yn tyfu pan storir yn wella fesul tîm yn lle ei ddarparu fel gallu a rennir, wedi’i brofi’n dda. Mae’r achos busnes cryfaf yn ariannu ychydig o seilwaith a chonfensiwn storio a rennir (allweddi safonol, dirymu, amddiffyniad rhuthr, ac arsylladwyedd) fel bod pob tîm yn cael y budd heb ailadrodd y camgymeriadau. Wedi’i fframio ar gyfer arweinyddiaeth, mae storio dros dro’n cysylltu â metrigau y maent eisoes yn eu tracio: cost seilwaith, oedi tudalen, cyfraddau trosiad a chwblhau, a mynychder digwyddiadau yn ystod digwyddiadau brig.

Gwrth-batrymau a pheryglon

  • Storio heb ddirymu: gosod TTL hir heb ffordd i buro, fel bod gwerth a gywirwyd yn aros yn anghywir am oriau.
  • Allweddi’n rhy fras: storio ymatebion personoledig o dan allwedd a rennir, gan ollwng data un defnyddiwr i un arall.
  • Allweddi’n rhy fân: cynnwys mewnbynnau anwadal yn yr allwedd fel nad oes dau gais byth yn cyfateb a bod y gyfradd trawiadau’n cwympo.
  • Dim amddiffyniad rhuthr: allwedd boeth yn dod i ben dan lwyth a phob cais yn rhuthro’r tarddiad ar unwaith.
  • Dod i ben cydamseredig: swp o gofnodion a ysgrifennwyd gyda’i gilydd i gyd yn dod i ben yr un eiliad heb amrywiad ar hap, gan achosi rhuthr cyfnodol.
  • Storio data preifat ar haenau a rennir: methu cynnwys Cache-Control: private neu no-store, fel bod dirprwy neu CDN yn storio ymatebion wedi’u dilysu.
  • Anwybyddu mewnbynnau heb-eu-hallweddu: adlewyrchu pennawd i gorff yr ymateb ond ei hepgor o’r allwedd, gan agor y drws i wenwyno storfa.
  • Storfa danfeintiedig: storfa’n rhy fach i ddal y set waith yn “trasho” ac yn dadleoli cofnodion ychydig cyn eu bod eu hangen.
  • Storfa na fesurir: dim metrig cyfradd trawiadau na dadleoli, fel bod storfa’n dirywio’n anweledig nes iddi ddod yn doriad.
  • Ysgrifennu-nôl heb barhauster: ysgrifeniadau cyflym sy’n diflannu pan fydd y storfa’n marw cyn fflysio, heb warant gefnogol.

Model aeddfedrwydd

  • Lefel 1, Cychwyn: Mae storio dros dro’n ad hoc ac fesul datblygwr, wedi’i ychwanegu’n adweithiol pan fo rhywbeth yn teimlo’n araf. Mae TTLau’n cael eu dyfalu, allweddi’n anghyson, dirymu â llaw neu ddim yn bodoli, a data hen a namau dirgel yn gyffredin. Nid oes neb yn tracio cyfradd trawiadau, a phigyn traffig y dylai storfa fod wedi’i amsugno’n achosi toriad yn lle hynny.
  • Lefel 2, Datblygu: Mae timau’n storio mewn lleoedd amlwg ac yn defnyddio CDN ar gyfer asedau statig. Mae TTLau sylfaenol a storfa-ochr yn ymddangos, ond mae confensiynau’n amrywio o wasanaeth i wasanaeth, mae dirymu’n anghyson, mae amddiffyniad rhuthr ar goll, mae rheolau storio preifat-yn-erbyn-a-rennir yn anffurfiol, ac mae arsylladwyedd wedi’i gyfyngu i wiriadau smotyn achlysurol.
  • Lefel 3, Safoni: Mae strategaeth storio wedi’i dogfennu a’i gorfodi ar draws y sefydliad. Mae allweddi storfa wedi’u normaleiddio, mae TTLau’n dilyn dosbarthiad ffresni a rennir, mae dirymu wedi’i yrru gan ddigwyddiad lle mae’n bwysig, mae amddiffyniad rhuthr a semanteg HTTP gywir yn safonol, ni storir data preifat byth ar haenau a rennir, ac mae pob haen yn adrodd cyfradd trawiadau a dadleoli i biblinell arsylladwyedd gyffredin.
  • Lefel 4, Rheoli: Mae storio dros dro’n cael ei fesur a’i reoli yn erbyn llinellau sylfaen. Mae gan bob haen gyfraddau trawiadau targed, cyllidebau hendod, a throthwyon dadleoli, ac mae dangosfyrddau’n rhybuddio pan fydd cyfradd trawiadau’n gostwng neu gyfradd ddadleoli’n codi heibio ei llinell sylfaen. Profir amddiffynfeydd rhuthr ar raddfa brig, meintiolir gostyngiad llwyth tarddiad fesul storfa, tiwniwyd TTLau a pholisïau dadleoli o batrymau mynediad a fesurwyd, ac adolygir ffurfweddiad storfa fel cod sensitif i ddiogelwch cyn rhyddhau.
  • Lefel 5, Cydgysylltu: Mae storio dros dro’n cael ei wella’n barhaus a’i integreiddio ar draws y sefydliad. Mae gosodiad, allweddi, a TTLau’n addasu i draffig sy’n symud, defnyddir cyfrifiadura ymyl lle mae’n ennill ei le, mae cynllunio capasiti a modelau cost yn tynnu ar fetrigau storfa, ac mae gwersi o ddigwyddiadau un tîm yn bwydo confensiynau a rennir. Mae’r sefydliad yn trin storio dros dro fel gallu wedi’i ddylunio, ei fesur, ac yn addasol yn hytrach na chasgliad o hacs lleol.

Syniadau ar gyfer trafodaeth

  1. Pa storfa unigol yn eich system, pe bai’n oeri ar hyn o bryd, fyddai’n peryglu eich tarddiad fwyaf, a beth sy’n ei hamddiffyn?
  2. Ar gyfer pob haen o’ch hierarchaeth storfa, allwch chi enwi ei chyfradd trawiadau bresennol o’ch cof, ac os na allwch, beth mae hynny’n ei ddweud wrthych?
  3. Ble rydych wedi troi problem dirymu’n broblem enwi ag allweddi fersiynau, a ble gallech chi wneud hynny o hyd?
  4. Pa un o’ch llwybrau ysgrifennu sy’n defnyddio storfa-ochr, ysgrifennu-drwodd, ysgrifennu-nôl, neu ysgrifennu-o-gwmpas, ac a ddewiswyd pob un yn fwriadol?
  5. Pe bai ymosodwr yn rheoli un pennawd cais, allent wenwyno unrhyw ymateb wedi’i storio y mae eich defnyddwyr yn ei rannu?
  6. Sut y byddech yn gwybod, o fewn munudau, fod eich cyfradd trawiadau wedi gostwng ugain pwynt yn dawel?

Prif gasgliadau

  • Mae storio dros dro’n torri oedi, llwyth, a chost, ac mae hierarchaeth y storfa (cleient, CDN ac ymyl, dirprwy gwrthdro, cymhwysiad, cronfa ddata) yn gadael i chi ateb mor bell i fyny ac allan ag y gellwch yn ddiogel.
  • Dirymu yw’r rhan anodd; dyluniwch allweddi storfa a TTLau yn fwriadol, a throwch broblemau dirymu’n broblemau enwi ag allweddi fersiynau lle bynnag y gellwch.
  • Amddiffynnwch y storfa dan lwyth â chydgrynhoi ceisiadau, amrywiad ar hap, a gwasanaethu-hen-tra’n-adnewyddu, oherwydd mae angen storfa fwyaf yn union pan allai rhuthr ei thorri.
  • Dewiswch batrymau ysgrifennu a pholisïau dadleoli fesul llwyth gwaith, a defnyddiwch semanteg storio HTTP (Cache-Control, ETagiau, dilysu) yn benodol yn hytrach na gadael i storfeydd ddyfalu.
  • Triniwch gynnwys wedi’i storio fel arwyneb ymosod a mesurwch gyfradd trawiadau, dadleoli, a hendod, oherwydd mae storfa na arsylwir neu wedi’i chamallweddu’n ddibyniaeth guddiedig, nid yn ased.

Cyfeiriadau a darllen pellach

  • Martin Kleppmann, Designing Data-Intensive Applications
  • Andrew S. Tanenbaum a Herbert Bos, Modern Operating Systems
  • John L. Hennessy a David A. Patterson, Computer Architecture: A Quantitative Approach
  • Roy T. Fielding a Julian Reschke, “Hypertext Transfer Protocol (HTTP/1.1): Caching,” RFC 7234, IETF
  • Mark Nottingham, “Caching Tutorial for Web Authors and Webmasters”
  • James Kettle, “Practical Web Cache Poisoning,” PortSwigger Research
  • Betsy Beyer, Chris Jones, Jennifer Petoff, a Niall Richard Murphy (goln.), Site Reliability Engineering: How Google Runs Production Systems
  • Michael T. Nygard, Release It! Design and Deploy Production-Ready Software