Durable Data Storage thiab Linux File APIs

Kuv, tshawb fawb txog kev ruaj ntseg ntawm cov ntaub ntawv khaws cia hauv huab cua, txiav txim siab los sim kuv tus kheej, kom paub tseeb tias kuv nkag siab txog yam tseem ceeb. Kuv pib los ntawm kev nyeem NVMe spec txhawm rau nkag siab txog qhov kev lees paub txog cov ntaub ntawv persistence (uas yog, lav tias cov ntaub ntawv yuav muaj tom qab lub kaw lus tsis ua haujlwm) muab NMVe disks rau peb. Kuv tau ua cov lus xaus hauv qab no: koj yuav tsum xav txog cov ntaub ntawv puas los ntawm lub sijhawm cov ntaub ntawv sau cov lus txib tau muab, thiab mus txog rau lub sijhawm lawv tau sau rau hauv nruab nrab cia. Txawm li cas los xij, nyob rau hauv feem ntau cov kev pab cuam, kev hu xov tooj yog siv tau zoo heev los sau cov ntaub ntawv.

Hauv tsab xov xwm no, kuv tshawb nrhiav cov txheej txheem txuas ntxiv muab los ntawm Linux cov ntaub ntawv APIs. Nws zoo nkaus li txhua yam yuav tsum yooj yim ntawm no: qhov kev zov me nyuam hu cov lus txib write(), thiab tom qab ua haujlwm ntawm cov lus txib no tiav, cov ntaub ntawv yuav raug muab khaws cia rau hauv disk. Tab sis write() tsuas yog luam cov ntaub ntawv thov mus rau kernel cache nyob hauv RAM. Txhawm rau yuam kom lub kaw lus sau cov ntaub ntawv rau disk, yuav tsum siv qee cov txheej txheem ntxiv.

Durable Data Storage thiab Linux File APIs

Feem ntau, cov ntaub ntawv no yog cov ntawv sau hais txog qhov kuv tau kawm ntawm lub ncauj lus uas kuv nyiam. Yog tias peb tham luv luv txog qhov tseem ceeb tshaj plaws, nws hloov tawm tias txhawm rau txhim kho cov ntaub ntawv ruaj khov, koj yuav tsum siv cov lus txib. fdatasync() los yog qhib cov ntaub ntawv nrog tus chij O_DSYNC. Yog tias koj xav paub ntau ntxiv txog dab tsi tshwm sim rau cov ntaub ntawv ntawm txoj kev los ntawm code mus rau disk, saib rau qhov no tsab xov xwm.

Cov yam ntxwv ntawm kev siv lub luag haujlwm write()

System hu write() txhais nyob rau hauv tus qauv IEEE POSIX raws li ib qho kev sim sau cov ntaub ntawv rau cov ntaub ntawv piav qhia. Tom qab ua tiav txoj haujlwm tiav write() cov ntaub ntawv nyeem cov haujlwm yuav tsum rov qab raws nraim cov bytes uas tau sau yav dhau los, ua li ntawd txawm tias cov ntaub ntawv raug nkag los ntawm lwm cov txheej txheem lossis xov (ntawm no cov seem ntawm tus qauv POSIX). nws yog, nyob rau hauv nqe lus ntawm kev sib cuam tshuam ntawm threads nrog cov ntaub ntawv ib txwm ua, muaj ib daim ntawv uas hais tias yog hais tias ob threads ib tug hu rau cov functions, ces txhua tus hu yuav tsum yog pom tag nrho cov kev tshwm sim hais tias kev tua ntawm lwm yam hu ua, los yog tsis pom txhua yam tsis muaj txim. Qhov no ua rau qhov xaus tias tag nrho cov ntaub ntawv I / O cov haujlwm yuav tsum tuav lub xauv ntawm cov peev txheej tau ua haujlwm.

Qhov no puas txhais tau tias kev ua haujlwm write() yog atomic? Los ntawm txoj kev xav, yog. Cov ntaub ntawv nyeem cov haujlwm yuav tsum rov qab los yog tag nrho lossis tsis muaj dab tsi tau sau nrog write(). Tab sis kev ua haujlwm write(), raws li tus qauv, tsis tas yuav xaus, tau sau txhua yam uas nws tau hais kom sau. Nws raug tso cai sau ib feem ntawm cov ntaub ntawv. Piv txwv li, peb yuav muaj ob lub kwj deg txhua qhov txuas ntxiv 1024 bytes rau cov ntaub ntawv piav qhia los ntawm tib cov ntaub ntawv piav qhia. Los ntawm qhov pom ntawm tus qauv, qhov tshwm sim yuav tau txais thaum txhua qhov kev sau ntawv tuaj yeem txuas ntxiv tsuas yog ib byte rau cov ntaub ntawv. Cov haujlwm no yuav nyob twj ywm atomic, tab sis tom qab lawv ua tiav, cov ntaub ntawv uas lawv sau rau hauv cov ntaub ntawv yuav jumbled. no nthuav kev sib tham txog lub ncauj lus no ntawm Stack Overflow.

fsync() thiab fdatasync() ua haujlwm

Txoj hauv kev yooj yim tshaj los yaug cov ntaub ntawv rau disk yog hu rau lub luag haujlwm fsync(). Qhov kev ua haujlwm no hais kom lub operating system txav tag nrho cov blocks hloov kho los ntawm cache mus rau disk. Qhov no suav nrog tag nrho cov metadata ntawm cov ntaub ntawv (lub sijhawm nkag mus, lub sijhawm hloov ntaub ntawv, thiab lwm yam). Kuv ntseeg tias cov metadata no tsis tshua xav tau, yog li yog tias koj paub tias nws tsis tseem ceeb rau koj, koj tuaj yeem siv cov haujlwm fdatasync(). Cov pab rau fdatasync() Nws hais tias thaum lub sijhawm ua haujlwm ntawm qhov kev ua haujlwm no, xws li tus lej ntawm cov metadata tau khaws cia rau disk, uas yog "tseem ceeb rau kev ua tiav ntawm cov ntaub ntawv nyeem hauv qab no." Thiab qhov no yog qhov uas feem ntau cov ntawv thov mob siab txog.

Ib qho teeb meem uas tuaj yeem tshwm sim ntawm no yog tias cov txheej txheem no tsis lav tias cov ntaub ntawv tuaj yeem pom tom qab qhov ua tsis tiav. Tshwj xeeb, thaum tsim cov ntaub ntawv tshiab, ib tus yuav tsum hu fsync() rau cov directory uas muaj nws. Txwv tsis pub, tom qab kev sib tsoo, nws yuav tig tawm tias cov ntaub ntawv no tsis muaj nyob. Yog vim li cas rau qhov no yog tias nyob rau hauv UNIX, vim yog siv cov kev sib txuas nyuaj, cov ntaub ntawv tuaj yeem muaj nyob hauv ntau cov npe. Yog li ntawd, thaum hu fsync() tsis muaj txoj hauv kev rau cov ntaub ntawv kom paub cov ntaub ntawv twg yuav tsum tau yaug mus rau disk (S, SΡ“S, koj tuaj yeem nyeem ntxiv txog qhov no). Nws zoo li ext4 filesystem muaj peev xwm cia li tau ua ntawv thov fsync() rau cov ntawv teev npe uas muaj cov ntaub ntawv sib xws, tab sis qhov no yuav tsis yog nrog lwm cov ntaub ntawv.

Cov txheej txheem no tuaj yeem siv sib txawv hauv cov ntaub ntawv sib txawv. kuv siv blktrace ua txhawm rau kawm txog cov haujlwm disk dab tsi siv hauv ext4 thiab XFS cov ntaub ntawv. Ob qhov teeb meem ib txwm sau cov lus txib rau disk rau ob qho tib si cov ntsiab lus ntawm cov ntaub ntawv thiab cov ntaub ntawv kaw lus kaw lus, yaug lub cache thiab tawm los ntawm kev ua FUA (Force Unit Access, sau cov ntaub ntawv ncaj qha rau disk, hla lub cache) sau rau hauv phau ntawv journal. Tej zaum lawv yuav ua li ntawd thiaj li paub meej qhov tseeb ntawm qhov kev sib pauv. Ntawm cov tsav uas tsis txhawb FUA, qhov no ua rau ob lub cache flushes. Kuv qhov kev sim tau pom tias fdatasync() nrawm me ntsis fsync(). Kev siv hluav taws xob blktrace qhia tias fdatasync() feem ntau sau cov ntaub ntawv tsawg dua rau disk (hauv ext4 fsync() sau 20 KiB, thiab fdatasync() - 16 KiB). Tsis tas li ntawd, kuv pom tias XFS yog me ntsis sai dua ext4. Thiab ntawm no nrog kev pab blktrace muaj peev xwm nrhiav tau qhov ntawd fdatasync() flushes tsawg cov ntaub ntawv rau disk (4 KiB hauv XFS).

Cov xwm txheej tsis meej thaum siv fsync()

Kuv tuaj yeem xav txog peb qhov xwm txheej tsis meej txog fsync()uas kuv tau ntsib nyob rau hauv kev xyaum.

Thawj qhov xwm txheej no tshwm sim hauv xyoo 2008. Thaum lub sij hawm ntawd, Firefox 3 interface "frozen" yog tias muaj ntau cov ntaub ntawv raug sau rau disk. Qhov teeb meem yog qhov kev siv ntawm lub interface siv SQLite database khaws cov ntaub ntawv hais txog nws lub xeev. Tom qab txhua qhov kev hloov pauv uas tshwm sim hauv lub interface, lub luag haujlwm tau hu ua fsync(), uas muab zoo guarantees ruaj khov cov ntaub ntawv cia. Nyob rau hauv ces siv ext3 cov ntaub ntawv system, muaj nuj nqi fsync() flushed rau disk tag nrho cov nplooj ntawv "qhuav" hauv lub system, thiab tsis yog cov uas cuam tshuam nrog cov ntaub ntawv sib xws. Qhov no txhais tau hais tias nias lub pob hauv Firefox tuaj yeem ua rau megabytes ntawm cov ntaub ntawv sau rau hauv daim disk sib nqus, uas tuaj yeem siv sijhawm ntau vib nas this. Txoj kev daws teeb meem, raws li kuv nkag siab los ntawm nws cov ntaub ntawv, yog txav mus ua hauj lwm nrog cov database rau asynchronous tom qab ua hauj lwm. Qhov no txhais tau hais tias Firefox tau siv los siv cov kev xav tau ruaj khov ruaj khov dua li qhov xav tau tiag tiag, thiab ext3 filesystem nta tsuas yog ua rau qhov teeb meem no hnyav dua.

Qhov teeb meem thib ob tau tshwm sim hauv xyoo 2009. Tom qab ntawd, tom qab lub kaw lus sib tsoo, cov neeg siv ntawm cov ntaub ntawv ext4 tshiab pom tias ntau cov ntaub ntawv tsim tshiab yog xoom-ntev, tab sis qhov no tsis tshwm sim nrog cov laus ext3 cov ntaub ntawv. Hauv kab lus dhau los, kuv tau tham txog yuav ua li cas ext3 pov tseg cov ntaub ntawv ntau dhau ntawm lub disk, uas ua rau ntau yam qeeb. fsync(). Txhawm rau txhim kho qhov teeb meem no, ext4 flushes tsuas yog cov nplooj ntawv "qhuav" uas cuam tshuam rau ib qho ntaub ntawv. Thiab cov ntaub ntawv ntawm lwm cov ntaub ntawv tseem nyob hauv lub cim xeeb rau lub sijhawm ntev dua nrog ext3. Qhov no tau ua los txhim kho kev ua haujlwm (los ntawm lub neej ntawd, cov ntaub ntawv nyob hauv lub xeev no rau 30 vib nas this, koj tuaj yeem teeb tsa qhov no siv qias neeg_expire_centisecs; S, SΡ“S, koj tuaj yeem nrhiav cov ntaub ntawv ntxiv ntawm qhov no). Qhov no txhais tau hais tias ib tug loj npaum li cas ntawm cov ntaub ntawv yuav irretrievably ploj tom qab ib tug sib tsoo. Txoj kev daws teeb meem no yog siv fsync() nyob rau hauv cov ntawv thov uas yuav tsum tau muab cov ntaub ntawv ruaj khov thiab tiv thaiv lawv ntau li ntau tau los ntawm qhov tshwm sim ntawm kev ua tsis tiav. Muaj nuj nqi fsync() ua haujlwm zoo dua nrog ext4 dua li nrog ext3. Qhov tsis zoo ntawm txoj hauv kev no yog tias nws siv, zoo li ua ntej, qeeb qee qhov haujlwm, xws li kev txhim kho cov haujlwm. Saib cov ntsiab lus ntawm qhov no no ΠΈ no.

Qhov teeb meem thib peb txog fsync(), originated nyob rau hauv 2018. Tom qab ntawd, nyob rau hauv lub moj khaum ntawm PostgreSQL qhov project, nws tau pom tias yog qhov ua haujlwm fsync() ntsib ib qho yuam kev, nws cim "dub" nplooj ntawv li "huv". Yog li ntawd, hu rau nram qab no fsync() tsis ua dab tsi nrog cov nplooj ntawv zoo li no. Vim li no, cov nplooj ntawv hloov kho tau khaws cia hauv lub cim xeeb thiab tsis tau sau rau disk. Qhov no yog kev puas tsuaj tiag tiag, txij li daim ntawv thov yuav xav tias qee cov ntaub ntawv sau rau disk, tab sis qhov tseeb nws yuav tsis yog. Tej kev ua tsis tiav fsync() tsis tshua muaj, daim ntawv thov nyob rau hauv cov xwm txheej zoo li no yuav luag tsis muaj dab tsi los tawm tsam qhov teeb meem. Hnub no, thaum qhov no tshwm sim, PostgreSQL thiab lwm yam kev siv tsoo. nws yog, nyob rau hauv tsab xov xwm "Puas Daim Ntawv Thov Rov Qab Los ntawm fsync Failures?", qhov teeb meem no tau tshawb xyuas kom meej. Tam sim no qhov kev daws teeb meem zoo tshaj plaws rau qhov teeb meem no yog siv Direct I / O nrog tus chij O_SYNC los yog nrog tus chij O_DSYNC. Nrog rau txoj hauv kev no, lub kaw lus yuav tshaj tawm cov teeb meem uas yuav tshwm sim thaum ua cov ntaub ntawv tshwj xeeb sau cov haujlwm, tab sis txoj hauv kev no xav tau daim ntawv thov los tswj cov buffers nws tus kheej. Nyeem ntxiv txog nws no ΠΈ no.

Qhib cov ntaub ntawv siv O_SYNC thiab O_DSYNC chij

Cia peb rov qab mus rau kev sib tham ntawm Linux cov txheej txheem uas muab cov ntaub ntawv tsis tu ncua. Namely, peb tab tom tham txog kev siv tus chij O_SYNC los yog chij O_DSYNC thaum qhib cov ntaub ntawv siv qhov system hu qhib(). Nrog rau txoj hauv kev no, txhua cov ntaub ntawv sau ua haujlwm yog ua raws li tom qab txhua lo lus txib write() lub system yog muab, ntsig txog, commands fsync() ΠΈ fdatasync(). Cov POSIX specifications qhov no yog hu ua "Synchronized I/O File Integrity Completion" thiab "Data Integrity Completion". Lub ntsiab kom zoo dua ntawm txoj kev no yog tias tsuas yog ib qho kev hu xov tooj yuav tsum tau ua kom ntseeg tau cov ntaub ntawv ncaj ncees, thiab tsis yog ob (piv txwv li - write() ΠΈ fdatasync()). Lub ntsiab qhov tsis zoo ntawm txoj hauv kev no yog tias txhua qhov kev sau ua haujlwm siv cov ntaub ntawv sib tham yuav raug synchronized, uas tuaj yeem txwv lub peev xwm los tsim cov ntawv thov code.

Siv Direct I/O nrog O_DIRECT chij

System hu open() txhawb nqa tus chij O_DIRECT, uas yog tsim los hla lub operating system cache, ua haujlwm I / O, cuam tshuam ncaj qha nrog lub disk. Qhov no, feem ntau, txhais tau hais tias cov lus txib uas tau muab los ntawm qhov kev zov me nyuam yuav raug muab txhais ncaj qha rau hauv cov lus txib uas ua haujlwm nrog lub disk. Tab sis, nyob rau hauv dav dav, qhov no mechanism tsis yog ib tug hloov rau lub functions fsync() los yog fdatasync(). Qhov tseeb yog tias disk nws tus kheej tuaj yeem ua tau ncua lossis cache cov lus txib tsim nyog rau kev sau cov ntaub ntawv. Thiab, txawm tias phem dua, qee qhov tshwj xeeb, kev ua haujlwm I / O tau ua thaum siv tus chij O_DIRECT, tshaj tawm mus rau hauv kev ua haujlwm buffered. Txoj kev yooj yim tshaj los daws qhov teeb meem no yog siv tus chij los qhib cov ntaub ntawv O_DSYNC, uas yuav txhais tau tias txhua qhov kev sau ntawv yuav ua raws li kev hu fdatasync().

Nws muab tawm tias XFS filesystem tau tsis ntev los no tau ntxiv "txoj kev ceev" rau O_DIRECT|O_DSYNC- cov ntaub ntawv. Yog hais tias lub block yog overwritten siv O_DIRECT|O_DSYNC, ces XFS, es tsis txhob tso lub cache, yuav ua rau FUA sau cov lus txib yog tias lub cuab yeej txhawb nqa nws. Kuv tau txheeb xyuas qhov no siv cov khoom siv hluav taws xob blktrace ntawm Linux 5.4 / Ubuntu 20.04 system. Txoj hauv kev no yuav tsum muaj txiaj ntsig zoo dua, txij li nws sau qhov tsawg kawg nkaus ntawm cov ntaub ntawv rau disk thiab siv ib qho haujlwm, tsis yog ob (sau thiab yaug lub cache). Kuv nrhiav tau ib qhov txuas rau thaj 2018 kernel uas siv cov txheej txheem no. Muaj qee qhov kev sib tham txog kev siv qhov kev ua kom zoo rau lwm cov ntaub ntawv, tab sis raws li kuv paub, XFS yog tib lub kaw lus uas txhawb nqa nws kom deb li deb.

sync_file_range() muaj nuj nqi

Linux muaj qhov system hu sync_file_range(), uas tso cai rau koj kom yaug ib feem ntawm cov ntaub ntawv rau disk, tsis yog tag nrho cov ntaub ntawv. Qhov kev hu xovtooj no pib ua qhov dej tawm asynchronous thiab tsis tos kom nws ua tiav. Tab sis nyob rau hauv kev siv rau sync_file_range() cov lus txib no tau hais tias "muaj kev phom sij heev". Nws tsis pom zoo kom siv nws. Nta thiab txaus ntshai sync_file_range() zoo heev piav nyob rau hauv qhov no khoom. Tshwj xeeb tshaj yog, qhov kev hu no zoo li siv RocksDB los tswj thaum lub kernel flushes "qhuav" cov ntaub ntawv rau disk. Tab sis nyob rau tib lub sij hawm muaj, kom ruaj khov cov ntaub ntawv cia, nws kuj yog siv fdatasync(). Cov chaws RocksDB muaj qee cov lus hais txog qhov no. Piv txwv li, nws zoo li hu sync_file_range() Thaum siv ZFS tsis ntws cov ntaub ntawv rau disk. Kev paub qhia kuv tias tsis tshua siv cov cai yuav muaj kab laum. Yog li ntawd, kuv xav tawm tswv yim tawm tsam siv qhov kev hu xov tooj tshwj tsis yog qhov tsim nyog kiag li.

Kev hu xov tooj los pab xyuas kom cov ntaub ntawv txuas ntxiv mus

Kuv tau los xaus tias muaj peb txoj hauv kev uas tuaj yeem siv los ua haujlwm tsis tu ncua I / O. Lawv txhua tus xav tau kev hu xov tooj fsync() rau cov directory qhov twg cov ntaub ntawv tau tsim. Nov yog cov txheej txheem:

  1. Muaj nuj nqi hu fdatasync() los yog fsync() tom qab ua haujlwm write() (zoo dua siv fdatasync()).
  2. Ua haujlwm nrog cov ntaub ntawv piav qhia qhib nrog tus chij O_DSYNC los yog O_SYNC (zoo dua - nrog tus chij O_DSYNC).
  3. Kev siv cov lus txib pwritev2() nrog chij RWF_DSYNC los yog RWF_SYNC (zoo dua nrog tus chij RWF_DSYNC).

Cov Lus Qhia Ua Haujlwm

Kuv tsis tau ua tib zoo ntsuas qhov kev ua tau zoo ntawm ntau yam txheej txheem uas kuv tau tshawb xyuas. Qhov sib txawv kuv pom hauv kev ceev ntawm lawv txoj haujlwm yog qhov tsawg heev. Qhov no txhais tau hais tias kuv tuaj yeem ua tsis ncaj ncees lawm, thiab hauv lwm qhov xwm txheej tib yam tuaj yeem pom cov txiaj ntsig sib txawv. Ua ntej, kuv yuav tham txog dab tsi cuam tshuam rau kev ua haujlwm ntau dua, thiab tom qab ntawd, txog dab tsi cuam tshuam rau kev ua haujlwm tsawg dua.

  1. Overwriting cov ntaub ntawv cov ntaub ntawv sai dua cov ntaub ntawv ntxiv rau cov ntaub ntawv (qhov kev ua tau zoo tuaj yeem yog 2-100%). Txuas cov ntaub ntawv rau cov ntaub ntawv yuav tsum tau hloov pauv ntxiv rau cov ntaub ntawv metadata, txawm tias tom qab hu xov tooj fallocate(), tab sis qhov loj ntawm cov nyhuv no yuav txawv. Kuv pom zoo, rau kev ua tau zoo tshaj plaws, hu rau fallocate() ua ntej faib qhov chaw xav tau. Tom qab ntawd qhov chaw no yuav tsum tau sau meej meej nrog xoom thiab hu ua fsync(). Qhov no yuav ua rau cov blocks sib thooj hauv cov ntaub ntawv kaw lus raug cim tias "tso tseg" es tsis yog "unallocated". Qhov no ua rau me me (kwv yees li 2%) kev txhim kho kev ua haujlwm. Tsis tas li ntawd, qee qhov disks yuav muaj kev ua haujlwm qeeb dua thawj zaug thaiv dua li lwm tus. Qhov no txhais tau hais tias sau qhov chaw nrog xoom tuaj yeem ua rau muaj qhov tseem ceeb (kwv yees li 100%) kev txhim kho. Tshwj xeeb, qhov no tuaj yeem tshwm sim nrog cov disks. AWS EBS (qhov no yog cov ntaub ntawv tsis raug cai, kuv tsis tuaj yeem lees paub lawv). Tib yam mus rau kev khaws cia. GCP Persistent Disk (thiab qhov no yog cov ntaub ntawv raug cai, lees paub los ntawm kev xeem). Lwm tus kws tshaj lij tau ua ib yam nkaus kev soj ntsuammuaj feem xyuam rau cov disks sib txawv.
  2. Kev hu xov tooj tsawg dua, qhov ua tau zoo dua (qhov nce tuaj yeem yog li 5%). Nws zoo li hu open() nrog chij O_DSYNC los yog hu pwritev2() nrog chij RWF_SYNC hu sai dua fdatasync(). Kuv xav tias lub ntsiab lus ntawm no yog tias nrog rau txoj hauv kev no, qhov tseeb tias tsawg dua kev hu xov tooj yuav tsum tau ua los daws cov haujlwm tib yam (ib qho hu tsis yog ob) ua lub luag haujlwm. Tab sis qhov kev ua tau zoo sib txawv me me, yog li koj tuaj yeem yooj yim tsis quav ntsej nws thiab siv qee yam hauv daim ntawv thov uas tsis ua rau muaj teeb meem ntawm nws cov logic.

Yog tias koj txaus siab rau lub ntsiab lus ntawm kev khaws cov ntaub ntawv ruaj khov, ntawm no yog qee cov ntaub ntawv tseem ceeb:

  • I/O Access method - ib qho kev nthuav dav ntawm lub hauv paus ntawm cov tswv yim / tawm tswv yim.
  • Xyuas kom cov ntaub ntawv mus txog disk - Zaj dab neeg hais txog dab tsi tshwm sim rau cov ntaub ntawv ntawm txoj kev los ntawm daim ntawv thov mus rau disk.
  • Thaum twg koj yuav tsum fsync cov directory uas muaj - teb rau lo lus nug ntawm thaum twg yuav thov fsync() rau cov directory. Hauv kev txiav txim siab, nws hloov tawm tias koj yuav tsum ua qhov no thaum tsim cov ntaub ntawv tshiab, thiab yog vim li cas rau qhov kev pom zoo no yog tias hauv Linux tuaj yeem muaj ntau qhov kev xa mus rau tib cov ntaub ntawv.
  • SQL Server ntawm Linux: FUA Internals - Ntawm no yog cov lus piav qhia txog yuav ua li cas txuas ntxiv cov ntaub ntawv khaws cia hauv SQL Server ntawm Linux platform. Muaj qee qhov kev sib piv nthuav dav ntawm Windows thiab Linux system hu rau ntawm no. Kuv yuav luag paub tseeb tias nws yog ua tsaug rau cov ntaub ntawv no uas kuv tau kawm txog FUA optimization ntawm XFS.

Koj puas tau poob cov ntaub ntawv uas koj xav tias ruaj ntseg khaws cia hauv disk?

Durable Data Storage thiab Linux File APIs

Durable Data Storage thiab Linux File APIs

Tau qhov twg los: www.hab.com