アトミックコミット

アトミックコミット (: atomic commit)は、計算機科学の分野では、一連の個別の変更が単一の処理として実行される処理のことである。すべての変更が適用された場合、アトミックコミットは成功したと表現される。アトミックコミットの完了を待たずに障害が発生した場合、それより先に完了したすべての変更は元に戻される。これにより、システムは常に一貫した状態に保たれる。また、このような不可分操作としての性質に由来するもう一つの重要な特性として、独立性がある。独立性は、一度に一つのアトミックコミットの処理が行われることを保障する。アトミックコミットの最も一般的な用途は、データベースシステムとバージョン管理システムである。

アトミックコミットの課題は、複数システム間の調整が必要なことである[1]。 コンピュータネットワークは信頼性の低いサービスであり、これは、二人の将軍問題で証明されているように、すべてのシステムと調整できるアルゴリズムがないことを意味する。データベースの分散化が進むにつれて、真のアトミックコミットを行うことが難しくなる[2]

アトミックコミットは、データのマルチステップ更新に不可欠である。これは、2つの当座預金口座間の送金の簡単な例で明確に示すことができる[3]

この例は、口座XからYに10,000円を送金するトランザクション中に、口座Yの残高をチェックするトランザクションが発生することで複雑になる。最初に、10,000円が口座Xから削除される。次に、10,000円が口座Yに追加される。ここで、操作全体が1つのアトミックコミットとして完了しない場合、いくつかの問題が発生しうる。たとえば、Xからお金を削除した後、Yに追加する前にシステムに障害が発生した場合、10,000円が消えてしまう可能性がある。また、10,000円を追加する前にYの残高を確認すると、Yの間違った残高が報告される可能性があるという問題もある。

アトミックコミットでは、これらのケースのどちらも発生しない。システム障害の最初のケースでは、アトミックコミットがロールバックされ、お金がXに返される。2番目のケースでは、Yの残高の要求はアトミックコミットが完全に完了するまで発生しない。

データベースシステムにおける利用

データベースシステムでのアトミックコミットは、 ACIDの2つの重要な特性である[4]不可分性一貫性を満たす。一貫性は、アトミックコミットの各変更が一貫している場合にのみ達成される。

先の例のように、アトミックコミットは、データベースでのマルチステップ操作にとって重要である。しかし近代的なハードウェア設計により、データベースが存在する物理ディスク上で、真のアトミックコミットは存在しえない。

ディスクに書き込むことができる最小の領域は、ディスクセクタと呼ばれる。 1つのデータベースエントリは、複数の異なるセクタにまたがる場合もあるが、一度に書き込むことができるセクタは1つだけである。この書き込み制限が、真のアトミックコミットが不可能な理由である。メモリ内のデータベースエントリが変更された後、それらはディスクに書き込まれるためにキューに入れられる。これは、例で特定されたのと同じ問題が再発したことを意味する。この問題は、どんなアルゴリズムを使っても必ず二人の将軍問題に遭遇し完全な解決ができない。2相コミット3相コミットの手法は、アトミックコミットと関連するいくつかの問題を一部解決する。

2相コミットプロトコルでは、調整者が、問題が発生した場合にデータベースの元の状態を回復するために必要なすべての情報を維持する必要がある。名前が示すように、投票コミットの2つのフェーズがある。

投票フェーズでは、各ノードがアトミックコミットの変更を独自のディスクに書き込む。次に、ノードはその状態を調整者に報告する。いずれかのノードが調整者に報告しないか、状態メッセージが失われた場合、調整者はノードの書き込みが失敗したと見なす。すべてのノードが調整者に報告すると、第2フェーズが始まる。

コミットフェーズ中に、調整者は各ノードにコミットメッセージを送信して、個々のログに記録する。このメッセージがノードのログに追加されるまで、加えられた変更はすべて不完全として記録される。いずれかのノードが障害を報告した場合、調整者は代わりにロールバックメッセージを送信する。これにより、ノードがディスクに書き込んだ変更がすべて削除される[5][6]

3相コミットプロトコルは、2相コミットプロトコルの主な問題を取り除くことを目的としている。これは、コミットフェーズ中に調整者と別のノードに同時に障害が発生した場合に発生し、どちらのアクションも実行すべきかを判断できない。この問題を解決するために、3番目のフェーズがプロトコルに追加される。コミット準備フェーズは、投票フェーズの後、コミットフェーズの前に発生する。

投票フェーズでは、2相コミットと同様に、調整者は各ノードがコミットする準備ができていることを要求する。いずれかのノードに障害が発生した場合、調整者は障害が発生したノードを待機している間にタイムアウトする。これが発生した場合、調整者はすべてのノードに中止メッセージを送信する。いずれかのノードが失敗メッセージを返した場合も、同じアクションが実行される。

投票フェーズで各ノードから成功メッセージを受信すると、コミット準備フェーズが開始される。このフェーズでは、調整者は各ノードに準備メッセージを送信する。各ノードは、準備メッセージを確認して応答する必要がある。応答がない場合、またはノードが準備ができていないことを返す場合、調整者は中止メッセージを送信する。タイムアウトが経過する前に準備メッセージを受信しないノードは、コミットを中止する。

すべてのノードが準備メッセージに応答した後、コミットフェーズが開始される。このフェーズでは、調整者は各ノードにコミットメッセージを送信する。各ノードはこのメッセージを受信すると、実際のコミットを実行する。メッセージが失われたためにコミットメッセージがノードに到達しない場合、または調整者が失敗した場合、タイムアウトが経過するとコミットが実行される。調整者がリカバリー時に失敗した場合、調整者は各ノードにコミットメッセージを送信する[7]

バージョン管理における利用

アトミックコミットはバージョン管理システムの一般的な機能であり、リポジトリ内の一貫した状態を維持するために重要である[8]。 ほとんどのバージョン管理ソフトウェアは、失敗したコミットのどの部分も適用しない。(例外は、CVSVSSIBM Rational ClearCase (UCMモードの場合)[9]。)

たとえば、バージョン管理ソフトウェアで、自動的に解決できない統合の競合が発生した場合、変更セットのどの部分も統合されない。代わりに、開発者には、変更を元に戻すか、競合を手動で解決する機会が与えられる。

これにより、部分的に適用された変更セットが原因でプロジェクト全体が壊れた状態になるのを防ぐ。コミットからの1つのファイルは正常にコミットされるが、依存する変更がある別のファイルは失敗する[10]

アトミックコミットは、モノレポと呼ばれるバージョン管理ソフトウェア開発戦略を使用して、バージョン管理ソフトウェアを使用して複数のプロジェクト間で同時に変更を行う機能を指す場合もある[8]

コミット運用手法としてのアトミックコミット

バージョン管理システムを使用する場合、小さなコミットを行うことが一般的に推奨される。影響範囲がシステムの単一の側面にのみ限定される (はずである)ため、このような手法をアトミックコミットと呼ぶこともある。この手法により、理解が簡単になり、変更をロールバックする労力が減り、バグの特定が容易になる[11]

コミットのサイズが小さく、焦点が絞られているほど、理解はより簡単になる。 1種類の変更のみを探している場合、何が変更され、変更の背後にある理由を理解するのがはるかに簡単になる。これは、ソースコードの書式を変更するときに特に重要になる。書式と機能変更を同時に行うと、有用な変更を特定することが非常に困難になる。ファイル内のスペースが、すべてタブ文字から3つの空白文字に変更された場合を想像してほしい。同時に機能の変更も行われた場合、レビュー担当者が機能の変更箇所を特定するのは容易ではなくなるため、このような変更方法は推奨されない[12][13]

アトミックコミットのみを行うようにすることで、エラーを引き起こすコミットの識別がはるかに簡単になる。エラーの原因であるかどうかを確認するために、すべてのコミットを調べる必要がなく、その機能を処理するコミットのみを調べればよい。エラーをロールバックする場合は、アトミックコミットによってジョブがはるかに簡単になる。後の変更を統合する前に、問題のあるリビジョンに戻して変更を手動で削除する必要はない。開発者は、識別されたコミットの変更を簡単に元に戻すことができる。これにより、開発者が同じコミットで発生した無関係の変更を誤って削除するリスクも軽減される。

アトミックコミットにより、一度に1つのバグ修正のみがコミットされた場合でも、バグ修正を簡単に確認することができる。レビュー担当者は関係のない複数のファイルをチェックする必要がなくなり、直接影響するファイルと変更のみをチェックすできる。バグを修正する変更のみがコミットに含まれるため、バグ修正をテスト用に簡単にパッケージ化できることも意味する。

関連項目

脚注

  1. ^ Bocchi, Wischik (2004). A Process Calculus of Atomic Commit 
  2. ^ Garcia-Molina, Hector; Ullman, Jeff; Widom, Jennifer (2009). Database Systems The Complete Book. Prentice Hall. pp. 1008–1009. https://archive.org/details/databasesystemsc0000_2ndedgarc 
  3. ^ Garcia-Molina, Hector; Ullman, Jeff; Widom, Jennifer (2009). Database Systems The Complete Book. Prentice Hall. p. 299. https://archive.org/details/databasesystemsc0000_2ndedgarc 
  4. ^ Elmasri, Ramez (2006). Fundamentals of Database Systems 5th Edition. Addison Wesley. p. 620 
  5. ^ Elmasri, Ramez (2006). Fundamentals of Database Systems 5th Edition. Addison Wesley. p. 688 
  6. ^ Bernstein, Philip A.; Hadzilacos, Vassos; Goodman, Nathan (1987). “Chapter 7”. Concurrency Control and Recovery in Database Systems. Addison Wesley Publishing Company. http://research.microsoft.com/en-us/people/philbe/ccontrol.aspx 
  7. ^ Gaddam, Srinivas R.. Three-Phase Commit Protocol. http://ei.cs.vt.edu/~cs5204/fall99/distributedDBMS/sreenu/3pc.html 
  8. ^ a b Levenberg (July 2016). “Why Google Stores Billions of Lines of Code in a Single Repository”. Communications of the ACM. 20 July 2018閲覧。
  9. ^ Smart, John Ferguson (2008) (英語). Java Power Tools. "O'Reilly Media, Inc.". p. 301. ISBN 9781491954546. https://books.google.com/books?id=kE0UDQAAQBAJ&q=visual+sourcesafe+atomic+commit&pg=PA301 26 July 2018閲覧。 
  10. ^ Vesperman, Jennifer (2009). Essential CVS. (2nd ed.). Sebastopol: O'Reilly Media, Inc.. p. 7. ISBN 9780596551407. https://books.google.com/books?id=nIMNLXCBjn0C&q=atomic+commit+cvs&pg=PA7. "A feature that CVS doesn't have, and that many teams like, is atomic commits. This feature ensures that while one person is committing changes to the repository, no one else can. Thus, each commit is a separate process, and the repository is never in a state where it has mismatched files." 
  11. ^ Subversion Best Practices”. Apache. 2020年12月21日閲覧。
  12. ^ Barney, Boisvert. Atomic Commits to Version Control. http://www.barneyb.com/barneyblog/2006/01/27/atomic-commits-to-version-control/ 
  13. ^ The Benefits of Small Commits”. Conifer Systems. 2020年12月21日閲覧。

Read other articles:

American pole vaulter (born 1996) Lexi JacobusPersonal informationBirth nameAlexis WeeksNationalityAmericanBorn (1996-11-20) November 20, 1996 (age 27)Jacksonville, Arkansas, U.S.Height5 ft 6 in (168 cm)Weight130 lb (59 kg)SportCountry United StatesSportTrack and fieldEventPole vaultTeamUniversity of ArkansasTurned pro2019Retired2021[1]Achievements and titlesPersonal best(s)4.70 metres (15 ft 5 in)4.68 metres (15 ft 4+1⁄2...

 

العلاقات التركية الوسط أفريقية تركيا جمهورية أفريقيا الوسطى   تركيا   جمهورية أفريقيا الوسطى تعديل مصدري - تعديل   العلاقات التركية الوسط أفريقية هي العلاقات الثنائية التي تجمع بين تركيا وجمهورية أفريقيا الوسطى.[1][2][3][4][5] مقارنة بين البلد...

 

Standard 256-color mode on VGA graphics hardware This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Mode 13h – news · newspapers · books · scholar · JSTOR (Ma...

African multi-sport event African GamesOfficial logo of the GamesGames 1965 1973 1978 1987 1991 1995 1999 2003 2007 2011 2015 2019 2023 2027 Sports Athletics Badminton Baseball Basketball Boxing Canoeing Chess Cricket Cycling Diving Equestrian Fencing Football Gymnastics Handball Field hockey Judo Karate Kick-boxing Netball Rowing Sailing Shooting Softball Squash Swimming Table tennis Taekwondo Tennis Triathlon Volleyball Weightlifting Wrestling Organisations Charter AU ANOCA AASC NOCs Olympi...

 

English writer, Islamic scholar, and philosopher (1909–2005) For the footballer and football manager, see Martin Ling. Martin LingsAbū Bakr Sirāj al-DīnLings in 2001TitleShaykhPersonalBorn(1909-01-24)24 January 1909Burnage, Manchester, EnglandDied12 May 2005(2005-05-12) (aged 96)Westerham, Kent, EnglandReligionIslamEraModern eraCreedSunniMovementTraditionalist SchoolNotable work(s)Muhammad: His Life Based on the Earliest SourcesAlma materClifton CollegeMagdalen College, OxfordS...

 

Voce principale: 1. Fußball- und Sportverein Mainz 05. 1. Fußball- und Sportverein Mainz 05Stagione 2004-2005Sport calcio Squadra Magonza Allenatore Jürgen Klopp All. in seconda Željko Buvač Bundesliga11º posto Coppa di GermaniaSecondo turno Maggiori presenzeCampionato: Babatz (34)Totale: Babatz, Friedrich (35) Miglior marcatoreCampionato: Gerber (7)Totale: Gerber (8) StadioStadion am Bruchweg Maggior numero di spettatori20 300 (15 partite) Minor numero di spettatori18 7...

2024 American resupply spaceflight to the ISS SpaceX CRS-30Launch of a Falcon 9 carrying SpaceX CRS-30NamesSpX-30Mission typeISS resupplyOperatorSpaceXCOSPAR ID2024-054A SATCAT no.59287Mission duration39 days, 8 hours and 43 minutes Spacecraft propertiesSpacecraftCargo Dragon C209[citation needed]Spacecraft typeCargo DragonManufacturerSpaceXDimensionsHeight: 8.1 m (27 ft)Diameter: 4 m (13 ft) Start of missionLaunch date21 March 2024, 20:55 UTC&#...

 

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (نوفمبر 2019) دوري أبطال أوروبا لكرة السلة 2017–18 تفاصيل الموسم دوري أبطال أوروبا لكرة السلة&...

 

  هذه المقالة عن الشركة الجزائرية لصناعة المروحيات. لمعانٍ أخرى، طالع وزارة الدفاع الوطني (الجزائر). الشركة الجزائرية لصناعة المروحياتالشركة الجزائرية لصناعة المروحياتالشعارمعلومات عامةالبلد  الجزائر التأسيس 2017النوع عسكريةالشكل القانوني شركة عامة المقر الرئيس�...

Strike Fighter Squadron 143Active20 July 1950 - presentCountry United StatesBranch United States NavyTypeFighter/AttackRoleClose air supportAir interdictionAerial reconnaissancePart ofCarrier Air Wing OneGarrison/HQNAS OceanaNickname(s)Pukin' DogsMotto(s)Sans ReproacheEngagementsVietnam WarGulf WarOperation Southern WatchOperation Enduring FreedomOperation Inherent ResolveDecorationsFFARP trophyTactical Reconnaissance trophyBattle Effectiveness E, 1990Battle Effectiveness E, 1...

 

以色列国 以色列政府与政治系列条目 基本法 耶路撒冷法 回歸法 國家元首 總統(歷任名單) 伊薩克·赫爾佐克 行政部門 總理(歷任名單(英语:List of prime ministers of Israel)) 本雅明·內塔尼亞胡 後補總理 總理辦公室 副總理(英语:Deputy of the Prime Minister of Israel) 內閣(英语:Cabinet of Israel) 以色列第37屆政府(英语:Thirty-seventh government of Israel) 安全內閣(英语:Securi...

 

غيم فاكسالشعارمعلومات عامةموقع الويب gamefaqs.gamespot.com (الإنجليزية) نوع الموقع موقع أخبار ألعاب الفيديو البلد الأصلي  الولايات المتحدة التأسيس 1995 الجوانب التقنيةاللغة الإنجليزية ترتيب أليكسا 390[1](28 نوفمبر 2017) أهم الشخصياتالمالك Red Ventures (en) تعديل - تعديل مصدري - تعديل ويكي �...

Hottest of the four temperate seasons Not to be confused with Sumer. Summers redirects here. For other uses, see Summer (disambiguation) and Summers (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Summer – news · newspapers · books · scholar · JSTOR (November 2023) (Learn how and when to r...

 

Magistrate of the Roman Republic Pretor redirects here. For the village in North Macedonia, see Pretor, Resen. Not to be confused with Praetorian. Politics of ancient Rome Periods Roman Kingdom753–509 BC Roman Republic509–27 BC Roman Empire27 BC – AD 395 Principate27 BC – AD 284 DominateAD 284–641 WesternAD 395–476 EasternAD 395–1453 Timeline Constitution Kingdom Republic Sullan republic Empire Augustan reforms Late Empire Political institutions Imperium Collegiality Auctoritas ...

 

Voce principale: Frosinone Calcio. Frosinone CalcioStagione 2004-2005Sport calcio Squadra Frosinone Allenatore Dino Pagliari Presidente Maurizio Stirpe Serie C15º posto nel girone A. Maggiori presenzeCampionato: Mastronunzio (35) Miglior marcatoreCampionato: Mastronunzio (13) 2003-2004 2005-2006 Si invita a seguire il modello di voce Questa pagina raccoglie le informazioni riguardanti il Frosinone Calcio nelle competizioni ufficiali della stagione 2004-2005. Indice 1 Rosa 2 Risultati 2...

此條目没有列出任何参考或来源。 (2016年2月11日)維基百科所有的內容都應該可供查證。请协助補充可靠来源以改善这篇条目。无法查证的內容可能會因為異議提出而被移除。 梁肅戎 中華民國第1屆(改選前)立法院院長署理、第8任任期1990年2月27日—1991年12月31日总统李登輝前任劉闊才(正任)梁肅戎(署理)继任劉松藩(署理)改選後劉松藩(正任)任期1990年2月12日—...

 

يجب على زوار إريتريا الحصول على تأشيرة دخول من إحدى البعثات الدبلوماسية الإريترية، إلا إذا كانوا قادمين من إحدى الدول المعفاة من التأشيرة أو الدول المؤهلة للحصول على التأشيرة عند الوصول. خريطة سياسة التأشيرة سياسة التأشيرات في إريتريا   إريتريا   التأشيرة غير م�...

 

Prime Minister of Brazil from 1847 to 1848 His ExcellencyThe Viscount of CaravelasPortrait by José Correia de Lima, unknown datePrime Minister of BrazilIn office22 May 1847 – 8 March 1848MonarchPedro IIPreceded byOffice createdSucceeded byViscount of Macaé Further offices held Minister of JusticeIn office2 February 1844 – 23 May 1844Preceded byHonório Hermeto CarneiroSucceeded byAntonio Limpo de AbreuIn office16 January 1835 – 14 October 1835Preceded byAure...

Method for allocating seats in parliaments A joint Politics and Economics seriesSocial choice and electoral systems Social choiceMechanism designComparative politicsComparisonList (By country) Single-winner methodsSingle vote - plurality methods First preference plurality (FPP) Two-round (US: Jungle primary) Partisan primary Instant-runoff UK: Alternative vote US: Ranked-choice (RCV) Condorcet methods Condorcet-IRV Round-robin voting Minimax Schulze Ranked pairs Maximal lottery Positional vot...

 

Panticapeo Le rovine del pritaneo di Panticapeo Nome originale (GRC) Παντικάπαιον(LA) Panticapaeum Cronologia Fondazione VII-VI secolo a.C. Fine IV secolo Localizzazione Stato attuale  Ucraina Località Kerč' Coordinate 45°21′03″N 36°28′07″E45°21′03″N, 36°28′07″E Cartografia Mappa non disponibile (Ucraina) Modifica dati su Wikidata · Manuale Panticapeo o Panticapea (in greco antico: Παντικάπαιον?, Pantikápaion, strada del pesce), fu fo...