ஒத்திசைவு
bae இன் ஒத்திசைவு என்பது coven இன் ஒத்திசைவு: bae தன் அட்டவணைகள் மற்றும் blobs ஐ declare செய்கிறது, மீதியை coven செய்கிறது. bae க்கு பொருந்தும் mechanics இந்தப் பக்கம்; coven இன் சொந்த docs ஒவ்வொரு பகுதியையும் முழு ஆழத்தில் விவரிக்கின்றன.
Capture
இந்தப் பிரிவுக்கான இணைப்புcoven SQLite இணைப்பை வைத்திருப்பதால், bae commit செய்யும் ஒவ்வொரு எழுத்தும் அதன் வழியே செல்லும். ஒத்திசைக்கப்படும் அட்டவணைகளை மாற்றும் transaction commit ஆகும் போது, coven அதே transaction இல் ஒவ்வொரு வரிசையின் மாற்றத்தையும், அது தொட்ட நெடுவரிசைகளுடன், பதிவு செய்யும்; அதனால் commit ஆன மாற்றம் ஒருபோதும் இழக்கப்படாது, செயலி அடுத்த கணமே crash ஆனாலும். diffing இல்லை, dirty flags இல்லை: capture இணைப்பின் பண்பு, எந்த எழுத்தும் தவறாது. மாற்றம் சாதனத்தில் காத்திருந்து அனுப்பும் போது மட்டுமே மறைகுறியாக்கப்பட்டுக் கையொப்பமிடப்படும், அதனால் எழுதத் திறவுகோலோ இணையமோ தேவையில்லை.
மேக இல்லத்தில் நூலகத்தின் முழு வரலாறும் உருப்படிகளின் ஒரு எண்ணிட்ட வரிசை. ஒவ்வொன்றிலும் ஒரு சாதனத்தின் மாற்றத் தொகுப்பு, ஒரு admin entry, ஓர் உறுப்பினருக்கு முத்திரையிட்ட திறவுகோல், அல்லது snapshot அறிவிப்பு இருக்கும். ஒவ்வொரு சாதனமும் அவற்றை ஒழுங்காகப் பயன்படுத்தும், எதையும் தவிர்க்காது; அதனால் என்ன, எப்போது நடந்தது என்பதில் எல்லாச் சாதனங்களும் ஒத்துப்போகும். சாதனம் முந்தைய அனைத்தையும் பயன்படுத்திய பின்பே அடுத்த உருப்படியைச் சேர்க்கும்.
ஒரு ஒத்திசைவுச் சுற்று, சாதனம் கடைசியாகப் பயன்படுத்திய உருப்படிக்கு அப்பால் விடுபட்டது கிடைக்கும் வரை படித்து, ஒவ்வொன்றின் கையொப்பத்தையும் சரிபார்த்துப் பயன்படுத்தும்; இந்தச் சாதனத்தின் வரிசையில் உள்ள மாற்றங்களை ஒரு புதிய உருப்படியாக அனுப்பும்; பின் புதிய நிலை கோரும் வேலையைச் செய்யும்: அணுகலைப் பகிர்தல் அல்லது அகற்றுதல், snapshots எடுத்தல், பழைய வரலாற்றை நீக்குதல். அமைதியான நூலகத்தில் ஒரு சுற்று அதன் அளவு எதுவாயினும் இரண்டு கோரிக்கைகளே எடுக்கும்.
சுற்றுகள் உள்ளூர் மாற்றங்களுக்குப் பின், idle timer இல், Sync Now இல் உடனடியாக இயங்கும். தோல்விகள் ஒரே backoff திட்டத்தில் மீண்டும் முயற்சிக்கும்; முன்னேற முடியாதது தான் எதற்காகக் காத்திருக்கிறது என்று சொல்லும், அதை bae தன் ஒத்திசைவு நிலை வரியில் காட்டும்.
இரண்டு சாதனங்கள் பிரிந்திருக்கும்போது அதே நூலகம் யை edit செய்வது சாதாரண நிலை; விதிவிலக்கு அல்ல. அவற்றின் changes சந்திக்கும் போது:
- வேறு வரிகள் அல்லது வேறு columns க்கான edits இரண்டும் apply ஆகும். laptop இல் வெளியீடு year ஐ edit செய்து desktop இல் label ஐ edit செய்தால், இரண்டும் கிடைக்கும்.
- ஒரே வரிசையின் ஒரே நெடுவரிசை க்கான திருத்தங்கள் timestamp ஆல் ஒழுங்குபடுத்தப்படும்: பிந்தைய திருத்தம் வெல்லும், தீர்மானமாகவும் ஒவ்வொரு சாதனத்திலும் ஒரேபடியாகவும்.
- ஒரே நேரத் திருத்தங்கள் மீது நீக்கம் வெல்லும்: பின்னர் நீக்கப்பட்ட வரிசைக்குச் செய்த திருத்தம் எப்போது வந்தாலும் தோற்கும்; அதனால் ஒரு சாதனத்தில் நீக்கிய வெளியீடு, அதே இடைவெளியில் மற்றொரு சாதனம் திருத்தியிருந்தாலும் நீக்கப்பட்டதாகவே இருக்கும்.
coven ஒவ்வொரு மேலெழுதப்பட்ட மதிப்பையும் இழந்த மதிப்பு ஆக வைத்திருக்கும்; bae அவற்றில் எதையும் காட்டுவதுமில்லை, நீக்குவதுமில்லை, அதனால் மோதல் UI இல்லை. வரும் ஒழுங்கு எதுவாயினும், ஒவ்வொரு சாதனமும் அதே முடிவை அடையும்.
ஸ்னாப்ஷாட்கள்
இந்தப் பிரிவுக்கான இணைப்புசேரும் அல்லது மீட்கும் சாதனம் வரலாற்றைத் தொடக்கத்திலிருந்து replay செய்வதில்லை. சாதனங்கள் snapshots எடுக்கும், அதாவது வரிசையின் ஒரு புள்ளியில் நூலகத்தின் முழு நிலை; நூலகத்துக்கும் ஒவ்வொரு தனிப்பட்ட circle க்கும் ஒன்று கிடைத்த பின் அதற்கு முந்தைய வரலாறு நீக்கப்படும். புதிய சாதனம் சமீபத்திய snapshot ஐ ஏற்றி, அதன் பின் வந்ததை மட்டுமே பயன்படுத்தும். வைத்திருக்கும் வரலாற்றை விட நீண்ட காலம் விலகியிருந்த சாதனமும் இதையே செய்யும், தன் அனுப்பப்படாத திருத்தங்களை வைத்துக்கொள்ளும்.
Schema versions
இந்தப் பிரிவுக்கான இணைப்புbae இன் schema ஒரே migration, சாதனம் அனுப்பும் ஒவ்வொரு மாற்றமும் அது உருவான schema பதிப்பைப் பதிவு செய்யும். தன்னுடையதை விடப் புதிய schema வின் மாற்றத்தை அடையும் சாதனம் அங்கேயே நிற்கும், செயலி புதுப்பிக்கப்படும் வரை அதற்குப் பின் எதையும் பயன்படுத்தாது; எதுவும் இழக்கப்படாது, எதுவும் தவறாகப் பயன்படுத்தப்படாது.
schema version ஐ விட coarse ஆனது compatibility era: ஒவ்வொரு binary யிலும் baked செய்யப்பட்ட pinned coven revision. இரண்டு builds ஒரே era உட்பட்டால் மட்டுமே ஒத்திசைவு செய்யும்; coven wire-வடிவம் break புதிய era மற்றும் ஒவ்வொரு app க்கும் major version bump. Pre-1.0 இல், ஒவ்வொரு build உம் era zero; வடிவங்கள் migration இன்றி மாறும்.
Provider பார்க்கக்கூடியவை
இந்தப் பிரிவுக்கான இணைப்புவழங்குநர் மறைகுறியாக்கப்பட்ட மாற்றங்கள், snapshots, உறுப்பினர் பதிவுகள், கோப்புகளை வைத்திருப்பார்; உருப்படிகளை எண்ணலாம், அளவையும் நேரத்தையும் கவனிக்கலாம், எந்தக் கணக்கு ஒவ்வொரு உருப்படியையும் எழுதுகிறது எனப் பார்க்கலாம், ஆனால் உள்ளடக்கத்திலிருந்து எதையும் படிக்க முடியாது. சாதனம் பெறும் ஒவ்வொரு உருப்படியும் தரவுத்தளத்தைத் தொடும் முன் கையொப்பத்தாலும் உறுப்பினர் நிலையாலும் சரிபார்க்கப்படும்: சேமிப்பு ஒரு செயலற்ற, நம்பகமற்ற அஞ்சல்பெட்டி. மறைகுறியாக்கம், அடையாளமும் உறுப்பினர் நிலையும் பார்க்கவும்.