విషయానికి వెళ్లండి

డేటా నమూనా

bae నమోదు సాధారణ SQLite, coven కు పట్టిక పట్టికగా ప్రకటించబడింది: సమకాలీకరించబడే పట్టికలు వాటిని చదవగల ప్రతి పరికరానికీ వెళ్తాయి; ప్రకటించని పట్టికలు పరికరాన్ని వదలవు. ఈ విభజనే డేటా నమూనాలో అత్యంత ముఖ్యమైన నిర్ణయం, కాబట్టి ఈ పుట దాని చుట్టూ నిర్మించబడింది.

Schema యొక్క సమకాలీకరించే గుండె:

  • artists, albums, works: గుంపు పొర. ఆల్బమ్ తన విడుదలలను కలిపి primary దానివైపు చూపిస్తుంది; works శాస్త్రీయ నిర్మాణం కోసం parent/child graph అవుతాయి.
  • ** releases **: మధ్యస్థ అంశం, దిగుమతి చేసిన ప్రతి ప్రతికి ఒక వరుస. క్లిక్ ఫాక్ట్స్ (లేబుల్, కాటలాగ్ సంఖ్య, బార్ కోడ్, దేశము, ఫార్మాట్, సంవత్సరము), ఐచ్ఛిక మెటాడేటా ప్రొవైడెన్స్, దిగుమతి చేసుకున్న ఫోల్డర్ యొక్క సారాంశ హ్యాష్, మరియు అల్బమ్ లావుడెస్సును కొలుస్తుంది. ప్రొవైడెన్స్ లేదు అంటే మెటాడేటా నేరుగా ప్రవేశపెట్టబడింది; బయటి ప్రొవైడెన్స్ సరిగ్గా మూలం విడుదల పేరును సూచిస్తుంది, అయితే ఫైల్ ట్యాగ్‌లు స్థానిక స్నాప్‌షాట్ మూలాన్ని రికార్డు చేస్తుంది.
  • release_identities: ఒక విడుదల ఇది ఏమిటనే దాని యొక్క నిజమైన బహిర్గత గుర్తింపులు. వరుసలు లేవు అంటే బహిర్గత గుర్తింపులు లేవు. ప్రతి వరుస ఒక MusicBrainz లేదా Discogs విడుదల మరియు విడుదల సమూహం పేరును కలిగి ఉంటుంది, మరియు ఒక విడుదల రెండు మూలాల నుండి ఒకేసారి గుర్తింపులను కలిగి ఉంటుంది. ఇది ప్రవృత్తి నుండి వేరుగా ఉంటుంది: గుర్తింపు ప్రస్తుత సరికూర్చదగిన మెటాడేటా ఆ మూలము నుండి పునఃఅమర్పు చేయబడింది అని చెప్పకుండా మార్చబడవచ్చు.
  • tracks with track_artists, plus release_artist_roles and track_artist_roles: పాటల జాబితాలు మరియు credits, ప్రతి credit తన మూలంతో tagged.
  • track_works, work_parts, work_artists: రికార్డింగ్‌లు అవి ప్రదర్శించే కృతులకు కలుపబడతాయి.
  • audio_formats and audio_format_segments: వినిపింపు specs. ప్రతి పాటకు: codec, నమూనా rate, bit depth, channels, కొలిచిన శబ్ద తీవ్రత మరియు peak, pregap పొడవులు. Segments పాటను మూల దస్త్రాల క్రమబద్ధమైన బైట్ మరియు నమూనా కిటికీల మీద map చేస్తాయి; అందుకే CUE rip లో పాట, pregap సహా, ఒక పెద్ద దస్త్రం లేదా ఎన్నో దస్త్రాల భాగాల మీద విస్తరించగలదు.
  • release_files, covers, artist_images: blob-bearing పట్టికలు. Rows నమోదు entries; బైట్లు coven blob పొరలో ఉంటాయి (కింద చూడండి).
  • people, ratings, history, playlists, playlist_entries: ప్రతి వ్యక్తి profile మరియు వారు తమ కోసం నమోదు చేసేది. ఇవి owner పట్టికలు: వాటి రచయిత పరికరాలు మాత్రమే వాటిని మార్చగలవు. history, playlists లోని ప్రతి వరుసా ఇంటి పంచుకున్న store లో లేదా వ్యక్తి వ్యక్తిగత circle లో ఉంటుంది.

సమకాలీకరించబడేవి మరియు స్థానికం

ఈ విభాగానికి లింక్

పైన ఉన్న ప్రతి పట్టికా షరతు లేకుండా సమకాలీకరించబడుతుంది: స్థానిక విడుదల వరుసలు మరే విడుదల లాగానే ప్రతి పరికరానికీ చేరతాయి; కాబట్టి ఇంటి దగ్గర ఏముందో ప్రతి పరికరానికీ తెలుస్తుంది, స్థానిక విడుదల పాటను సూచించే rating లేదా playlist entry ప్రతి పరికరం చదవగల వరుసను సూచిస్తుంది. విడుదల శబ్దం, అది ఉన్న paths మాత్రమే దిగుమతి చేసిన పరికరంలో ఉంటాయి. ప్రతి పట్టికా తన వరుస గుర్తింపు, పాఠకులు, owner పట్టికా కాదా, అది ఉంచే దస్త్రాలతో ప్రకటించబడుతుంది; ఒక test ప్రకటనలను సరిగ్గా ఈ జాబితాకే కట్టుబడేలా ఉంచుతుంది.

పూర్తిగా స్థానిక పట్టికలు, coven కు ఎప్పుడూ declared కావు:

  • playback_state: ప్రస్తుత పాట, స్థానం, వరుస, శబ్ద పరిమాణం, shuffle మరియు repeat. వినిపింపు పరికర విషయం.
  • స్కాన్ మరియు దిగుమతి పట్టికలు: గమనించే సంచయాలు, స్కాన్‌లు, దిగుమతి అభ్యర్థులు, వాటి చిత్తుప్రతులు.
  • source_release మరియు దాని కింది tables: bae తెచ్చిన ప్రతి MusicBrainz మరియు Discogs release నుండి తీసినది — album మరియు pressing వివరాలు, credits మరియు works తో పూర్తి tracklist, cover ఎంపికలు, ఇతర catalogs దాన్ని ఏమని పిలుస్తాయో — స్థానిక విడుదల కంటే ప్రొవైడర్ విడుదల ద్వారా కీ చేయబడింది. raw JSON ఉంచబడదు; ఏ పరికరమైనా release ను మళ్లీ తేగలదు.
  • local_release_files: ఈ పరికరంలో స్థానిక విడుదల దస్త్రాల paths మరియు మార్పు సమయాలు.
  • local_history: ఈ పరికరపు వ్యక్తికి profile ఏర్పడక ముందు జరిగిన వినడాలు, profile ఏర్పడినప్పుడు వారి వ్యక్తిగత circle కు తరలించబడతాయి.

రెండు పరికరాల సవరణలు cell వారీగా కలుస్తాయి, రెండూ మార్చిన cell లో తర్వాతి సవరణ గెలుస్తుంది. coven కలయిక లెక్కను తన స్వంత పట్టికల్లో ఉంచుతుంది, కాబట్టి bae పట్టికల్లో clock columns లేవు.

శబ్దం మరియు చిత్రాలు coven దస్త్రాలు, ప్రతి రకం తన స్వంత పరికర cache పరిమితి ఉన్న ఒక namespace: release_files (20 GiB), covers (512 MiB), artist_images (256 MiB), మరియు avatars (64 MiB). వరుస తన దస్త్రాన్ని coven దస్త్రపు id ద్వారా సూచిస్తుంది: release_files, covers, artist_images పై file, మరియు people పై avatar_id. దస్త్రపు పరిమాణం, విషయ hash, స్థానం coven వి, అవి coven_files తో join చేసి చదవబడతాయి.

విడుదల దస్త్రాలు వినియోగదారువి: స్థానిక విడుదల దస్త్రాలు వినియోగదారు స్వంత దస్త్రాలు వాటి అసలు paths లో, local_release_files లో నమోదై ఉంటాయి, దాని వరుసలు ఏ coven దస్త్రాన్నీ సూచించవు. విడుదలను మేఘానికి తరలించడం ఒకే రాతలో ప్రతి దస్త్రాన్నీ coven లో సిద్ధం చేసి ప్రతి వరుసనూ దాని దస్త్రం వైపు చూపిస్తుంది; చివరిది నిల్వ అయిన వెంటనే coven అన్నిటినీ కలిపి మేఘానికి మారుస్తుంది, ఇతర పరికరాలు మొదటి చదవడంలో ప్రతిదాన్నీ cache లోకి తెచ్చుకుంటాయి. కవర్లు, కళాకారుల చిత్రాలు, avatars bae వి: bae bytes ను సృష్టిస్తుంది (కవర్లు గరిష్ఠంగా 600px వెడల్పు JPEG thumbnails గా మళ్లీ తయారవుతాయి), పరికరం ప్రతిదాన్నీ మొదటిసారి చూపినప్పుడు తెచ్చుకుని, దాని namespace పరిమితి దాన్ని తొలగించే వరకు ఉంచుకుంటుంది.

ప్రతి దస్త్రం యాదృచ్ఛిక పేరు కింద గుప్తీకరించబడి పంపబడుతుంది, అది సిద్ధం చేయబడినప్పుడు స్థిరపడిన path వద్ద; కాబట్టి తర్వాతి పేరు మార్పు object ను కదిలించదు. దస్త్రం తన bytes ను ఎప్పుడూ మార్చదు: కొత్త చిత్రం అంటే కొత్త దస్త్రం.

ప్రతి దిగుమతి కొత్త యాదృచ్ఛిక గుర్తింపుతో విడుదలను, దాని స్వంత ట్రాక్ మరియు ఫైల్ వరుసలను సృష్టిస్తుంది. ప్రతి పరికరం తన ప్రతి దిగుమతి చదివిన ఫైళ్ల క్రమబద్ధమైన సాపేక్ష మార్గాలు, పరిమాణాలు, మార్పు సమయాల SHA-256ను local_release_originలో నమోదు చేస్తుంది; ఈ నమోదు ఎప్పుడూ సింక్ కాదు. ఈ పరికరం హ్యాష్‌ను నమోదు చేసిన ఫోల్డర్ ఎక్కడికి తరలించినా పూర్తయిన దిగుమతుల ట్యాబ్‌లో ఉంటుంది, దాని వరుస దాని నుండి దిగుమతి చేసిన ఏకైక విడుదలను సూచిస్తుంది. అదే పరికరంలో అవే ఫైళ్లను మళ్లీ దిగుమతి చేస్తే విఫలమవుతుంది; పూర్తయిన దిగుమతుల ట్యాబ్‌లో మళ్లీ దిగుమతి చేసే చర్య ఉండదు.