▁Standard ▁problems ▁solved ▁by ▁distributed ▁algorithms ▁include ▁leader ▁election , ▁cons ensus , ▁distributed ▁search , ▁sp anning ▁tree ▁generation , ▁mut ual ▁ex clusion , ▁and ▁resource ▁allocation . ▁ ▁Dist ributed ▁algorithms ▁are ▁a ▁sub - type ▁of ▁parallel ▁algorithm , ▁typically ▁executed ▁concurrent ly , ▁with ▁separate ▁parts ▁of ▁the ▁algorithm ▁being ▁run ▁simultaneously ▁on ▁independent ▁process ors , ▁and ▁having ▁limited ▁information ▁about ▁what ▁the ▁other ▁parts ▁of ▁the ▁algorithm ▁are ▁doing . ▁One ▁of ▁the ▁major ▁challeng es ▁in ▁developing ▁and ▁implementing ▁distributed ▁algorithms ▁is ▁successfully ▁coordin ating ▁the ▁behavior ▁of ▁the ▁independent ▁parts ▁of ▁the ▁algorithm ▁in ▁the ▁face ▁of ▁processor ▁fail ures ▁and ▁un re li able ▁communic ations ▁links . ▁The ▁choice ▁of ▁an ▁appropriate ▁distributed ▁algorithm ▁to ▁solve ▁a ▁given ▁problem ▁depends ▁on ▁both ▁the ▁characteristics ▁of ▁the ▁problem , ▁and ▁characteristics ▁of ▁the ▁system ▁the ▁algorithm ▁will ▁run ▁on ▁such ▁as ▁the ▁type ▁and ▁probability ▁of ▁processor ▁or ▁link ▁fail ures , ▁the ▁kind ▁of ▁inter - process ▁communication ▁that ▁can ▁be ▁performed , ▁and ▁the ▁level ▁of ▁timing ▁synchron ization ▁between ▁separate ▁processes . ▁ ▁Standard ▁problems ▁▁ ▁At omic ▁commit ▁An ▁atomic ▁commit ▁is ▁an ▁operation ▁where ▁a ▁set ▁of ▁distinct ▁changes ▁is ▁applied ▁as ▁a ▁single ▁operation . ▁If ▁the ▁atomic ▁commit ▁succeed s , ▁it ▁means ▁that ▁all ▁the ▁changes ▁have ▁been ▁applied . ▁If ▁there ▁is ▁a ▁failure ▁before ▁the ▁atomic ▁commit ▁can ▁be ▁completed , ▁the ▁" commit " ▁is ▁ab orted ▁and ▁no ▁changes ▁will ▁be