Skip to main content

Ano ang paghihiwalay ng snapshot?

Ang paghihiwalay ng Snapshot ay isang pag -aari sa pagproseso ng transaksyon at mga database na ginagarantiyahan ang lahat ng mga nabasa na ginawa sa isang transaksyon tingnan ang parehong snapshot ng database.Nangangahulugan ito na ang transaksyon ay gagawa ng sarili sa matagumpay na pagproseso ng kahilingan kung ang mga pag -update nito ay hindi sumasalungat sa anumang iba pang mga kasabay na pag -update.Ang paghihiwalay ng Snapshot ay isang control algorithm para sa multi-bersion concurrency na nagbibigay ng mga antas ng paghihiwalay na maiwasan ang mga problema na karaniwang nangyayari sa kasabay.Ang paghihiwalay na ito ay ipinatupad ng maraming magkakaibang nakabalangkas na mga server ng wika ng query (SQL), na nagpapatakbo ng kaunting halaga ng anomalya ng serialization.Ang mga pagbubukod ng snapshot ay hindi, gayunpaman, ginagarantiyahan ang kumpletong serializability sa isang server.

Maraming mga pangunahing sistema ng pamamahala ng data ang naglalaman ng mga default na antas ng paghihiwalay na hindi serializable at madalas na nakatagpo ng mga anomalya ng serialization nang walang paghihiwalay ng snapshot.Maaari itong maging sanhi ng malalaking sistema na magkaroon ng maraming mga pangyayari ng mga pagkakamali sa paghihiwalay araw -araw, na maaaring humantong sa data na nasira, lalo na ang matatagpuan sa mga aplikasyon ng bodega ng data.Ang dahilan ng isang sistema ay maaaring gumana sa estado na ito ay dahil ang mga application na tumatakbo sa mas mababang antas ng paghihiwalay ay maaaring mapabuti ang kahusayan kung walang mga malubhang pagkakamali na naganap.Kabilang ang paghihiwalay ng snapshot sa isang sistema ay binabawasan ang mga anomalya na ito at mdash;Kapag kumukuha ng oras ng operasyon at ang dami ng mga pagkakamali na nagaganap sa account at mdash;pagtaas ng kahusayan kahit na higit pa.

Ang ilang mga database ay nag -aalok ng paghihiwalay ng snapshot kumpara sa buong serializability, ngunit mayroon ding mga anomalya na maaaring mangyari sa loob ng isang database na gumagamit ng ganitong uri ng paghihiwalay.Ang mga anomalya na ito ay maaaring humantong sa mga paglabag sa pagkakapare -pareho ng data dahil ang mga transaksyon na nagpapanatili ng pagkakapare -pareho ng pagsasama, o nakaayos sa mga alternatibong layer.Ang isang paraan upang malutas ang problema at maiwasan ang mga anomalya tulad nito ay upang manipulahin ang mga aplikasyon na may isang pagpapakilala ng mga artipisyal na kandado at magkasalungat na mga pag -update, na sinundan ng pagsusuri ng mga salungatan sa pagitan ng bawat pares ng mga transaksyon.Ang isang iba't ibang paraan upang malutas ang mga anomalya na ito, gayunpaman, ay upang baguhin ang mga algorithm ng concurrency control ng isang database ng isang database upang gawin ang mga awtomatikong pagtuklas at pag -iwas sa mga anomalya ng paghihiwalay ng snapshot sa runtime.Magagawa ito para sa mahalaga o di -makatwirang mga aplikasyon, ngunit nagbibigay ng paghihiwalay na nai -serializable.Kung saan ang mga maagang bersyon ng SQL server ay gumagamit ng pag -lock bilang batayan para sa kasabay, ang paghihiwalay ng snapshot ay nakasalalay sa mga pagpapahusay ng pag -bersyon ng hilera na inilaan para sa pagpapabuti ng pagganap.Pinapabuti nito ang pagganap na ito kapag nakatagpo ito ng mga senaryo na may basahin o isulat ang pagharang sa pamamagitan ng pag -iwas sa kanila.