ਸਮਕਾਲੀਕਰਨ
bae ਦਾ ਸਮਕਾਲੀਕਰਨ coven ਦਾ ਸਮਕਾਲੀਕਰਨ ਹੈ: bae ਆਪਣੀਆਂ ਟੇਬਲਾਂ ਅਤੇ ਬਲੌਬ declare ਕਰਦਾ ਹੈ, ਅਤੇ coven ਬਾਕੀ ਕਰਦਾ ਹੈ। ਇਹ ਪੰਨਾ ਉਹ mechanics ਹੈ ਜੋ bae ਉੱਤੇ ਲਾਗੂ ਹੁੰਦੀ ਹੈ; coven ਦੇ ਆਪਣੇ docs ਹਰ ਹਿੱਸੇ ਨੂੰ ਪੂਰੀ ਗਹਿਰਾਈ ਵਿੱਚ ਸਮਝਾਉਂਦੇ ਹਨ।
ਫੜਨਾ
ਇਸ ਭਾਗ ਦਾ ਲਿੰਕcoven SQLite connection ਆਪਣਾ ਰੱਖਦਾ ਹੈ, ਇਸ ਲਈ bae commit ਕਰਦਾ ਹਰ ਲਿਖਣਾ ਇਸ ਰਾਹੀਂ ਲੰਘਦਾ ਹੈ। SQLite ਦਾ ਸੈਸ਼ਨ ਐਕਸਟੈਂਸ਼ਨ ਹਰ ਲੈਣ-ਦੇਣ ਵਿੱਚ ਕੀ ਬਦਲਿਆ ਉਹ exactly ਰਿਕਾਰਡ ਕਰਦਾ ਹੈ; ਸਮਕਾਲੀਕਰਿਤ ਟੇਬਲਾਂ ਦੇ ਬਦਲਾਅ changeset ਬਣਦੇ ਹਨ, ਸੰਗ੍ਰਹਿ ਕੁੰਜੀ ਨਾਲ ਸੀਲ ਕੀਤਾ ਅਤੇ ਯੰਤਰ ਦੀ ਪਛਾਣ ਕੁੰਜੀ ਨਾਲ signed। ਫਰਕ-ਕੱਢਣਾ ਨਹੀਂ, ਮੈਲਾ flags ਨਹੀਂ: ਫੜਨਾ connection ਦੀ ਗੁਣ ਹੈ, ਅਤੇ ਲਿਖਣਾ ਛੁੱਟ ਨਹੀਂ ਹੋ ਸਕਦਾ।
ਪ੍ਰਵਾਹ
ਇਸ ਭਾਗ ਦਾ ਲਿੰਕਹਰ ਯੰਤਰ ਆਪਣੇ ਬਦਲਾਅ-ਸਮੂਹ ਆਪਣੇ ਧਾਰਾ ਵਿੱਚ ਕਲਾਉਡ ਘਰ ਉੱਤੇ ਜੋੜਦਾ ਕਰਦਾ ਹੈ, ਲੜੀਵਾਰ ਨੰਬਰਦਾਰ। ਯੰਤਰ ਕਦੇ ਇਕ ਦੂਜੇ ਦੇ ਧਾਰਾਵਾਂ ਵਿੱਚ ਲਿਖਣਾ ਨਹੀਂ ਕਰਦੇ, ਇਸ ਲਈ ਭੰਡਾਰਣ ਵਿੱਚ ਲਿਖਣਾ ਟਕਰਾਅ ਨਹੀਂ, ਅਤੇ ਹਰ ਯੰਤਰ ਹਰ ਸਾਥੀ ਧਾਰਾ ਲਈ ਸੂਚਕ ਟ੍ਰੈਕ ਕਰਦਾ ਹੈ। ਸਮਕਾਲੀਕਰਨ ਚੱਕਰ ਸਥਾਨਕ ਬਾਹਰ-ਡੱਬਾ ਧੱਕਦਾ ਕਰਦਾ ਹੈ, ਫਿਰ ਹਰ ਸਾਥੀ ਦਾ ਧਾਰਾ ਉਸਦੇ ਸੂਚਕ ਤੋਂ ਅੱਗੇ ਖਿੱਚਦਾ ਕਰਦਾ ਹੈ, ਹਰ ਬਦਲਾਅ-ਸਮੂਹ ਦੀ ਦਸਤਖਤ ਅਤੇ ਲੇਖਕ ਦੀ ਮੈਂਬਰਤਾ ਜਾਂਚਦਾ ਕਰਦਾ ਹੈ apply ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ।
ਚੱਕਰ ਸਥਾਨਕ ਬਦਲਾਅ ਤੋਂ ਬਾਅਦ, backoff ਵਾਲੇ ਨਿਸ਼ਕ੍ਰਿਆ ਸਮਾਂ-ਯੰਤਰ ਉੱਤੇ (ਪੁੱਛਗਿੱਛਾਂ ਵਿਚਕਾਰ ਪੰਜ minutes ਤੱਕ), ਅਤੇ Sync Now ਉੱਤੇ ਤੁਰੰਤ ਚੱਲਦਾ ਹੈ। ਅਸਫਲਤਾਵਾਂ back off ਅਤੇ retry ਕਰਦੇ ਹਨ; ਚੱਕਰ ਹਰ ਚੱਕਰ ਦਾ ਨਤੀਜਾ UI ਨੂੰ ਹਾਲਤ, ਗਲਤੀ ਲਿਖਤ, ਅਤੇ ਲਾਗੂ ਕਤਾਰਾਂ ਦੀ ਗਿਣਤੀ ਵਜੋਂ report ਕਰਦਾ ਹੈ।
ਮਿਲਾਉਣਾ
ਇਸ ਭਾਗ ਦਾ ਲਿੰਕਦੋ ਯੰਤਰ ਦਾ ਦੂਰ ਹੋਣ ਵੇਲੇ ਇੱਕੋ ਸੰਗ੍ਰਹਿ edit ਕਰਨਾ ਆਮ ਹਾਲਤ ਹੈ, ਅਪਵਾਦ ਨਹੀਂ। ਜਦੋਂ ਉਹਨਾਂ ਦੇ ਬਦਲਾਅ ਮਿਲਦੇ ਹਨ:
- different rows or different columns ਉੱਤੇ ਸੋਧਾਂ ਦੋਵੇਂ apply ਹੁੰਦੇ ਹਨ। ਲੈਪਟਾਪ ਉੱਤੇ ਰਿਲੀਜ਼ ਦਾ year edit ਕਰਨਾ ਅਤੇ desktop ਉੱਤੇ ਇਸਦਾ label edit ਕਰਨਾ ਦੋਵੇਂ ਦਿੰਦਾ ਹੈ।
- same column of the same row ਉੱਤੇ ਸੋਧਾਂ ਕਤਾਰ ਦੇ
_updated_atਹਾਈਬ੍ਰਿਡ ਤਾਰਕਿਕ ਘੜੀ ਨਾਲ ਕ੍ਰਮਬੱਧ ਹਨ: ਬਾਅਦਲਾ edit ਜਿੱਤਦਾ, ਨਿਰਧਾਰਿਤ ਤੌਰ ਅਤੇ ਹਰ ਯੰਤਰ ਉੱਤੇ ਇਕਸਾਰ। - Deletes win ਇਕੱਠੀਆਂ ਸੋਧਾਂ ਉੱਤੇ: ਇੱਕ ਯੰਤਰ ਉੱਤੇ ਮਿਟਾਈ ਰਿਲੀਜ਼ ਮਿਟਾਈ ਰਹਿੰਦੀ ਹੈ ਭਾਵੇਂ ਹੋਰ ਯੰਤਰ ਨੇ ਉਸੇ ਅੰਤਰਾਲ ਵਿੱਚ edit ਕੀਤਾ ਹੋਵੇ।
Conflict UI ਨਹੀਂ ਕਿਉਂਕਿ ਨਾ-ਸੁਲਝੀ ਹਾਲਤ ਨਹੀਂ: ਹਰ ਯੰਤਰ ਕਿਸੇ ਵੀ ਲਾਗੂ ਕਰਨ ਕ੍ਰਮ ਤੋਂ ਇੱਕੋ result ਉੱਤੇ ਮਿਲਦੇ ਕਰਦਾ ਹੈ।
Bootstrap
ਇਸ ਭਾਗ ਦਾ ਲਿੰਕਜੁੜਨਾ ਜਾਂ ਵਾਪਸੀ ਯੰਤਰ ਇਤਿਹਾਸ ਸ਼ੁਰੂ ਤੋਂ ਮੁੜ-ਚਲਾਉਣਾ ਨਹੀਂ ਕਰਦਾ। ਇਹ snapshot, ਕਲਾਉਡ ਘਰ ਉੱਤੇ ਵਾਰ-ਵਾਰ ਪ੍ਰਕਾਸ਼ਿਤ ਪੂਰੀ SQLite image, ਉਤਾਰਨਾ ਕਰਦਾ ਹੈ, ਫਿਰ ਸਿਰਫ਼ ਉਹ ਬਦਲਾਅ-ਸਮੂਹ apply ਕਰਦਾ ਹੈ ਜੋ ਹਰ ਧਾਰਾ ਨੇ ਉਸ ਤੋਂ ਬਾਅਦ accumulate ਕੀਤੇ। ਸਨੈਪਸ਼ਾਟ ਮੈਟਾਡੇਟਾ ਸਕੀਮਾ ਵਰਜਨ ਅਤੇ per-ਧਾਰਾ ਸੂਚਕ ਦਰਜ ਕਰਦਾ ਹੈ ਜੋ ਇਹ embody ਕਰਦਾ ਹੈ।
ਸਕੀਮਾ ਵਰਜਨ
ਇਸ ਭਾਗ ਦਾ ਲਿੰਕbae ਦਾ ਸਕੀਮਾ ਨੰਬਰਦਾਰ ਸੀੜ੍ਹੀ ਰਾਹੀਂ ਮਾਈਗਰੇਟ ਕਰਦਾ ਕਰਦਾ ਹੈ, ਅਤੇ ਸੀੜ੍ਹੀ ਦਾ top ਪੈੜਾ ਹਰ ਬਦਲਾਅ-ਸਮੂਹ ਉੱਤੇ ਮੁਹਰਿਆ ਹੈ ਜੋ ਯੰਤਰ ਲਿਖਤਾਂ ਕਰਦਾ ਹੈ। ਯੰਤਰ ਜੋ ਆਪਣੇ ਤੋਂ ਨਵਾਂ ਸਕੀਮਾ ਵਾਲਾ ਬਦਲਾਅ-ਸਮੂਹ ਖਿੱਚਦਾ ਕਰਦਾ ਹੈ, app update ਹੋਣ ਤੱਕ ਉਸ ਧਾਰਾ ਨੂੰ park ਕਰਦਾ ਹੈ, ਉਸ ਤੋਂ ਅੱਗੇ ਕੁਝ apply ਨਹੀਂ ਕਰਦਾ; ਕੁਝ lost ਨਹੀਂ ਅਤੇ ਕੁਝ ਗਲਤ-ਲਾਗੂ ਨਹੀਂ। Database ਫਾਈਲ ਆਪਣੇ ਸਕੀਮਾ ਤੋਂ older ਬਾਈਨਰੀ ਹੇਠ open ਹੋਣ ਤੋਂ ਇਨਕਾਰ ਕਰਦੀ ਹੈ।
ਸਕੀਮਾ ਵਰਜਨ ਤੋਂ ਵੱਧ ਮੋਟਾ compatibility era ਹੈ: ਹਰ ਬਾਈਨਰੀ ਵਿੱਚ ਸ਼ਾਮਲ pin ਕੀਤਾ coven ਸੰਸ਼ੋਧਨ। ਦੋ ਬਣਾਵਟਾਂ ਸਿਰਫ਼ ਇੱਕ ਯੁੱਗ ਅੰਦਰ ਸਮਕਾਲੀਕਰਨ ਕਰਦੇ ਹਨ; coven ਵਾਇਰ-ਫਾਰਮੈਟ ਟੁੱਟਣ ਨਵਾਂ ਯੁੱਗ ਅਤੇ ਹਰ app ਉੱਤੇ ਮੁੱਖ ਵਰਜਨ bump ਹੈ। ਪੂਰਵ-1.0, ਹਰ ਬਣਾਵਟ ਯੁੱਗ ਸਿਫ਼ਰ ਹੈ ਅਤੇ ਫਾਰਮੈਟ ਮਾਈਗ੍ਰੇਸ਼ਨ ਬਿਨਾ ਬਦਲਦੇ ਹਨ।
ਦਾਤਾ ਕੀ ਵੇਖਦਾ ਹੈ
ਇਸ ਭਾਗ ਦਾ ਲਿੰਕOpaque ਘਰ ਉੱਤੇ ਦਾਤਾ ਗੁਪਤ-ਲਿਪੀ ਬਦਲਾਅ-ਸਮੂਹ, ਗੁਪਤ-ਲਿਪੀ ਬਲੌਬ, ਅਤੇ signed ਮੈਂਬਰਤਾ ਰਿਕਾਰਡ ਰੱਖਦਾ ਕਰਦਾ ਹੈ; ਇਹ ਵਸਤੂਆਂ ਗਿਣਤੀ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਆਕਾਰ ਤੇ ਸਮਾਂ ਵੇਖ ਸਕਦਾ ਹੈ, ਅਤੇ ਉਹਨਾਂ ਵਿੱਚੋਂ ਕੁਝ ਨਹੀਂ ਪੜ੍ਹ ਸਕਦਾ। ਯੰਤਰ ਜੋ ਹਰ ਵਸਤੂ ਖਿੱਚਦਾ ਕਰਦਾ ਹੈ, ਉਹ database ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਜਾਂਚਿਆ ਹੈ, ਦਸਤਖਤ ਅਤੇ ਮੈਂਬਰਤਾ: ਭੰਡਾਰਣ ਮੂਰਖ, ਅਣਭਰੋਸੇਯੋਗ ਡਾਕ-ਡੱਬਾ ਹੈ। ਇਨਕ੍ਰਿਪਸ਼ਨ ਅਤੇ ਪਛਾਣ ਅਤੇ ਮੈਂਬਰਤਾ ਵੇਖੋ।