ラベル StreamDS の投稿を表示しています。 すべての投稿を表示
ラベル StreamDS の投稿を表示しています。 すべての投稿を表示

2011年3月5日土曜日

DEBS - ACM Conference on Distributed Event Based System

DEBS 2011 http://debs2011.fzi.de/

過去の DEBS のストリーム関連の論文。

DEBS 2010 http://debs10.doc.ic.ac.uk/
- Scalable, Elastic Distributed Stream Processing, David Alves
- Semantic Quality-Assurance in Distributed and Heterogeneous Stream Processing Systems
- Processing out-of-order event streams in ETALIS
- StreamNetFlux: Birth of Transparent Integrated CEP-DBs (demo)
- Flood: Elastic Streaming MapReduce (demo)
- Placement of Replicated Tasks for Distributed Stream Processing Systems (IBM Watson)
- Workload Characterization for Operator-Based Distributed Stream Processing Applications (IBM Watson)
- Evaluation of Streaming Aggregation on Parallel Hardware Architectures


DEBS 2009 http://debs09.isis.vanderbilt.edu/
- Distributed Event Stream Processing with Non-deterministic Finite Automata
- Implementing Reliable Event Streams in Large Systems via Distributed Data Flows and Recursive Delegation
- Processing Publish/Subscribe Queries over Distributed Data Streams (

DEBS 2008 http://debs08.dis.uniroma1.it/
- Replica Placement for High Availability in Distributed Stream Processing Systems
- Real-Time, Load-Adaptive Processing of Continuous Queries Over Data Streams

DEBS 2007 http://www.debs.msrg.utoronto.ca/
- Mythbusters: event stream processing versus complex event processing, Invited Talk, Tim Bass
- High frequency distributed data stream event correlation to improve neonatal clinical management
- A practical approach for enabling online analysis of event streams
- Persisting and querying biometric event streams with hybrid relational-XML DBMS

2011年3月3日木曜日

[StreamDS] 負荷予測手法に関する論文

以下は負荷予測手法に関する関連論文3本。

Trace-based evaluation of job runtime and queue wait time predictions in grids
http://portal.acm.org/citation.cfm?id=1551609.1551632

Large-scale distributed computing systems such as grids are serving a growing number of scientists. These environments bring about not only the advantages of an economy of scale, but also the challenges of resource and workload heterogeneity. A consequence of these two forms of heterogeneity is that job runtimes and queue wait times are highly variable, which generally reduces system performance and makes grids difficult to use by the common scientist. Predicting job runtimes and queue wait times have been widely studied for parallel environments. However, there is no detailed investigation on how the proposed prediction methods perform in grids, whose resource structure and workload characteristics are very different from those in parallel systems. In this paper, we assess the performance and benefit of predicting job runtimes and queue wait times in grids based on traces gathered from various research and production grid environments. First, we evaluate the performance of simple yet widely used time series prediction methods and the effect of applying them to different types of job classes (e.g., all jobs submitted by single users or to single sites). Then, we investigate the performance of two kinds of queue wait time prediction methods for grids. Last, we investigate whether prediction-based grid-level scheduling policies can have better performance than policies that do not use predictions.


Swift: Fast, Reliable, Loosely Coupled Parallel Computation
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.92.519

A common pattern in scientific computing involves the execution of many tasks that are coupled only in the sense that the output of one may be passed as input to one or more others—for example, as a file, or via a Web Services invocation. While such “loosely coupled” computations can involve large amounts of computation and communication, the concerns of the programmer tend to be different than in traditional high performance computing, being focused on management issues relating to the large numbers of datasets and tasks (and often, the complexities inherent in “messy ” data organizations) rather than the optimization of interprocessor communication. To address these concerns, we have developed Swift, a system that combines a novel scripting language called SwiftScript with a powerful runtime system based on CoG Karajan and Falkon to allow for the concise specification, and reliable and efficient execution, of large loosely coupled computations. Swift adopts and adapts ideas first explored in the GriPhyN virtual data system, improving on that system in many regards. We describe the SwiftScript language and its use of XDTM to describe the logical structure of complex file system structures. We also present the Swift system and its use of CoG Karajan, Falkon, and Globus services to dispatch and manage the execution of many tasks in different execution environments. We summarize application experiences and detail performance experiments that quantify the cost of Swift operations. 1.


Delay scheduling: a simple technique for achieving locality and fairness in cluster scheduling
http://portal.acm.org/citation.cfm?id=1755940

As organizations start to use data-intensive cluster computing systems like Hadoop and Dryad for more applications, there is a growing need to share clusters between users. However, there is a conflict between fairness in scheduling and data locality (placing tasks on nodes that contain their input data). We illustrate this problem through our experience designing a fair scheduler for a 600-node Hadoop cluster at Facebook. To address the conflict between locality and fairness, we propose a simple algorithm called delay scheduling: when the job that should be scheduled next according to fairness cannot launch a local task, it waits for a small amount of time, letting other jobs launch tasks instead. We find that delay scheduling achieves nearly optimal data locality in a variety of workloads and can increase throughput by up to 2x while preserving fairness. In addition, the simplicity of delay scheduling makes it applicable under a wide variety of scheduling policies beyond fair sharing.


Generating Adaptation Policies for Multi-tier Applications in Consolidated Server Environments
http://portal.acm.org/citation.cfm?id=1444674
Creating good adaptation policies is critical to building complex autonomic systems since it is such policies that define the system configuration used in any given situation. While online approaches based on control theory and rule-based expert systems are possible solutions, each has its disadvantages. Here, a hybrid approach is described that uses modeling and optimization offline to generate suitable configurations, which are then encoded as policies that are used at runtime. The approach is demonstrated on the problem of providing dynamic management in virtualized consolidated server environments that host multiple multi-tier applications. Contributions include layered queuing models for Xen-based virtual machine environments, a novel optimization technique that uses a combination of bin packing and gradient search, and experimental results that show that automatic offline policy generation is viable and can be accurate even with modest computational effort.

2010年8月31日火曜日

DEDUCE: at the intersection of MapReduce and stream processing

System S のランタイム上で MapReduce 処理系を作った話。必見。

DEDUCE: at the intersection of MapReduce and stream processing
Proceedings of the 13th International Conference on Extending Database Technology 2010
Vibhore Kumar(IBM)

http://portal.acm.org/citation.cfm?id=1739120

2010年7月26日月曜日

[StreamDS] 論文投稿完了

松浦君が COMSYS 2010 に論文投稿を完了しました。大変お疲れ様です。結果はただ待つのみですが、どちらにしてもやり残したことがいくつかあると思うので、インターンが終了したら少し整理していきましょう

2010年6月11日金曜日

COMSYS 2010

COMSYS 2010 http://www.ipsj.or.jp/sig/os/index.php?ComSys2010
研究室からは以下の論文を出したいと思います。

- 松浦君+雁瀬君 --> StreamDS の話
- 上野君 --> StreamGPU の話

7月23日が論文アップロード締め切りです。がんばりましょう。

2010年4月19日月曜日

[StreamCloud] アーキテクチャ考察

StreamCloud の System S 上での実現方法を石井君と議論を行ったので、そのメモを記す。現行の System S では、ホストの動的な削除は可能だが、ホストの動的な追加はできない(正確には、インスタンスへのホストの追加は streamtool addhost コマンドで可能だが、新たなホストには PE が割り当てられない)。この制限はクラウド環境を用いて、データが低レートの時は System S が稼動する VM をsuspend し, bursty な状況においては その VM をresume するようなシステムを構築する際に問題となる。

この問題を(比較的きれいに)解決するため、以下の図のように System S/SPADE の import/export 機能を用いた疎結合なアーキテクチャ構成を考える。

 要はモノシリックな SPADE アプリケーションにしてしまうと、現行の System S の機能では新たに追加されたホストへのデータ供給が難しい。しかし、import/export を用いれば、データを受信しスケジューリングするコンポーネントと、計算側のコンポーネントを分離でき、必要なときにクラウド側の計算用 SPADE ジョブを立ち上げ、import 機能でデータを取り込むような構成にすれば上記の問題が解決される、というわけだ。但し、実装上、本当に可能かはより詳細な検討・検証が必要であろう。


Job Scheduler の役割と、ジョブが処理されるまでの流れは以下の通り。
  1. ホストとストリーム番号のマッピングテーブルの管理:  UDOP の出力ストリームは物理ホストを指定することができないので、Job Scheduler (UDOP) では、内部で出力ストリーム番号(以下、ストリーム番号と省略する)とホスト名をマッピングするテーブルを持たせる。このテーブルには、その他にも、スケジューリングアルゴリズムのために必要な各ホストの属性情報(CPU,メモリ、OS,動的負荷情報、メモリ使用量, レイテンシの平均及び分散、クラウド環境のホストかどうか)を持たせる。

  2. バースト度合いの計算: Job Scheduler はデータ到着レートを見てバースト度合いを計算。LAN 内のクラスタで処理できる量かどうかを調べる。

  3. バーストでない場合: 2の計算にてバーストでないと判断された場合には、Cluster Load Management Component (Python などのスクリプト言語を用いた軽量実装) からストリームとして流れる各ホストのロード情報を用いて、データを投げるホストを決定。決定したホスト名に相当するストリーム番号を上記のテーブルから引いてきて、データとプロパティをセットし、ストリームをexport する。export のプロパティは、クラウド環境も含めた一意の ID とする。

  4. バーストな場合: 2の計算にてバーストと判断された場合に、Cloud Controller (こちらも 同じく Python などのスクリプト言語を用いた軽量実装とする)に指令を出す。Cloud Controller はあるポート番号にて Listen しており、Job Scheduler からの指令を待つ。クラウドに対する VMM の管理コマンドが Job Scheduler から発行された場合には、Amazon EC2 や Eucalyptus などのクラウド環境に対して REST API を用いてその管理コマンドを発行する。また、VM の resume 時には、その VM にて System S のジョブが実行されるように、ジョブをサブミットする。計算側でのジョブは、import でデータを取り込み、処理を開始する。VM の suspend の際にはジョブキャンセルを実行する。
 ちなみに、Cluster Load Management や Job Scheduler の機能は、System S の管理デーモンである SRM (Streams Resource Manager) や SCH (Scheduler) と同等の役割を果たしており、それらのデーモンを改変、拡張すれば良いのではとの指摘を受けると思われるが、そのような指摘に対して事前に対応するため、素直に前提条件として、「管理デーモンを改変することができない」ことを述べた方が良いだろう。

 ただし、クラウドを用いた Elastic なデータストリーム処理という考え方、及びそれらのスケジューリングポリシーを提案することが、本研究の Contribution であることを強調し、今回 SPADE 上でアプリケーションレベルで実装したのとは本質的な差はないことを述べれば良い。

2010年4月18日日曜日

Burst Detection

データストリームに対するバースト検出に関する論文。StreamDS, StreamCloud 及び StreamAlgo に関係してきますので、要チェック.

  • Adaptive Burst Detection in in a Stream Engine (PDF)
NYU (New York University) のDennis Shasha のグループの論文
  • Better burst detection, ICDE 2006
  • Efficient Elastic Burst Detection in Data Streams, SIGKDD 2003
  • Statistical monitoring of thousands of data streams in real time, VLDB2002

2010年3月22日月曜日

[StreamDS/StreamShedder] Data Stream Load Shedding - Dynamically Managing Channel Capacity by Amit Ahuja

今年は、DSMS における Load Shedding にも本格的に取り組んでいきたいので、以下の本を誰か一人に読んでもらいたいと思います。本の内容は、ある研究者が提案している一手法なので、この周辺の研究の様々な手法を紹介しているわけではないことには注意が必要ですが、論文の書き方、数理的なモデルの構築方法、アルゴリズムの書き方は、Load Shedding に関わらない人にとっても多いに参考になると思います。

Data Stream Load Shedding - Dynamically Managing Channel Capacity by Amit Ahuja (Amazon)

[当研究の大枠]
当研究では以下の2つの Load Shedding を取り上げているが、特に (1) の手法に焦点を当てて論じている。

(1) intra-stream load shedding: ある特定のストリームの中で重要度の低い属性を間引くことで、与えられた通信チャネルの限界容量を越えないようにする。この研究では、間引く単位は、”タプルではなく”、”属性”単位で間引くこと、そして、Source で間引いたデータを recovery する機能、の2つがユニークだと主張する。
(2) inter-stream load shedding: 単一のチャネルを複数のストリームが流れ、その総和がチャネルの限界容量をコ越える際の問題。すべてのストリームを管理する central load shedder というコンポーネントが存在し、それが各ストリームのデータ転送レートを監視し、どのストリームのどの属性をどのくらい間引けば(ぎりぎり)限界容量を越えないかを判断する

[分散を用いた属性のランキング決め]
ストリームの属性の判断の仕方は、すべての属性のデータの「分散」を求めて、分散が大きいものはより重要度が高く、小さいものは「重要度が小さい」とする。トレーニングセットを用いて、ストリームのデータセットのすべての分散を計算し、タプル中の各属性のランクを決める (3.2.3.2)

[属性のランキングを決める上での工夫]
タプルの属性のランクを決める上で、ある属性(例えば砂漠上の降水量)が偶然そのトレーニングセットで突発的な変化(ある時間帯だけ瞬間的に雨が降った、等)が含まれている場合には、その属性のランキングが高まってしまい、より重要な属性(例えば砂漠の温度の変化)を落としてしまう可能性がある。ランキングの精度を高めるために、当研究では "移動平均 (Moving Average)" を使用している。移動平均には、スライディングウィンドウ中に存在するあるデータリスト(時系列順に揃っているデータ)の各データに対して、すべて同じ重みをつけて計算する Simple Moving Average (SMA) と、より新しいデータにより高い重みを付けて計算する Exponential Moving Average (EMA) が存在する。EMA の計算方法は p35 の (3.2) によって計算される.(3.2.2, p33-) 後の評価では、SMA 及び EMA を比較するが、当然ながら EMA の方がより良い結果を得ている。

[間引く量]
Load Shedding では、「何を間引くか?」と「どれくらい間引くか?」の2つの課題があるが、3.2.3.1 に記載されているが、バンド幅を B とし、ストリームのデータレートを R とすると、当然、 (R-B) の分だけ取り除く必要があり、かつ上記の属性のランキング決定に基づいてどの属性を何個取り除くかを決定する。属性によってバイト数が異なるため、それももちろん考慮する。

[適応的な Load Shedding Schema の変更方法]
Load Shedding Scheme (間引く戦術)自体は、静的に決められるものではなく、ある時間間隔 (インターバル)を持って再評価し、その時間帯で最適な Scheme に更新する必要がある (3.2.3.3, p41). この再評価のインターバルだが、短すぎるとパフォーマンスに影響を与えるし、長すぎると短期的な変化に対応できない。そこで、当研究では、まず、初期値のある程度短いインターバルをもって計算。次の再評価の時に、前回の Scheme (属性のランキングなど)と比較し、差がほとんどなかったら、インターバルの時間を2倍に設定する。次の評価の際に、 Scheme と設定した閾値以上異なる場合には、インターバルを初期値にリセット。このアルゴリズムが p42 に記載されており、"Adaptive Load Shedding Scheme Re-evaluation Algorithm" と呼んでいる。

[間引いたデータの復旧方法]
エンドユーザーは、Load Shedding が実行されたときに、ソース側で間引かれた属性を要求する場合がある。Shed したすべてのデータをディスクに保存しておくことは無理なのでエラー閾値(Error Threshold Value: 返された値が間違っている場合)とソースサイドにおける計算・ディスク容量とのトレードオフ(保存するにもCPUパワーは当然使う)になる。この問題のために、当研究では、「Euclidean Distance」と 「Synopsis Recovery Algorithm」の2つを提案している。
 後者は、Synposis、つまりサマリーデータ (Synopsis Recovery Matrix と呼ぶ)を保存しておき、Shed しようとしているデータと最も直近ののデータの差がエラー閾値以上であったら、Synopsis に貯められているデータの更新をし、閾値以下であったら更新しない。このエラー閾値はアプリケーション毎に異なり、インターネットモニタリングよりも患者のモニタリングの場合の方が当然閾値がきつくなる。

2010年2月20日土曜日

卒論発表会

松浦君、森田君の卒論発表が無事に終わりました。大変お疲れさまでした。



2010年1月15日金曜日

StreamDS : 関連研究論文

    StreamDS (Dynamic Scheduler) の関連研究論文です。
    • Enabling Resource Sharing between Transactional and Batch Workloads Using Dynamic Application Placement, David Carrera (Technical University of Catalonia - Barcelona Supercomputing Center, Spain), Malgorzata Steinder (IBM Research, United States), Middleware 2008

    • Karve, A., Kimbrel, T., Pacifici, G., Spreitzer, M., Steinder, M., Sviridenko, M., Tantawi, A.: Dynamic placement for clustered web applications. In: WWW Conference, Edinburgh, Scotland (May 2006)

      StreamDS の仮定と同じくある限られた計算資源上で異なる Web アプリケーション(例: AppA, AppB, AppC) が複数稼動している際に、均一に Web {A, B,C} をクラスタ上で稼動させると、例えば、AppA への負荷が突発的に高くなり、ある Service Level (例えば、レイテンシ)を満たさなくなる恐れが生じる。このような場合を想定して、負荷の状況に応じて、Web アプリケーションの配置を動的に変えるためのリアルタイムスケジューリングを提案。この論文で提案されている Placement Algorithm (アプリをどのように計算資源に配置すれば最適か)は参考になるが、StreamDS では、優先度として、バッチ処理>>>ストリーム処理であり、もし計算資源に余裕がない場合にはバッチ処理は行わなくても良いし、また、ストリーム処理自体は statefull なオペレータ (Aggregate などのウィンドウ処理)も存在するので、stateless な Web アプリケーションとは解いている問題が若干異なる。

    • Lin, B., Dinda, P.: VSched: Mixing batch and interactive virtual machines using periodic real-time scheduling. In: Proc. ACM/IEEE Supe1rcomputing, Seattle, WA (Nov. 2005)

    • Ravindran, B., Jensen, E.D., Li, P.: On recent advances in time/utility function real-time scheduling and resource management. In: ISORC ’05: Proceedings of the Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC’05), Washington, DC, USA, IEEE Computer Society (2005) 55–60

    • Balli, U., Anderson, J.S.: Utility accrual real-time scheduling under variable cost functions. IEEE Trans. Comput. 56(3) (2007) 385–401 Member-Haisang Wu and Senior Member-Binoy Ravindran and Member-E. Douglas Jensen.

    • Chun, B.N., Culler, D.E.: User-centric performance analysis of market-based cluster batch schedulers. In: CCGRID ’02

    • Carrera, D., Steinder, M., Whalley, I., Torres, J., Ayguad´e, E.: Utility-based placement of dynamic web applications with fairness goals. In: 11th IEEE/IFIP Network Operations and Management Symposium (NOMS 2008), Salvador Bahia, Brazil (2008)

    • Urgaonkar, B., Shenoy, P., Roscoe, T.: Resource overbooking and application profiling in shared hosting platforms. In: Proc. Fifth Symposium on Operating Systems Design and Implementation, Boston, MA (Dec. 2002)
    電力消費量関係
    • Mark Blackburn, データセンターのサーバー電力消費量を削減する5つの方法, The Green Grid, http://www.thegreengrid.org/, White Paper (URL)

    2010年1月10日日曜日

    StreamDS: Hadoop との統合

    金曜日に GSIC 佐藤さんとちょっとだけミーティングしましたが、松岡研究室の白幡君が卒論で、Hadoop のスケジュラー部分のコード(ジョブの記述情報を表現した JobConf オブジェクトがどのようにHadoop スケジューラに渡されるか?)を調べているので、松浦君の今やっている研究の発展系として、是非今年前半に、Hadoop との統合をやりましょう。今、現在は、松浦君のバッチシステムは、ストリーム処理と同じく System S を用いていますが、Hadoop などのシステムとして統合できるとより説得力が増すと思います