JP6556726B2 - コンピューティング環境においてアダプティブビジーウェイトをサポートするためのシステムおよび方法 - Google Patents
コンピューティング環境においてアダプティブビジーウェイトをサポートするためのシステムおよび方法 Download PDFInfo
- Publication number
- JP6556726B2 JP6556726B2 JP2016541001A JP2016541001A JP6556726B2 JP 6556726 B2 JP6556726 B2 JP 6556726B2 JP 2016541001 A JP2016541001 A JP 2016541001A JP 2016541001 A JP2016541001 A JP 2016541001A JP 6556726 B2 JP6556726 B2 JP 6556726B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- queue
- sleep state
- putting
- idle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Description
この特許文書の開示の一部は、著作権の保護下にある内容を含む。著作権所有者は、特許商標庁の特許ファイルまたはレコードに現れるので、誰でも当該特許文書または特許開示を複製することについて異議はないが、そうでなければ如何なる場合でもすべての著作権を留保する。
本発明は一般にコンピュータシステムに関し、特に、コンピューティング環境におけるスレッド管理に関する。
現代のコンピューティングシステム、特に大組織およびエンタープライズによって使用されるコンピューティングシステムは、サイズおよび複雑性が増加し続けている。特に、インターネットアプリケーションのような領域では、何百万ものユーザが当該アプリケーションに同時にアクセスすることが可能であるべきであるとの期待が存在し、これは、実際上、ユーザによって生成および消費されるコンテンツの量とそのコンテンツに伴うトランザクションとの指数関数的な増加に結びつく。また、そのようなアクティビティにより、データベースおよびメタデータストアへのトランザクションコールの数が対応して増加することになり、当該需要に対応するキャパシティが限られることになる。
分散データグリッドのようなコンピューティング環境において、キュープロセッシングをサポートし得るシステムおよび方法が本願明細書において記載される。中央処理装置(CPU)をサポートする1つ以上のマイクロプロセッサ上で実行されるスレッドが、コンピューティング環境においてキューに関連付けられ得る。システムは、1つ以上のタスクがキューに到着すると、上記1つ以上のタスクを処理するために当該スレッドを使用し得る。さらに、システムは、キューにタスクが存在しない場合、スリープ状態およびアイドル状態のうちの1つにスレッドを適合するように構成し得る。
コンピューティング環境においてキュープロセッシング(queue processing)をサポートし得るシステムおよび方法が本願明細書において記載される。
ある実施形態に従うと、本願明細書において「データグリッドクラスタ」または「データグリッド」と称されるものは、分散化またはクラスタ化された環境内において情報および演算のような関連するオペレーションを管理するために一緒に作動する複数のコンピュータサーバを含むシステムである。データグリッドクラスタは、これらのサーバにわたって共有されるアプリケーションオブジェクトおよびデータを管理するために使用され得る。好ましくは、データグリッドクラスタは、低い応答時間、高いスループット、予測可能なスケーラビリティ、連続的な可用性、および情報信頼性を有するべきである。これらの能力の結果、データグリッドクラスタは、計算集中的である、ステートフルな中間層アプリケーションにおける使用に良好に好適である。たとえばオラクルコヒーレンスデータグリッドクラスタ(Oracle Coherence data grid cluster)といったデータグリッドクラスタのいくつかの例は、より高い性能を達成するために情報をインメモリで格納し得るとともに、複数のサーバにわたって同期される当該情報のコピーを保つ際に冗長性を用い得、これにより、サーバの故障の場合にシステムの回復性とデータの可用性とを保証する。たとえば、オラクルコヒーレンスデータグリッドクラスタは、信頼性があり、非常にスケーラブルなピアツーピアクラスタリングプロトコル上で、レプリケート(replicated)および分散(パーティション化)されたデータ管理およびキャッシングサービスを提供する。
図2は、本発明の実施形態に従った、コンピューティング環境におけるキュープロセッシングをサポートすることについての図を示す。図2に示されるように、分散データグリッドのようなコンピューティング環境200は、キュープロセッシングをサポートするために1つ以上のスレッド(たとえばスレッド211)を使用し得る。スレッド211は、たとえば、分散データグリッドに基づいたメッセージングバスをサポートするために、キュー201に到着するさまざまなタスクを扱うことを担い得る。
図3は、本発明の実施形態に従った、コンピューティング環境においてスレッドを管理するためにアダプティブビジーウェイトアプローチを使用する図を示す。図3に示されるように、スレッド311は、コンピューティング環境300においてキュー301を処理するために使用され得る。
Claims (7)
- コンピューティング環境においてキュープロセッシングをサポートするための方法であって、
前記コンピューティング環境において、1つ以上の中央処理装置(CPU)によって実現される1つ以上のマイクロプロセッサ上で実行されるスレッドをキューに関連付けることと、
1つ以上のタスクが前記キューに到着すると、前記1つ以上のタスクを処理するために前記スレッドを使用することと、
前記キューにタスクが存在しない場合に、スリープ状態およびアイドル状態のうちの1つに前記スレッドを適合するように構成することとを含み、
前記スレッドがスリープ状態である場合、前記1つ以上のCPUは、別のスレッドにスイッチングすることを可能にされ、
タスクが前記キューに到着すると、前記スレッドは、前記スリープ状態から起動され、
前記スリープ状態およびアイドル状態のうちの1つに前記スレッドを適合するように構成することは、
オペレーティングシステム(OS)のファンクションに基づいて、前記スレッドを前記スリープ状態にし、前記スリープ状態から前記スレッドを起動することについてのトータルコストを得ることと、
前記キューに対するワークロードに基づいて、前記スレッドを前記アイドル状態にすることについてのコストを得ることと、
前記スレッドを前記スリープ状態にし、前記スリープ状態から前記スレッドを起動することについての前記トータルコストを、前記スレッドを前記アイドル状態にすることについての前記コストと比較することと、
前記スレッドを前記スリープ状態にすることについての前記トータルコストが、前記スレッドを前記アイドル状態にすることについての前記コストよりも小さい場合、前記スレッドをスリープ状態になるように構成することと、そうでなければ、前記スレッドをアイドル状態になるように構成することとを含む、方法。 - 前記スレッドが前記アイドル状態である場合、前記スレッドが前記1つ以上のCPUをスピンすることを可能にすることをさらに含む、請求項1に記載の方法。
- 前記1つ以上のマイクロプロセッサ上で実行される複数のスレッドを含むスレッドプールを提供することをさらに含む、請求項1または2に記載の方法。
- 各前記スレッドがスリープ状態またはアイドル状態であるべきであるかどうかを独立して決定することを可能にすることをさらに含む、請求項3に記載の方法。
- マシン読取可能な形態のプログラム命令を含むコンピュータプログラムであって、前記プログラム命令は、コンピュータシステムによって実行されると、請求項1〜4のいずれか1項に記載の方法を前記コンピュータシステムに行わせる、コンピュータプログラム。
- 分散データグリッドにおいて非同期メッセージプロセッシングをサポートするためのシステムであって、
1つ以上の中央処理装置(CPU)によって実現される1つ以上のマイクロプロセッサと、
1つ以上のマイクロプロセッサ上で実行されるスレッドとを含み、前記スレッドはコンピューティング環境においてキューに関連付けられており、前記スレッドは、
1つ以上のタスクが前記キューに到着すると、前記1つ以上のタスクを処理することを行なうように動作し、
前記キューにタスクが存在しない場合、スリープ状態およびアイドル状態のうちの1つに適合するように構成され、
前記スレッドがスリープ状態である場合、前記1つ以上のCPUは別のスレッドにスイッチングすることを可能にされ、
タスクが前記キューに到着すると、前記スレッドは前記スリープ状態から起動され、
前記システムは、オペレーティングシステム(OS)のファンクションに基づいて、前記スレッドを前記スリープ状態にし、前記スリープ状態から前記スレッドを起動することについてのトータルコストを得るよう動作し、
前記スレッドは、自らが前記アイドル状態である場合、前記1つ以上のCPUをスピンするよう動作し、
前記システムは、前記キューに対するワークロードに基づいて、前記スレッドを前記アイドル状態にすることについてのコストを得るよう動作し、
前記システムは、前記スレッドを前記スリープ状態にし、前記スリープ状態から前記スレッドを起動することについての前記トータルコストを、前記スレッドを前記アイドル状態にすることについての前記コストと比較するよう動作し、
前記スレッドは、前記スレッドを前記スリープ状態にすることについての前記トータルコストが、前記スレッドを前記アイドル状態にすることについての前記コストよりも小さい場合、スリープ状態になるように構成され、そうでなければ、前記スレッドはアイドル状態になるように構成される、システム。 - 前記1つ以上のマイクロプロセッサ上で実行される複数のスレッドを含むスレッドプールをさらに含み、前記システムは、各前記スレッドがスリープ状態またはアイドル状態であるべきであるかどうかを独立して決定する、請求項6に記載のシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361917709P | 2013-12-18 | 2013-12-18 | |
US61/917,709 | 2013-12-18 | ||
US14/449,357 US9558035B2 (en) | 2013-12-18 | 2014-08-01 | System and method for supporting adaptive busy wait in a computing environment |
US14/449,357 | 2014-08-01 | ||
PCT/US2014/068661 WO2015094704A1 (en) | 2013-12-18 | 2014-12-04 | System and method for supporting adaptive busy wait in a computing environment |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017504887A JP2017504887A (ja) | 2017-02-09 |
JP2017504887A5 JP2017504887A5 (ja) | 2017-12-28 |
JP6556726B2 true JP6556726B2 (ja) | 2019-08-07 |
Family
ID=53368551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016541001A Active JP6556726B2 (ja) | 2013-12-18 | 2014-12-04 | コンピューティング環境においてアダプティブビジーウェイトをサポートするためのシステムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9558035B2 (ja) |
EP (1) | EP3084603B1 (ja) |
JP (1) | JP6556726B2 (ja) |
CN (1) | CN105830029B (ja) |
WO (1) | WO2015094704A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798582B2 (en) * | 2015-10-22 | 2017-10-24 | International Business Machines Corporation | Low latency scheduling on simultaneous multi-threading cores |
CN107147641A (zh) * | 2017-05-10 | 2017-09-08 | 深圳市万游引力科技有限公司 | 一种信息处理方法、系统及计算机存储介质 |
CN110806925B (zh) * | 2018-08-06 | 2022-08-23 | 成都鼎桥通信技术有限公司 | 音频播放方法及设备 |
US11630738B2 (en) * | 2019-04-24 | 2023-04-18 | International Business Machines Corporation | Automatic objective-based compression level change for individual clusters |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5434975A (en) * | 1992-09-24 | 1995-07-18 | At&T Corp. | System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications |
US6427161B1 (en) * | 1998-06-12 | 2002-07-30 | International Business Machines Corporation | Thread scheduling techniques for multithreaded servers |
US6341347B1 (en) * | 1999-05-11 | 2002-01-22 | Sun Microsystems, Inc. | Thread switch logic in a multiple-thread processor |
AU2001247789A1 (en) * | 2000-03-22 | 2001-10-03 | Sidestep, Inc. | Method and apparatus for dynamic information connection engine |
US7137117B2 (en) * | 2000-06-02 | 2006-11-14 | Microsoft Corporation | Dynamically variable idle time thread scheduling |
US7849463B2 (en) * | 2000-06-02 | 2010-12-07 | Microsoft Corporation | Dynamically variable idle time thread scheduling |
US7509671B1 (en) * | 2001-06-20 | 2009-03-24 | Microstrategy Incorporated | Systems and methods for assigning priority to jobs in a reporting system |
US8522192B1 (en) * | 2001-06-20 | 2013-08-27 | Microstrategy Incorporated | Systems and methods for performing operations in a reporting system |
US6965961B1 (en) * | 2002-03-01 | 2005-11-15 | University Of Rochester | Queue-based spin lock with timeout |
US7448036B2 (en) * | 2002-05-02 | 2008-11-04 | International Business Machines Corporation | System and method for thread scheduling with weak preemption policy |
US7234143B2 (en) * | 2002-06-20 | 2007-06-19 | Hewlett-Packard Development Company, L.P. | Spin-yielding in multi-threaded systems |
US7143412B2 (en) * | 2002-07-25 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | Method and apparatus for optimizing performance in a multi-processing system |
US7383368B2 (en) * | 2003-09-25 | 2008-06-03 | Dell Products L.P. | Method and system for autonomically adaptive mutexes by considering acquisition cost value |
US7606804B2 (en) * | 2004-03-15 | 2009-10-20 | Emc Corporation | System and method for information management in a distributed network |
US7594234B1 (en) * | 2004-06-04 | 2009-09-22 | Sun Microsystems, Inc. | Adaptive spin-then-block mutual exclusion in multi-threaded processing |
US7823158B2 (en) * | 2005-08-18 | 2010-10-26 | International Business Machines Corporation | Adaptive scheduling and management of work processing in a target context in resource contention |
US8566827B2 (en) * | 2005-10-27 | 2013-10-22 | International Business Machines Corporation | System and method of arbitrating access of threads to shared resources within a data processing system |
US20070282928A1 (en) * | 2006-06-06 | 2007-12-06 | Guofang Jiao | Processor core stack extension |
US8136111B2 (en) * | 2006-06-27 | 2012-03-13 | International Business Machines Corporation | Managing execution of mixed workloads in a simultaneous multi-threaded (SMT) enabled system |
US8402463B2 (en) * | 2006-10-30 | 2013-03-19 | Hewlett-Packard Development Company, L.P. | Hardware threads processor core utilization |
KR100962531B1 (ko) * | 2007-12-11 | 2010-06-15 | 한국전자통신연구원 | 동적 로드 밸런싱을 지원하는 멀티 쓰레딩 프레임워크를 수행하는 장치 및 이를 이용한 프로세싱 방법 |
US8245236B2 (en) * | 2008-02-27 | 2012-08-14 | International Business Machines Corporation | Lock based moving of threads in a shared processor partitioning environment |
JP5469940B2 (ja) * | 2009-07-13 | 2014-04-16 | 株式会社日立製作所 | 計算機システム、仮想計算機モニタ及び仮想計算機モニタのスケジューリング方法 |
US8510738B2 (en) * | 2009-08-20 | 2013-08-13 | Microsoft Corporation | Preventing unnecessary context switching by employing an indicator associated with a lock on a resource |
JP2011175378A (ja) * | 2010-02-23 | 2011-09-08 | Renesas Electronics Corp | マルチプロセッサシステム、及びマルチプロセッサシステムの動作方法 |
US8627317B2 (en) * | 2010-03-25 | 2014-01-07 | International Business Machines Corporation | Automatic identification of bottlenecks using rule-based expert knowledge |
JP5553685B2 (ja) * | 2010-05-24 | 2014-07-16 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および情報処理方法 |
US8869118B2 (en) * | 2011-06-01 | 2014-10-21 | International Business Machines Corporation | System aware performance counters |
JP5799797B2 (ja) * | 2011-12-21 | 2015-10-28 | 富士通株式会社 | 算出方法、算出プログラム及びコンピュータ |
CN103294531B (zh) * | 2012-03-05 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 一种任务分配方法及系统 |
JP2013222407A (ja) * | 2012-04-18 | 2013-10-28 | Bank Of Tokyo-Mitsubishi Ufj Ltd | 流量制御機能を有するシステム |
US9736271B2 (en) * | 2012-12-21 | 2017-08-15 | Akamai Technologies, Inc. | Scalable content delivery network request handling mechanism with usage-based billing |
US9830199B2 (en) * | 2013-05-22 | 2017-11-28 | International Business Machines Corporation | Low overhead contention-based switching between ticket lock and queued lock |
US9563474B2 (en) * | 2013-06-13 | 2017-02-07 | Wipro Limited | Methods for managing threads within an application and devices thereof |
US10579413B2 (en) * | 2013-08-14 | 2020-03-03 | International Business Machines Corporation | Efficient task scheduling using a locking mechanism |
US10089142B2 (en) * | 2013-08-21 | 2018-10-02 | Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh | Dynamic task prioritization for in-memory databases |
-
2014
- 2014-08-01 US US14/449,357 patent/US9558035B2/en active Active
- 2014-12-04 CN CN201480068927.7A patent/CN105830029B/zh active Active
- 2014-12-04 JP JP2016541001A patent/JP6556726B2/ja active Active
- 2014-12-04 EP EP14825491.5A patent/EP3084603B1/en active Active
- 2014-12-04 WO PCT/US2014/068661 patent/WO2015094704A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20150169367A1 (en) | 2015-06-18 |
CN105830029A (zh) | 2016-08-03 |
JP2017504887A (ja) | 2017-02-09 |
CN105830029B (zh) | 2019-12-17 |
WO2015094704A1 (en) | 2015-06-25 |
US9558035B2 (en) | 2017-01-31 |
EP3084603A1 (en) | 2016-10-26 |
EP3084603B1 (en) | 2018-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10402220B2 (en) | System and method for supporting a scalable thread pool in a distributed data grid | |
US10050857B2 (en) | System and method for supporting a selection service in a server environment | |
US10122595B2 (en) | System and method for supporting service level quorum in a data grid cluster | |
EP3039844B1 (en) | System and method for supporting partition level journaling for synchronizing data in a distributed data grid | |
JP6615761B2 (ja) | 分散データグリッドにおいて非同期呼出をサポートするためのシステムおよび方法 | |
JP6920513B2 (ja) | 分散データグリッドにおける分散データ構造をサポートするためのシステムおよび方法 | |
JP6556726B2 (ja) | コンピューティング環境においてアダプティブビジーウェイトをサポートするためのシステムおよび方法 | |
US9672038B2 (en) | System and method for supporting a scalable concurrent queue in a distributed data grid | |
US9424147B2 (en) | System and method for supporting memory allocation control with push-back in a distributed data grid | |
WO2015099974A1 (en) | System and method for supporting asynchronous invocation in a distributed data grid |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171117 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190128 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190618 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190710 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6556726 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |