並列トランザクショナルアプリケーションのためのプログラミングフレームワーク  [in Japanese] A Programming Framework for Parallel Transactional Applications  [in Japanese]

Access this Article

Search this Article

Author(s)

Abstract

インターネットの普及などによって、アプリケーションが扱うべきデータの量は爆発的に増加している。このような状況に対応するために、計算ノードの追加によって性能の向上を実現するスケールアウトという考え方がある。たとえば Web 検索の分野では、Google の MapReduce やオープンソースプロジェクトの Hadoop といったスケルトン並列プログラミングの考え方に基づいたシステムがこれを実現している。スケールアウトが求められている分野の 1 つに、バッチ処理がある。バッチ処理ではデータの保持のために主にデータベースを利用している。そのため、単純に並列化すると、データアクセスのための通信や特定のノードへのアクセスの集中により、十分なスケーラビリティを得ることができない。そこで我々は、データベースを利用するアプリケーションのスケールアウトを実現するためのシステムを作成した。本システムでは、データをユーザが指定する方法によって分散させ、Owner-Computes Rule に従って計算を行う。ユーザは、Java を拡張した言語を用いて通信や同期など並行処理の詳細について意識することなく、高い抽象度でプログラムを記述することができる。また、耐故障性を備えており、特別なハードウェアを利用しなくても高い信頼性を実現できる。本論文では、本システムで利用する言語の仕様について説明する。Recent advances in Internet-technology-based services are causing an explosion of transactions in many business operations. To respond in such business environments, systems have to be able to deal with the ever-increasing workload requirements in a scale-out fashion. Google's MapReduce system and Apache Hadoop are examples that successfully provide programming environments for developing Web search applications that can scale out. Batch processing systems also need to scale out. They use databases to store the data and update the database frequently. Thus, simple parallelization causes conflicts over data access and prevents the system from scaling. We designed a system to develop scale-out applications that use databases. In this system, users specify the data distribution and the computations are based on the owner-computes rule. Users develop their programs using a Java-based language without considering the complex details of parallel programming. It is a fault-tolerant system and provides high availability without special hardware. This paper describes the specification of the language used in this system.

Recent advances in Internet-technology-based services are causing an explosion of transactions in many business operations. To respond in such business environments, systems have to be able to deal with the ever-increasing workload requirements in a scale-out fashion. Google's MapReduce system and Apache Hadoop are examples that successfully provide programming environments for developing Web search applications that can scale out. Batch processing systems also need to scale out. They use databases to store the data and update the database frequently. Thus, parallelization causes conflicts over data access and prevents the system from scaling. We designed a system to develop scale-out applications that use databases. In this system, users specify the data distribution and the computations are based on the owner-computes rule. Users develop their programs using a Java-based language without considering the complex details of parallel programming. It is a fault-tolerant system and provides high availability without special hardware. This paper describes the specification of the language used in this system.

Journal

  • 情報処理学会論文誌プログラミング(PRO)

    情報処理学会論文誌プログラミング(PRO) 48(SIG12(PRO34)), 41-51, 2007-08-15

    Information Processing Society of Japan (IPSJ)

References:  14

Codes

  • NII Article ID (NAID)
    110006367008
  • NII NACSIS-CAT ID (NCID)
    AA11464814
  • Text Lang
    JPN
  • Article Type
    Article
  • ISSN
    1882-7802
  • NDL Article ID
    8862031
  • NDL Call No.
    Z74-C192
  • Data Source
    CJP  NDL  NII-ELS  IPSJ 
Page Top