著者
藤枝 崇史 新井 淳也 大村 圭 藤田 智成
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS)
巻号頁・発行日
vol.2012-OS-120, no.7, pp.1-8, 2012-02-21

近年,多数のコンピュータを組み合わせることで性能のスケールアウトや冗長化を実現する分散システムの需要が高まっている.分散システムを開発する際には一貫性の保証が焦点となる.強い一貫性は可用性を犠牲にするため,応答速度が重視される Web サービス等のシステムとの相性が悪い.この問題を解決する一貫性に,結果整合性というモデルが存在する.しかし,結果整合性を利用する分散システムの開発は困難である.本論文で紹介する Bloom は,分散システム開発をターゲットとしたプログラミング言語である.Bloom には,結果整合性を利用する処理を簡便に記述できる,一貫性を厳密に保証すべき処理と結果整合性を利用しても良い処理の判別を自動的に行うことが可能である,などの特徴がある.本論文では,Bloom の処理系である Bud の内部実装の解析と,実行速度の評価を行った.評価の結果,Bloom のプログラム内で扱うデータ量が増えるほどにアクセス速度が増加するため,1000 個のデータを扱う場合,Bud のプログラムの処理速度は Ruby の 100 倍前後遅いという結果が得られた.
著者
藤枝 崇史 新井 淳也 大村 圭 藤田 智成
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS)
巻号頁・発行日
vol.2012, no.7, pp.1-8, 2012-02-21

近年,多数のコンピュータを組み合わせることで性能のスケールアウトや冗長化を実現する分散システムの需要が高まっている.分散システムを開発する際には一貫性の保証が焦点となる.強い一貫性は可用性を犠牲にするため,応答速度が重視される Web サービス等のシステムとの相性が悪い.この問題を解決する一貫性に,結果整合性というモデルが存在する.しかし,結果整合性を利用する分散システムの開発は困難である.本論文で紹介する Bloom は,分散システム開発をターゲットとしたプログラミング言語である.Bloom には,結果整合性を利用する処理を簡便に記述できる,一貫性を厳密に保証すべき処理と結果整合性を利用しても良い処理の判別を自動的に行うことが可能である,などの特徴がある.本論文では,Bloom の処理系である Bud の内部実装の解析と,実行速度の評価を行った.評価の結果,Bloom のプログラム内で扱うデータ量が増えるほどにアクセス速度が増加するため,1000 個のデータを扱う場合,Bud のプログラムの処理速度は Ruby の 100 倍前後遅いという結果が得られた.Recently, we have seen a growing demand for distributed systems to achieve scale-out performance and availability by many computers. Tha main focus is ensuring consistency in distributed systems. Strong consistency sacrifice availability. Therefore strong consistency is unfit for the systems that require a high-speed response such as web services. Eventual consistency solves the problem. However development of distributed systems are difficult by using eventual consistency. Bloom is a programming language for distributed systems development. Bloom simplifies a distributed program to use in eventual consistency, and it is possible to automatically analysis whether to use strong consistency or eventual consistency. In this paper, we analyzed Bud, Bloom interpreter implementation, and evaluated of Bud processing speed. As a experimental result, processing speed to access objects increased linearly with increasing amount of objects handled by Bloom program. For example, If Bud program handle 1,000 objects, processing speed of Bud program is 100 times as slow as that of Ruby program.