Colonel——视频转码集群程序
Upcoming SlideShare
Loading in...5
×
 

Colonel——视频转码集群程序

on

  • 1,003 views

一个用于视频转码集群的程序简介

一个用于视频转码集群的程序简介

Statistics

Views

Total Views
1,003
Views on SlideShare
1,003
Embed Views
0

Actions

Likes
0
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Colonel——视频转码集群程序 Colonel——视频转码集群程序 Presentation Transcript

    • Colonel
      新浪视频转码程序设计
    • 把所有的机器整合为一台大机器
      任意一台机器可坏
      可通过增加上传机、中心机、转码机分别提高IO、灾备、计算的性能
      功能模块(sergeant)可拆卸、可更新,而不影响任何其他部件(注:规范日志输出)
      目标:
    • 上传机n台,部署1个Captain程序和1个sergeant程序
      上传机与Colonel通信,知道把文件rsync给谁
      中心机2台,均部署1个Colonel程序
      中心机同时工作,互通有无
      转码器n台,均部署1个captain程序和n个sergeant程序
      转码机接受上传机的文件、请求中心机的处理链、并执行之
      物理规划:
    • Colonel管理一个集群,
      Colonel与外部逻辑打交道——取得任务、报告状态,
      Colonel为每个视频生成处理链、下发任务给Captain,
      Colonel是唯一与外部逻辑打交道的程序,
      Captain管理一台机器,
      Captain与Colonel通信——取得任务、报告状态,
      Captain调度Sergeant完成具体工作,
      Sergeant管理一个任务,
      每个Sergeant完成自己的特定任务——按要求转码、分发文件、切割等等。
      逻辑规划:
    • 师部指挥官
      Colonel:上校
    • 伪码:
      listen(rsync)
      {
      search_who_is_idle;
      getaconverter;
      tell the other colonel;
      print convert_ip;
      }
      Listen(convert)
      {
      get filename;
      search_the_info_of_the_file;
      create_convert_argv;
      create_process_link;
      print_process_link;
      }
    • 营部长官
      Captain:上尉
    • 伪码:
      While(have_a_file)
      {
      检查可行性(文件存在么?合法么?完整么?);
      socket询问Colonel如何处理;
      分析Colonel命令(重现处理链,放入hash);
      foreach (%hash)
      {
      eval
      {
      fork_sergeant_1;
      do_sergeant_work;
      log;
      }
      success {reporttocolonel;}
      fail{reporttocolonel;}
      }
      rsynclogfiletocolonel;
      reporttocolonel;
      }
    • 战斗小队中坚
      Sergeant:士官
    • Sergeant
    • 伪码:
      @argv = shift;
      elva
      {
      mencode…
      }
      print logfile;
      socket report to Captain;
      exit;
    • 获取vid: 202.106.184.197:8888、 202.106.182.185:8888
      转化状态通知:表v_auditsinatv_auditsinatv_video
      外部接口:
    • Staff——日志统计
      AirForce—— 上传、转化机合一,减少IO量,加快转码速度
      二期战役