- سأبدأ من أين أتت دور السينما على الإنترنت.
في سياق تطور الإنترنت ، ظهرت خدمات وسائط OTT ، والتي بدأ استخدامها لنقل محتوى الوسائط عبر الإنترنت ، على عكس خدمات الوسائط التقليدية ، التي تستخدم قنوات الكابل والقمر الصناعي وقنوات الاتصال الأخرى.
تعتمد خدمات الوسائط هذه على OVP - وهي منصة فيديو عبر الإنترنت ، والتي تتضمن نظام إدارة المحتوى ومشغل الويب و CDN. فئة منفصلة من هذه الأنظمة هي OTT-TV ، وهي سينما عبر الإنترنت ، والتي ، بالإضافة إلى OVP ، تنفذ أنظمة التحكم والإدارة للوصول إلى المحتوى ، ونظام حماية حقوق المحتوى الرقمي ، وإدارة الاشتراكات ، والمشتريات ، ومختلف المنتجات والمقاييس الفنية. ويفرض على هذه الأنظمة متطلبات متزايدة لوقت التشغيل والكمون.
سأتحدث عن الواجهة الخلفية ، المسؤولة عن نظام إدارة المحتوى ، وعن وظائف المستخدم في السينما عبر الإنترنت وعن جزء من نظام إدارة المحتوى والتحكم فيه.
دعونا نرى ما هي دور السينما على الإنترنت. في KinoPoisk HD المتوازي ، يتم تنفيذ جميع أنواع الأشياء الرائعة وأوضاع المشاهدة. يقوم الآلاف من مستخدمي RPS بتحديد المحتوى المتاح في واجهات المحلات والاشتراك والشراء. حفظ تقدم التصفح ، إعدادات المستخدم. الآلاف من RPS تولد مقاييس مختلفة. هذه مجموعة كبيرة ومثيرة للاهتمام من المكونات ، لن نتطرق إلى تفاصيلها اليوم. ولكن من الجدير بالذكر أنه بشكل عام ، هذه خدمات جيدة وقابلة للتطوير بشكل مفهوم - نظرًا لحقيقة أن المستخدمين يتم تقاسمها.
اليوم سنركز على السحابة تحت الصندوق. هذه منصة مسؤولة عن تخزين الأفلام والمسلسلات والقيود المختلفة من أصحاب حقوق النشر. بدعم من جهود العديد من الإدارات. جزء من هذه المنصة عبارة عن محول إمكانية الوصول يجيب على الأسئلة التي يمكنني مشاهدتها الآن في هذا الموقع. بدون محول إمكانية الوصول ، لن يظهر أي محتوى حرفيًا على KinoPoisk HD.
يتمثل التحدي الذي يواجه المحول في ترجمة نموذج إمكانية الوصول المرن والطبقات إلى نموذج فعال يتناسب بشكل جيد مع أكبر عدد ممكن من مستهلكي المحتوى.
لماذا هي مرنة وقابلة للتطوير؟ في المقام الأول لأنه يتضمن كيانات مختلفة تصف المحتوى ، وتحقيق الدخل ، والتوافر العلائقي ، والتوافر على المواقع. كل هذا في العلاقات الثورية ، له تسلسل هرمي معقد. وهذه المرونة مطلوبة من أجل تلبية متطلبات العشرات من أصحاب حقوق النشر والعديد من خيارات الأسعار المرنة.
نعني بالمواقع ، على سبيل المثال ، السينما عبر الإنترنت على الويب ، والسينما عبر الإنترنت على الأجهزة وخدمات OTT الشريكة الأخرى التي تشغل أيضًا المحتوى الخاص بنا.
من الواضح أنه لحساب مدى توفر مثل هذا النموذج متعدد المستويات بشكل فعال ، فإنك تحتاج إلى بناء صلات معقدة ، وهذه الاستعلامات لا تتناسب مع أي حمل ، ومن الصعب تفسيرها لإنشاء بعض الوظائف بسرعة وبشكل واضح عليها. لحل هذه المشكلات ، ظهر محول إمكانية الوصول ، مما أدى إلى تشويه النموذج المعروض على الشريحة كمفتاح مركب ، والذي يتضمن معرفات المحتوى والبلدان والمواقع والاشتراكات وبعض المخلفات غير المرئية غير الرئيسية التي تشكل معظم الذاكرة. اليوم سنتحدث عن صعوبات توسيع نطاق محول الوصول.
دعنا نتعمق أكثر في هذا المكون ونرى ما يتكون منه. هنا نرى حالة النظام قبل بدء المشكلة مباشرة. طوال هذا الوقت ، كان محول إمكانية الوصول يتحرك على طول مسار التطور السريع للسينما عبر الإنترنت. كان من المهم إطلاق وظائف جديدة بسرعة ، أولاً وقبل كل شيء ، لضمان توفر عشرات الآلاف من الأفلام والمسلسلات التلفزيونية.
إذا انتقلت من اليسار إلى اليمين ، فهناك CMS ، وهي قاعدة بيانات علائقية تكون في النموذج العادي الثالث وفي EAVيتم تخزين كياناتنا الرئيسية. التالي هو أداة تحميل اللقطات. علاوة على ذلك ، يقوم مُنشئ اللقطات ، الذي يتلقى بانتظام البيانات ذات الصلة ، بترشيحها وإضافتها إلى تخزين اللقطة. هذا هو في الواقع تفريغ SQL. علاوة على ذلك ، داخل مثيل معالج الطلب ، يتلقى Snapshot Loader بانتظام بيانات جديدة ويستوردها إلى H2. H2 هي قاعدة بيانات في الذاكرة مكتوبة بلغة Java والتي تنفذ القدرات الأساسية لنظام DBMS ، أي أن هناك مترجم استعلام ومحسن استعلام وفهارس.
في الواقع ، هذا هو بالضبط المكون الذي يوفر المرونة لإنشاء وظائف جديدة للسينما عبر الإنترنت نظرًا لحقيقة أنه يمكنك ببساطة كتابة استعلامات SQL والانضمام إلى الكيانات التي لم تتم تسويتها بسرعة وسهولة.
يتم تحديث H2 على نموذج النسخ عند الكتابة. يلتقط محمل اللقطات طبعة قاعدة بيانات جديدة وتعبئتها. وبعد ذلك ، بعد الملء ، يتم التخلص من القديم باستخدام جهاز جمع القمامة.
بالتزامن مع H2 ، يتم رفع ذاكرة التخزين المؤقت للكيان ، والتي تتضمن الكيانات المركبة وفهرس فوقها. الكيانات المركبة هي في الأساس استمرارًا لإلغاء التطابق لما يكمن في H2 لاستيعاب طلبات وقت الاستجابة الأكثر تطلبًا من العملاء. يتم تحديث كيانات ذاكرة التخزين المؤقت بنفس الطريقة وفقًا لنموذج النسخ عند الكتابة ، بالتزامن مع رفع مثيلات H2 الجديدة.
المزايا الرئيسية للنظام: يمكنك بسهولة ومرونة إضافة وظائف جديدة باستخدام الصلات. مخطط بسيط نسبيًا لتحديث البيانات عن طريق النسخ عند الكتابة. الجانب السلبي ، بالطبع ، هو أن الأمر يتطلب x2 من الذاكرة لتخزين وتحديث هذه الكيانات. يؤثر هذا بشكل غير مباشر على طلب المستخدم حيث يتم التخلص منه بواسطة جامع البيانات المهملة.
أيضًا ، أثناء إنشاء ذاكرة التخزين المؤقت للكيان ، يلزم وجود مورد وحدة المعالجة المركزية للفهرسة. وهذا أيضًا يؤثر بشكل غير مباشر على طلب المستخدم ، ولكن على حساب المنافسة على موارد وحدة المعالجة المركزية. تؤدي هاتان النقطتان معًا إلى حقيقة أنه مع نمو حجم البيانات لكياناتنا الرئيسية ، يحتاج معالج الاستعلام إلى التوسع عموديًا ، من حيث وحدة المعالجة المركزية والذاكرة.
لكن النظام اعتمد على عشرات الآلاف من الأفلام والمسلسلات التلفزيونية المتاحة على الإنترنت. لذلك ، كانت هذه العيوب مقبولة لفترة طويلة ، مما جعل من الممكن استغلال الميزة الرئيسية من حيث المرونة وسهولة تقديم وظائف جديدة للسينما عبر الإنترنت.
من الواضح أن كل هذا وصل إلى نقطة معينة. تخيل أن هذه الحافلة الصفراء هي محول الوصول الخاص بنا.
تستضيف الأفلام والمسلسلات التي يتم إنتاجها عن طريق إلغاء التطبيع ، أي هناك عشرات الآلاف منها. وفي إحدى المحطات ، يجب رفع مئات الآلاف من مقاطع الفيديو الموسيقية والمقطورات على متنها ووضعها بطريقة ما. مرة واحدة على متن الطائرة ، سوف تتكاثر أيضًا بسبب عدم التطابق. أولئك الذين هم في الداخل يحتاجون إلى الانكماش ، وأولئك الذين هم في الخارج بحاجة للقفز ، والضغط من خلال. يمكنك أن تتخيل كيف يحدث هذا. من الناحية الفنية ، في تلك اللحظة ، نمت سعة ذاكرتنا على سبيل المثال إلى عشرات الجيجابايت. استغرق إنشاء ذاكرة التخزين المؤقت والتخلص من المثيلات القديمة باستخدام أداة تجميع القمامة العديد من النوى الافتراضية. ونظرًا لأن كمية البيانات قد نمت بشكل كبير ، فقد أدى هذا الإجراء برمته إلى حقيقة أن الأمر يستغرق عشرات الدقائق لنشر محتوى جديد.
من الناحية الفنية ، نرى استخدام وحدة المعالجة المركزية هنا في مجموعة معالج الاستعلام. في الخنادق - معالجة طلبات العملاء من عدة آلاف من RPS ، وفي التلال - نفس عدة آلاف من RPS ، بالإضافة إلى نفس تحميل اللقطات والتخلص منها باستخدام جامع القمامة. الرسمان البيانيان السفليان هما وحدة المعالجة المركزية الانتظار على الحاوية. نلاحظ أنهم بدأوا أيضًا في إظهار أنفسهم في لحظة تنزيل اللقطات والتخلص منها.
لاستيعاب مقاطع الفيديو الموسيقية والمقاطع الدعائية هذه والاستمرار في التوسع ، قدمنا مثيلات معالج الطلب النشط والسلبي. في الواقع ، هذا نقل للنسخ عند الكتابة بمستوى واحد لأعلى. الآن لدينا كل من المثيلات النشطة والسلبية في الحاوية. يقوم الخامل بإعداد H2 الجديد وذاكرة التخزين المؤقت للكيان ، بينما يقوم العنصر النشط بمعالجة طلبات المستخدم ببساطة. وبالتالي ، فقد قللنا من تأثير جمع البيانات المهملة وتوقفها المؤقت على معالجة طلبات المستخدمين. ولكن في الوقت نفسه ، نظرًا لأنهم لا يزالون يعيشون في نفس الحاوية ، فإن تحميل اللقطات وبناء ذاكرة التخزين المؤقت لا يزالان يتنافسان على موارد وحدة المعالجة المركزية ، ولا يزال التأثير على طلبات المستخدم موجودًا.
لقد أدخلنا بالإضافة إلى ذلك التقسيم حسب الموقع. وقد أدى هذا إلى تقليل الذاكرة على تلك المواقع التي لا نحتاج فيها إلى كل هذه الأنواع الجديدة من المحتوى. على سبيل المثال ، سمح ذلك لدار السينما عبر الإنترنت بعدم تنزيل مقاطع الفيديو والمقاطع الدعائية الموسيقية وتقليل التأثير. ولكن في الوقت نفسه ، بالنسبة للمواقع التي تحتاج إلى توفير إمكانية الوصول إلى كل المحتوى ، لم يتغير شيء بالطبع.
لذلك ، بقيت إيجابيات وسلبيات المخطط كما كانت من قبل. ولكن بسبب التقسيم ، انتقل القياس الرأسي من حيث وحدة المعالجة المركزية والذاكرة إلى المواقع ، وهذا سمح لبعض المواقع بالاستمرار في التوسع. بالمقارنة مع نظام نشر المحتوى السابق ، لم يتغير هذا بأي شكل من الأشكال. استغرق الأمر عمومًا نفس عشرات الدقائق ، لذلك واصلنا البحث عن طرق لتحسينه.
ماذا فهمنا في ذلك الوقت؟ تستخدم استعلامات السينما عبر الإنترنت جزءًا صغيرًا من إمكانيات DBMS. تدهور مترجم الاستعلام والمحسن بمرور الوقت في ذاكرة التخزين المؤقت للكيان. أدركنا أن تعريف إمكانية الوصول عالمي على نطاق واسع. تختلف الاستعلامات من حيث أنك تحتاج إلى فهم مدى توفر وحدة محتوى أو قائمة وإضافة سمات إضافية لهذا التوفر. بشكل عام ، يمكن القيام بذلك بدون نظام DBMS كامل.
وثانيًا ، جزء من المفتاح المركب هو المعلمات الأساسية المنخفضة. هناك العشرات من البلدان ، في حدود بضع مئات ، وعشرات المواقع ، وعدد قليل من الاشتراكات. على الأرجح ، لا يلزم إلغاء التطابق الكامل. قادتنا هاتان النتيجتان إلى التحرك نحو تمثيل داخل الذاكرة أكثر إحكاما وأقل تشويهًا ، مع الاستمرار في الاستجابة بسرعة لطلبات المستخدم.
في الشريحة ، نرى الانتقال من محول التوفر v1 إلى v2. إليك مخططًا جديدًا لإمكانية الوصول ، حيث يتلخص المفتاح المركب في الواقع ليصبح مجرد مفتاح معرف المحتوى. وتنحصر إمكانية الوصول ، ماديًا أو منطقيًا ، في تحديد مدى التوفر من خلال قوائم البلدان والمواقع والاشتراكات.
وبالتالي ، فإننا نحد من مقدار الباقي غير المرئي غير المفتاح ، والذي يشكل معظم الذاكرة ، ونقلل من حجم الذاكرة في نفس الوقت.
هنا نرى عملية الانتقال إلى دائرة محول إمكانية الوصول الجديدة. يلعب Netflix Hollow دور موفر ومفهرس للكيانات الأساسية ، حيث تجمع خدمات المجال على الفور مجموعة من الكيانات المركبة ذات الأحجام المختلفة. يعمل هذا لأن الكيانات الأساسية لا تزال غير مهيأة وعدد الصلات ضئيل عند البناء. من ناحية أخرى ، فإن تحديد مدى التوفر يعود إلى دورات بسيطة ورخيصة ولا ينبغي أن يكون صعبًا.
في الوقت نفسه ، يقوم Netflix Hollow بتخزين ومعالجة الحمل على وحدة المعالجة المركزية وجمع البيانات المهملة بعناية ، سواء أثناء تحديث البيانات أو أثناء الوصول إليها. يتيح لنا ذلك تقليل التلال التي رأيناها في الرسوم البيانية لاستخدام وحدة المعالجة المركزية وإبقائها عند الحد الأدنى المقبول. بالإضافة إلى ذلك ، نظرًا لأنه ينفذ مخطط تسليم مختلط في شكل لقطات ويختلف عنها ، فيمكنه زيادة سرعة نشر محتوى جديد حتى بضع دقائق.
من الواضح أنه تم الحفاظ على معظم مزايا النظام السابق. أصبحت آلية تحديث البيانات في الذاكرة أبسط وأرخص من حيث استخدام الموارد. التدرج الرأسي بواسطة الأقسام ، حسب المواقع تم استكماله أيضًا بمقياس كيان معين ، وهو الآن أرخص. ونظرًا لأننا قمنا بتقليل النفقات العامة لتحديث اللقطات ، فقد كان هناك تغيير أفقي حقًا عبر وحدة المعالجة المركزية.
الجانب السلبي لهذا المخطط هو أن تكوين الكيان يتطلب مكالمات بين الخدمات أو خدمات منفصلة. ولا يزال هناك تكرار للبيانات على مستوى الكيان الأساسي ، حيث يتم تخزينها الآن في كل خدمة مجال حيث يتم استخدامها. لكن Netflix Hollow يخزن البيانات بشكل أكثر إحكاما من H2 ، ويقوم H2 بتخزينها بشكل أكثر إحكاما من HashMap مع الكائنات. لذلك يعتبر هذا الطرح مقبولًا بالتأكيد ويسمح لك بالنظر إلى المستقبل بتفاؤل.
هذه الشريحة قادرة على شحن مياه الصنبور بتفاؤل. لأن التوسع في البلدان الجديدة لم يعد عاملاً مضاعفًا من الذاكرة - ولا التوسع إلى مواقع جديدة. بسبب التقسيم ، يتم تحويله إلى مقياس أفقي.
حسنًا ، يؤدي توسيع نطاق المستخدمين الجدد وتوسيع وظائف السينما عبر الإنترنت إلى زيادة العبء. لتوفيرها ، نحن على استعداد لتقديم العديد من الخدمات خفيفة الوزن المرتبطة بوحدة المعالجة المركزية حسب الحاجة. من ناحية أخرى ، تراكمت لدينا معرفة كافية في مجال إمكانية الوصول لنتطلع بثقة إلى تحديات جديدة. آمل أن أتمكن من مشاركة بعض هذه المعرفة معك. شكرآ لك على أهتمامك.