JP2018532172A - リソーススケジューリングのための方法およびシステム - Google Patents

リソーススケジューリングのための方法およびシステム Download PDF

Info

Publication number
JP2018532172A
JP2018532172A JP2018502137A JP2018502137A JP2018532172A JP 2018532172 A JP2018532172 A JP 2018532172A JP 2018502137 A JP2018502137 A JP 2018502137A JP 2018502137 A JP2018502137 A JP 2018502137A JP 2018532172 A JP2018532172 A JP 2018532172A
Authority
JP
Japan
Prior art keywords
application
requests
instance
instances
request queue
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.)
Granted
Application number
JP2018502137A
Other languages
English (en)
Other versions
JP7020616B2 (ja
Inventor
ヤン、リン
パン、レイ
マオ、リアンリアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority claimed from PCT/US2016/046447 external-priority patent/WO2017027649A1/en
Publication of JP2018532172A publication Critical patent/JP2018532172A/ja
Application granted granted Critical
Publication of JP7020616B2 publication Critical patent/JP7020616B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2871Implementation details of single intermediate entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

プロキシサーバを利用するアプリケーションシステムに対するリソーススケジューリングのためのスケジューリングシステムおよび方法であって、アプリケーションシステムは、1つまたは複数のホストを含み、1つまたは複数のアプリケーションを動作させ、それぞれの1つまたは複数のアプリケーションが1つまたは複数のインスタンスを有する。方法は、1つまたは複数のアプリケーションのに対してアプリケーションシステムによって処理されるプロキシサーバでのアプリケーションリクエストのリクエストキューをモニタリングする段階と、予め決められたスケジューリングルールおよびリクエストキューのステータスに従って1つまたは複数のアプリケーションのアプリケーションに対するアプリケーションシステムのコンピューティングリソースをスケジューリングする段階とを含む。

Description

[関連出願の相互参照]
本出願は、「リソース分配のための方法およびシステム」の名称で2015年8月13日に出願された中国特許出願第201510494855.9号および「リソーススケジューリングのための方法およびシステム」の名称で2016年8月9日に出願された米国特許出願第15/231,812号の優先権の利点を主張するものであり、参照によりそれらの全体が本明細書に両方組み込まれる。
本開示は、サーバのようなシステム上で動作するコンピュータアプリケーションの分野に関するものであり、特にリソーススケジューリングのための方法およびシステムに関する。
アプリケーションシステムのオペレーションにおける問題は、時折多数のヒットまたはリクエストを発生することである。アプリケーションシステムが通常に動作し得ることを確実とすべく、サーバは概して最も高い需要量に応じて構築される。しかしながら、この場合、結果は通常オペレーション条件下においてアイドルリソースが大多数となることとなる。ヒットの数のピークがシステム構築期間の間で低く見積もられた場合、アプリケーションシステムが遅くなることとなり、または多数の同時リクエストが生じた場合、アプリケーションシステムがクラッシュすることとなる。従って、フレキシブルなスケジューリング機構が、上記の問題を対処するよう提案されている。すなわち、多数のヒットがある場合、コンピューティングリソースは、システムの処理能力を拡張するよう自動的に形成されることとなる。また、少数のヒットおよびシステムがアイドルである場合、コンピューティングリソースは、コストを抑えるよう自動的に低減されることとなる。
従来のフレキシブルなスケジューリング機構は、主にシステムリソースの利用に基づいてアプリケーションの負荷を決定する。それは、例えば、CPU、メモリ、ネットワークフロー、磁気ディスクIO、およびそのようなものなどのようなリソースの利用に基づいている。アプリケーションによるCPUまたはメモリの利用率が高い場合、そのアプリケーションに対して必要な拡張をすることが決定される。しかしながら、ある場合において、この手法では、真の利用状態を反映することに失敗することがある。例えば、いくつかのアプリケーションによって利用されるシステムリソースは、多くはないかもしれないが、そのようなアプリケーションの処理が、極めて遅いか、一時中断されることさえある。そのようなアプリケーションには、現在のフレキシブルなスケジューリング機構の使用は、拡張のための必須要件を満たすことができない。
いくつかの実施形態によれば、本開示は、スケジューリングの実際の必要性をより正確に決定して満たすリソーススケジューリングのための方法およびシステムを提供する。
いくつかの実施形態によれば、本開示は、予め決められたスケジューリングルールおよびアプリケーションリクエストのブロッキングステータスに従って、アプリケーションに対する、サーバおよびサーバのコンピューティングリソースのスケジューリングによって処理されるアプリケーションリクエストのブロッキングステータスのモニタリングする段階を含む、リソーススケジューリングのための方法を提供する。
本開示のいくつかの実施形態によれば、サーバによって処理されるアプリケーションリクエストのブロッキングステータスをモニタリングする段階は、サーバにおけるブロックリクエストのキュー内のリクエストの数を集計する段階と、サーバによって処理されるアプリケーションリクエストを含むブロックリクエストのキューと、アプリケーションリクエストのブロッキングステータスを取得する集計されたリクエストの数に対する解析および統計解析を実行する段階とを含む。
本開示のいくつかの実施形態によれば、アプリケーションリクエストのブロッキングステータスは、特定のアプリケーションに関するリクエストのブロッキングステータスと、特定のインスタンスに関するリクエストのブロッキングステータスと、特定のホストに関するリクエストのブロッキングステータスとの少なくとも1つを含む。
本開示のいくつかの実施形態によれば、サーバ内のブロックリクエストのキューにおけるリクエストの数を集計する段階は、プロキシサーバの公開されたAPIからのサーバにおけるブロックリクエストのキュー内のリクエストの数を集計する段階を含む。
本開示のいくつかの実施形態によれば、方法は、プロキシサーバにおいてイベントモニタリングおよび統計モジュールを提供する段階をさらに含み、イベントモニタリングおよび統計モジュールは、提出したリクエストの数を取得すべくサーバへリクエストを提出するプロキシサーバのイベントに対しモニタリングし、処理したリクエストの数を取得すべくサーバがリクエストの処理を完了したことを確認するプロキシサーバがイベントに対しモニタリングし、ならびに提出したリクエストの数および処理したリクエストの数に従って、サーバにおけるブロックリクエストのキューにおいてリクエストの数を決定する。
本開示のいくつかの実施形態によれば、プロキシサーバの公開されたAPIからのサーバにおけるブロックリクエストのキュー内のリクエストの数を集計する段階は、APIによって提供されたURLにアクセスする段階と、URLに対応するページデータからサーバにおけるブロックリクエストのキュー内のリクエストの数を取得する段階とを含む。
本開示のいくつかの実施形態によれば、アプリケーションリクエストの予め決められたスケジューリングルールおよびブロッキングステータスに従って、アプリケーションに対するサーバのコンピューティングリソースをスケジューリングする段階は、特定のアプリケーションに関するリクエストのブロッキングステータスが第1の拡張条件を満たす場合、特定のアプリケーションに対して新たなインスタンスを生成し、配置する段階と、特定のアプリケーションに関するリクエストのブロッキングステータスが第1の縮小条件を満たす場合、特定のアプリケーションに対してインスタンスを低減させる段階と、特定のインスタンスに関するリクエストのブロッキングステータスが第2の拡張条件を満たす場合、特定のインスタンスに対してシステムリソースを増加させる段階と、または特定のインスタンスの負荷を分担すべく他のインスタンスを使用する段階と、特定のインスタンスに関するリクエストのブロッキングステータスが第2の縮小条件を満たす場合、特定のインスタンスに対してシステムリソースを低減させる段階と、特定のホストに関するリクエストのブロッキングステータスが第3の拡張条件を満たす場合、特定のホストの負荷を分担すべく他のホストを使用する段階と、特定のホストに関するリクエストのブロッキングステータスが第3の縮小条件を満たす場合、特定のホスト上のインスタンスに優先的に配置する段階と、または他のホストの負荷を分担すべく特定のホストを優先的に使用する段階とのうち少なくとも1つを含む。
本開示のいくつかの実施形態によると、方法は、特定のアプリケーションにおける、インスタンスによるリソース利用をモニタリングする段階と、特定のアプリケーションにおいて、インスタンスによる平均リソースの利用が予め決められた第1の上限値より大きいまたは等しい場合、特定のアプリケーションに対してインスタンスを増加させる段階と、特定のアプリケーションにおいて、インスタンスによる平均リソースの利用が予め決められた第1の下限値より小さいまたは等しい場合、特定のアプリケーションに対してインスタンスを低減させる段階と、特定のアプリケーションにおいて、インスタンスによってリソース利用をモニタリングする段階と、インスタンスによるリソース利用が予め決められた第2の上限値より大きいまたは等しい場合、インスタンスによって利用されるシステムリソースを増加させる段階と、インスタンスによるリソース利用が予め決められた第2の下限値より小さいまたは等しい場合、インスタンスによって利用されるシステムリソースを低減させる段階と、ホストが利用不可能として検出された場合、ホスト上のインスタンスの移動を開始する段階と、処理が利用不可能として検出された場合、処理を再開し、不成功とした場合は、処理上のインスタンスの移動を開始する段階と、アプリケーションの例外が検出された場合、アプリケーションを再開する段階と、アプリケーションに対するインスタンスの移動を開始する段階と、またはアラートを生成する段階との少なくとも1つをさらに含む。
本開示は、またリソーススケジューリングのためのシステムを提供し、サーバによって処理されるアプリケーションリクエストのブロッキングステータスをモニタリングするためのブロックモニタリングユニットと、アプリケーションリクエストの予め決められたスケジューリングルールおよびブロッキングステータスに従ってアプリケーションに対するサーバのコンピューティングリソースをスケジューリングするためのスケジューリングユニットとを含む。
特に、本開示のいくつかの実施形態によれば、ブロックモニタリングユニットは、アプリケーションリクエストのブロッキングステータスを取得すべくモニタリングサブユニットによって集計されたリクエストの数に対する解析および統計解析を実行するために、サーバにおけるブロックリクエストのキュー内のリクエストの数を集計するためのモニタリングサブユニットと、ブロックリクエストのキューがサーバによって処理されるアプリケーションリクエストと、コンピューティングサブユニットとを含む。
本開示のいくつかの実施形態によれば、アプリケーションリクエストのブロッキングステータスは、特定のアプリケーションに関するリクエストのブロッキングステータスと、特定のインスタンスに関するリクエストのブロッキングステータスと、特定のホストに関するリクエストのブロッキングステータスとの少なくとも1つを含む。
本開示の好ましい実施形態によれば、モニタリングサブユニットは、プロキシサーバの公開されたAPIからのサーバにおけるブロックリクエストのキュー内のリクエストの数を集計する。
本開示のいくつかの実施形態によれば、システムは、提出したリクエストの数を取得すべくサーバへのプロキシサーバ提出リクエストのイベントに対しモニタリングプロキシサーバ内に提供されるイベントモニタリングおよび統計モジュールをさらに含み、処理したリクエストの数を取得すべくサーバがリクエストの処理を完了したことをプロキシサーバが確認するイベントに対しモニタリングし、ならびに提出したリクエストの数および処理したリクエストの数に従って、サーバにおけるブロックリクエストのキューにおいてリクエストの数を決定するよう構成される。
特に、本開示のいくつかの実施形態によれば、モニタリングサブユニットは、APIによって提供されたURLにアクセスすることと、URLに対応するページデータからサーバにおけるブロックリクエストのキューにおいてのリクエストの数を取得することとのためのものである。
特に、本開示のいくつかの実施形態によれば、スケジューリングユニットは、特定のアプリケーションに関するリクエストのブロッキングステータスが第1の拡張条件を満たす場合、特定のアプリケーションに対して新たなインスタンスを生成し、配置することと、特定のアプリケーションに関するリクエストのブロッキングステータスが第1の縮小条件を満たす場合、特定のアプリケーションに対してインスタンスを低減させることと、特定のインスタンスに関するリクエストのブロッキングステータスが第2の拡張条件を満たす場合、特定のインスタンスに対してシステムリソースを増加させることと、または特定のインスタンスの負荷を分担すべく他のインスタンスを使用することと、特定のインスタンスに関するリクエストのブロッキングステータスが第2の縮小条件を満たす場合、特定のインスタンスに対してシステムリソースを低減させることと、特定のホストに関するリクエストのブロッキングステータスが第3の拡張条件を満たす場合、特定のホストの負荷を分担すべく他のホストを使用することと、特定のホストに関するリクエストのブロッキングステータスが第3の縮小条件を満たす場合、特定のホスト上のインスタンスに優先的に配置されることと、または他のホストの負荷を分担すべく特定のホストを優先的に使用することとの少なくとも1つのスケジューリングを実行する。
本開示のいくつかの実施形態によれば、ブロックモニタリングユニットは、特定のアプリケーションにおいて、インスタンスによるリソース利用のモニタリングのためにさらに使用され、スケジューリングユニットは、さらに、特定のアプリケーションにおいて、インスタンスによる平均リソースの利用が予め決められた第1の上限値より大きいまたは等しい場合、特定のアプリケーションに対してインスタンスを増加させることと、特定のアプリケーションにおいて、インスタンスによる平均リソースの利用が予め決められた第1の下限値より小さいまたは等しい場合、特定のアプリケーションに対してインスタンスを低減させることと、または、インスタンスによるリソース利用が予め決められた第2の上限値より大きいまたは等しい場合、インスタンスによって利用されるシステムリソースを増加させることと、インスタンスによるリソース利用が予め決められた第2の下限値より小さいまたは等しい場合、インスタンスによって利用されるシステムリソースを低減させることとを構成する。
本開示のいくつかの実施形態によれば、システムは、ホスト、処理またはアプリケーションの動作状態を検出するためのステータス検出ユニットをさらに含み、スケジューリングユニットは、さらに使用されるために、ホストがステータス検出ユニットによって利用不可能として検出された場合、ホスト上のインスタンスの移動を開始することと、処理がステータス検出ユニットによって利用不可能として検出された場合、処理を再開することと、不成功として検出された場合、処理上のインスタンスの移動を開始することと、アプリケーションの例外がステータス検出ユニットによって検出された場合、アプリケーションを再開することと、アプリケーションに対するインスタンスの移動を開始することと、またはアラートを生成することとを含む。
本開示のいくつかの実施形態によれば、スケジューリングユニットは、アプリケーションリクエストの予め決められたスケジューリングルールおよびブロッキングステータスに基づいたスケジューリング命令を生成し、管理サブユニットへスケジューリング命令を送信するためのスケジューリングサブユニットと、スケジューリング命令に従って、アプリケーションに対してサーバのコンピューティングリソースのスケジューリングを実行する管理サブユニットとを含む。
本明細書の説明および描写から明らかなように、本開示は、サーバによって集計され、処理される、アプリケーションリクエストのブロッキングステータスによる手法を採用し、この手法に基づいて、アプリケーションによるシステムリソースの利用に基づく代わりに、アプリケーションに対するサーバのコンピューティングリソースがスケジューリングされる。サーバによって処理されるアプリケーションリクエストのブロッキングステータスがアプリケーションの負荷をより正確に反映し得るため、本開示によるスケジューリングの方法がスケジューリングの実際の必要性をより正確に満たし得、コンピューティングリソースのオペレーションおよびプロセッサが一部であるシステム全体を改善し得る。
本明細書に描写された添付図面は、以下の詳細な説明を併せることで本開示のさらなる理解を提供するよう意図されている。本開示の実施形態のそれらの例示的な説明は、本開示のさらなる説明および明確化のために意図され、本開示の範囲は、任意の特定の実施形態の説明または添付図面によって定義されるものではなく、特許請求の範囲によって定義されるものである。本開示は、以下の添付図面を含む。
図1は、本開示のいくつかの実施形態によるアーキテクチャの非限定的なブロック図である。
図2は、本開示のいくつかの実施形態による方法の模式フロー図である。
図3は、本開示のいくつかの実施形態による方法の模式フロー図である。
図4は、本開示のいくつかの実施形態によるリソーススケジューリングのためのシステムのブロック図である。
本開示の目的、技術的解決および利点をより明確なものとすべく、本開示は、添付図面および特定の実施形態を参照して下記に詳細に説明される。
本開示の理解を促進するよう、まずアーキテクチャに基づく本開示が説明される。図1に示されるように、アーキテクチャにおいて、サーバ102は、アプリケーションリクエストを詳細処理するためのネットワークデバイスである。すなわち、アプリケーションリクエストのアクセス対象は、サーバ102であり、アプリケーションのサービスコンテンツを認識するよう各アプリケーションリクエストを処理することを担う。さらに、アプリケーションリクエストを処理するためのサーバ102は、単一のサーバであり得、または複数のマシンを含むサーバのクラスタであり得る。
サーバ102において、少なくとも1つのホストが存在し得、それぞれのホストがその上で動作する1つまたは複数のアプリケーションインスタンスを有している。すなわち、アプリケーションは、1つよりも多くのアプリケーションインスタンスで構成され得、それぞれのアプリケーションインスタンスがホスト上に配置される。アプリケーションインスタンスは、同じホスト上に配置され得、もしくは異なるホストに配置され得、またはサーバのクラスタの異なるサーバ上にさえも配置され得る。
図1に示されるアーキテクチャにおいて、プロキシサーバ104は、処理のためにユーザ側のデバイスからサーバへのアプリケーションリクエストの転送およびサーバからユーザ側のデバイスへの応答の転送を担う。
スケジューリングシステム100は、本開示のコアであり、サーバ102によって処理されるアプリケーションリクエストのブロッキングステータスをモニタリングすることと、アプリケーションリクエストの予め決められたスケジューリングルールおよびブロッキングステータスに従って、アプリケーションに対するサーバのコンピューティングリソースのスケジューリングを実行することとを担う。より詳細には、サーバ102によって処理されるアプリケーションリクエストのブロッキングステータスをモニタリングする場合、スケジューリングシステムは、サーバから直接的にブロッキングステータスを取得しない。しかし、代わりにサーバ102によって処理されるプロキシサーバ104からデータを集計することで、アプリケーションリクエストのブロッキングステータスを間接的に取得し、ブロッキングステータスを解析する。処理ステップおよびスケジューリングシステムのコンポーネントは、下記において詳細に説明される。
図2は、本開示のいくつかの実施形態による方法の模式フロー図である。
いくつかの実施形態によれば、本開示は、リソーススケジューリングのための方法を提供する。ステップ200は、1つまたは複数のアプリケーションに対してアプリケーションシステムによって処理されるプロキシサーバでのアプリケーションリクエストのリクエストキューをモニタリングする。ステップ203は、予め決められたスケジューリングルールおよびリクエストキューのステータスに従って1つまたは複数のアプリケーションのアプリケーション に対するアプリケーションシステムのコンピューティングリソースをスケジューリングする。
図3は、本開示のいくつかの実施形態による方法の模式フロー図であり、例えば、当該方法は、上記において説明されたスケジューリングシステムによって実行され得る。図3に示されるように、方法は、以下のステップを含む。
ステップ201は、プロキシサーバの公開されたAPI(アプリケーションプログラミングインターフェース)からのサーバにおけるブロックリクエストのキュー内のリクエストの数を集計する。
サーバがアプリケーションリクエストを処理した後、プロキシサーバがアプリケーションリクエストをサーバへ転送し、サーバから戻された応答を受信することを担うため、サーバによって処理されるサーバへ送信されたリクエストの数は、プロキシサーバによってサーバへ転送されたアプリケーションリクエストの数およびプロキシサーバによってサーバから受信される応答に対応するリクエストの数によって既知とされ得る。この処理に基づいて、サーバにおけるブロックリクエストのキュー内のリクエストの数の集計は、プロキシサーバを介して取得し得る。
より詳細には、プロキシサーバが非同期イベント処理機構に従うので、処理が実行された場合、対応するイベントが存在することとなる。従って、イベントモニタリングおよび統計モジュールは、イベントモニタリングおよび統計モジュールが予めプロキシサーバ内に提供され得、プロキシサーバがリクエストのイベントおよび統計をモニタリングすることを担う。すなわち、提出されたリクエストの数を取得すべくイベントモニタリングおよび統計モジュールは、サーバへのリクエストを表しているプロキシサーバのイベントをモニタリングする。本明細書において、グローバル変数は、提出されたそれぞれのリクエストに対して、グローバル変数に1の値が加えられ(例えば、変数は uとして識別されると仮定する)提出されたリクエストの数を表すよう使用され得る。さらに、処理したリクエストの数を取得すべく、イベントモニタリングおよび統計モジュールは、サーバがリクエストの処理を完了したことをプロキシサーバが確認するイベントに対しモニタリングする(例えば、サーバがアプリケーションリクエストを処理した後、サーバから戻された応答を受信する)。処理されたリクエストを受信したそれぞれの応答に対して上記のグローバル変数uから1の値を引かれることとなる。グローバル変数の最終値は、サーバにおけるブロックリクエストのキューにおいてリクエストの数、すなわち、サーバによって処理されるサーバによって送信されたリクエストの数としてみなされ得る。
いくつかの実施形態において、イベントモニタリングおよび統計モジュールは、ネットワーク接続が確立したリクエストの数を取得すべく、プロキシサーバがネットワーク接続を確立するが、いまだサーバへ転送されていないイベントもモニタリングし得る。リクエストの数は、サーバが直面することとなる処理負荷を示し、コンピューティングリソースに続くスケジューリングにおいて、基準として使用し得るスケジューリングユニットのアシストファクタとして機能し得る。
上記のように取得されたリクエストの数は、プロキシサーバの公開されたAPIを通してイベントモニタリングおよび統計モジュールによって出力され得、例えば、出力のためにHTTPプロトコルが採用され得る。例えば、APIは、特定のURLを提供し得る。さらに、スケジューリングシステムがURLをアクセスした場合、APIは、上記に記載のリクエストの数をフォーマット化されたデータの形態で提供し得るページを返すこととなり、すなわち、スケジューリングシステムがURLに対応するページデータからサーバにおけるブロックリクエストのキュー内のリクエストの数を取得する。
ステップ202は、アプリケーションリクエストのブロッキングステータスを取得すべく集計したリクエストの数に対する解析および統計解析を実行する。
このステップでは、集計されたリクエストの数に対する数値解析および統計解析は、それぞれの特定のアプリケーションに対応するブロックリクエストのキューにおけるリクエストの数と、それぞれの特定のインスタンスに対応するブロックリクエストのキューにおけるリクエストの数と、特定のホストに対応するブロックリクエストのキューにおけるリクエストの数とを決定するよう実行され得る。リクエストのために、それが対応する特定のアプリケーションは、それがアクセスするドメイン名に従って決定され得、それが対応する特定のホストは、それがアクセスするIPアドレスに従って決定され得、また、それが対応する特定のインスタンスは、それがアクセスするポートに従って決定され得る。
対応するコンピューティングリソースの処理能力と組み合わせてブロックリクエストのキューにおけるリクエストの数は、リクエストのブロッキングステータスを反映し得、これは、本明細書における下記の説明において明らかとなることとなる。
ステップ203は、アプリケーションリクエストの予め決められたスケジューリングルールおよびブロッキングステータスに従って、アプリケーションに対するサーバのコンピューティングリソースをスケジューリングする。
特定のアプリケーションのに対して、アプリケーションに関するリクエストのブロッキングステータスが第1の拡張条件を満たす場合、例えば、ブロックリクエストのキューにおけるリクエストの数が、アプリケーションによって利用されるコンピューティングリソースの処理能力の3倍を超え(本明細書では、「3倍」とは単に例示的なものであり、実際には、経験値または過去のデータから引き出された値が使用され得、下記に提供される例においても同じことが当てはまる)、それは、アプリケーションに関するリクエストのブロックがクリティカルであることと、アプリケーションに対して新たなインスタンスが生成されることが必要であることとが示され、配置される。新たなインスタンスの配置は、比較的より低い負荷を有するホスト上に優先的に配置される新たなインスタンス(例えば、比較的より小さいブロックリクエストのキューにおけるリクエストの数を有する)と負荷分散法に基づき得る。アプリケーションに関するリクエストのブロッキングステータスが第1の縮小条件を満たす場合、例えば、ブロックリクエストのキューにおけるリクエストの数がアプリケーションによって利用されるコンピューティングリソースの処理能力の0.5倍よりも小さい場合、それは、アプリケーションに関するリクエストの数が小さいことと、それが占有するコンピューティングリソースがアイドルであることとが示される。従って、アプリケーションに割り当てられるインスタンスは、低減され得る。特に、終了するインスタンスにはリクエストが割り当てられ得ず、タスクがない場合、インスタンスは、終了し得る。
特定のインスタンスに対して、インスタンスに関するリクエストのブロッキングステータスが第2の拡張条件を満たす場合、例えば、ブロックリクエストのキューにおけるインスタンスに関するリクエストの数がインスタンスによって利用されるコンピューティングリソースの処理能力の3倍を超え、それは、インスタンスに関するリクエストのブロックがクリティカルであることが示され、インスタンスに対してシステムリソースが増加され得る。本開示に関連するシステムリソースは、限定されないが、CPU、メモリ、IOリソース、ネットワークフロー、およびそのようなものを含み得る。いくつかの実施形態において、インスタンスの負荷を分担すべくインスタンスが加えられ得る。さらに、いくつかの実施形態において、インスタンスによるシステムリソースの利用に基づいて、どのタイプのシステムリソースが加えられるべきか決定され得る。
インスタンスに関するリクエストのブロッキングステータスが第2の縮小条件を満たす場合、例えば、ブロックリクエストのキューにおけるインスタンスに関するリクエストの数がわずかな量(fractional amount)よりも少なく、例えば、インスタンスによって利用されるコンピューティングリソースの処理能力の0.50より小さいまたは等しく、それは、それを占有するコンピューティングリソースがアイドルであることを示し、従って、インスタンスに対するコンピューティングリソースが低減され得る。
特定のホストに対して、特定のホストに関するリクエストのブロッキングステータスが第3の拡張条件を満たす場合、例えば、ブロックリクエストのキューにおけるホストに関するリクエストの数がホストの処理能力の3倍を超え、ホストの負荷を分担すべく追加のホストが使用され得る。特定のホストに関するリクエストのブロッキングステータスが第3の縮小条件を満たす場合、例えば、ブロックリクエストのキューにおけるホストに関するリクエストの数がホストの処理能力の0.5倍よりも小さく、新たなインスタンスは、ホスト上に優先的に配置され得、または他のホストと分担すべくホストが優先的に使用され得る。
コンピューティングリソースの上記に記載のスケジューリングは、異なる段階におけるアプリケーションに対するフレキシブルなスケジューリングのための必要性を満たすよう定期的に実行され得る。
これに基づいて、現在使用されているフレキシブルなスケジューリング機構は、また組み込まれ得、例えば、限定されないが、以下を含み得る。
いくつかの実施形態において、特定のアプリケーションにおけるインスタンスによるリソース利用がモニタリングされ、インスタンスによるリソース利用は、CPU、メモリ、またはIOリソースなどのようなシステムリソースを含む。すべてのインスタンスによる平均リソースの利用が予め決められた第1の上限値より大きいまたは等しい場合、例えば、理論上の平均値の80%より大きいまたは等しく、特定のアプリケーションに対してインスタンスが増加され得る。すべてのインスタンスによる平均リソースの利用が予め決められた第1の下限値より小さいまたは等しい場合、例えば、理論上の平均値の20%より小さいまたは等しく、特定のアプリケーションに対してインスタンスが低減され得る。本明細書において、第1の上限値は、第1の下限値よりも大きい。
いくつかの実施形態において、インスタンスによるリソース利用が予め決められた第2の上限値より大きいまたは等しい場合、例えば、CPUの占有が30%よりも大きく、インスタンスによって利用される、CPU、メモリのようなシステムリソース、またはIOリソースが増加され得る。インスタンスによるリソース利用が予め決められた第2の下限値より小さいまたは等しい場合、例えば、CPUの占有が10%よりも少なく、インスタンスによって利用されるシステムリソースが低減され得る。本明細書において、第2の上限値は、第2の下限値よりも大きい。
ホストが利用不可能として検出される場合、例えば、ホスト上のすべてのインスタンスの別のホストへまたは複数の他のホストへの移動が開始し得る。別のホストまたは複数の他のホストへ移動した場合、インスタンスは、負荷分散法に従って、比較的より小さい負荷を有するホストへ移動し得る。
処理が利用不可能として検出された場合、処理の再開が実行され得る。再開が不成功であった場合、処理上のインスタンスの移動が開始し得る。インスタンスは、他の処理へ移動し得、特に、同じホスト上の他の処理へ移動し得るが、ほとんどの状況下でそれらは、他のホスト上の処理へ移動し得ることとなる。
アプリケーションがアプリケーションの障害またはアプリケーションに対する攻撃によって引き起こされ得て利用不可能として検出された場合、処理上のアプリケーションに在するインスタンスが再開し得、全アプリケーションのインスタンスが移動し得、またはアラートが生成され得る。
本実施形態の上記の記載において、アプリケーションのそれぞれのインスタンスによるリソース利用は、制限され得る。非限定的な方法の例として、メモリ利用の上限値は、それぞれのインスタンスによって4GBに設定され得る。それぞれのアプリケーションによるリソース利用は、また制限され得る。例えば、アプリケーションのすべてのインスタンスによる全CPU利用の上限値は、80%に設定され得る。これを行う目的は、あるアプリケーションコードの例外によって引き起こされるシステムリソースの無制限な使用を防ぐことである。さらに、スケジューリングシステムは、インターフェースを提供し得、これは、ユーザによって使用され得る、上記に記載のスケジューリングルールならびにリソース利用の上限値を構成および調整され得る。
図4は、本開示のいくつかの実施形態によるリソーススケジューリングのためのシステムのブロック図である。図4に示されるように、システムは、ブロックモニタリングユニット00およびスケジューリングユニット10を含み得、さらにプロキシサーバに提供されるイベントモニタリングおよび統計モジュール20ならびにステータス検出ユニット30を含み得る。本明細書において、ブロックモニタリングユニット00は、モニタリングサブユニット01および計算サブユニット02を含み得る。 スケジューリングユニット10は、スケジューリングサブユニット11および管理サブユニット12を含み得る。
ブロックモニタリングユニット00は、サーバによって処理されるアプリケーションリクエストのブロッキングステータスをモニタリングすることを担う。
特に、モニタリングサブユニット01は、サーバにおけるブロックリクエストのキュー内のリクエストの数を集計することを担い、ブロックリクエストのキューは、サーバによって処理されるアプリケーションリクエストを含んでいる。モニタリングサブユニット01は、プロキシサーバの公開されたAPIからサーバにおけるブロックリクエストのキュー内のリクエストの数を集計し得る。
プロキシサーバが非同期イベント処理機構に従うため、処理が実行された場合、対応するイベントが存在されることとなる。従って、イベントモニタリングおよび統計モジュール20は、プロキシサーバに提供され得、提出されたリクエストの数を取得すべくサーバへのプロキシサーバ提出リクエストのイベントをモニタリングすることと、処理したリクエストの数を取得すべくサーバがリクエストの処理を完了したことをプロキシサーバが確認するイベントに対しモニタリングすることと、提出したリクエストの数および処理したリクエストの数に基づいて、サーバにおけるブロックリクエストのキュー内のリクエストの数を決定することとを担う。
本明細書において、グローバル変数は、提出されたそれぞれのリクエストに対して、グローバル変数に1を加えられた値と、処理されたリクエストを受信したそれぞれの応答に対して上記のグローバル変数から1の値を引かれることを用いて提出されたリクエストの数の統計のために、グローバル変数が使用され得る。グローバル変数の最終値は、サーバにおけるブロックリクエストのキュー内のリクエストの数、すなわち、サーバによって処理されるサーバへ送信されたリクエストの数としてみなされ得る。
さらに、ネットワーク接続が確立したリクエストの数を取得すべく、イベントモニタリングおよび統計モジュール20は、プロキシサーバがネットワーク接続を確立するが、いまだサーバへ転送されていないイベントもモニタリングし得る。このリクエストの数は、サーバが直面することとなる処理負荷を示し、コンピューティングリソースに続くスケジューリングにおいて、参照として使用し得るスケジューリングユニットのアシストファクタとして機能し得る。
上記のように取得されるリクエストの数は、プロキシサーバの公開されたAPIを通してイベントモニタリングおよび統計モジュール20によって出力され得、例えば、HTTPプロトコルのようなコミュニケーションプロトコルが出力のために採用され得る。例えば、APIは、特定のURLを提供し得、スケジューリングシステムがURLにアクセスした場合、APIは、フォーマット化されたデータの形態において上記に記載のリクエストの数を提供し得るページを返すこととなる。すなわち、モニタリングサブユニット01は、URLに対応するページデータから、サーバにおけるブロックリクエストのキュー内のリクエストの数を取得すべくAPIによって提供されるURLにアクセスする。
コンピューティングサブユニット02は、アプリケーションリクエストのブロッキングステータスを取得すべくモニタリングサブユニット01によって集計されたリクエストの数に対する解析および統計解析を実行することを担う。本明細書において、アプリケーションリクエストのブロッキングステータスは、特定のアプリケーションに関するリクエストのブロッキングステータスと、特定のインスタンスに関するリクエストのブロッキングステータスと、特定のホストに関するリクエストのブロッキングステータスとの少なくとも1つを含む。リクエストのために、それが対応する特定のアプリケーションは、それがアクセスするドメイン名に従って決定され得、それが対応する特定のホストは、それがアクセスするIPアドレスに従って決定され得、また、それが対応する特定のインスタンスは、それがアクセスするポートに従って決定され得る。
モニタリングサブユニット01によるリクエストの数の集計が定期的に実行されるため、モニタリングサブユニット01は、集計されたデータをモニタリングデータベースへ送信し得、コンピューティングサブユニット02は、上記に記載のモニタリングデータベースにおけるデータに対する解析および統計解析を実行する。
スケジューリングユニット10は、アプリケーションリクエストの予め決められたスケジューリングルールおよびブロッキングステータスに従って、アプリケーションに対するサーバのコンピューティングリソースをスケジューリングすることを担う。
特に、スケジューリングユニット10は、以下のスケジューリングの少なくとも1つを実行し得る。
特定のアプリケーションに関するリクエストのブロッキングステータスが第1の拡張条件を満たす場合、特定のアプリケーションに対する新たなインスタンスは、生成され得て、配置され得る。新たなインスタンスの配置は、比較的より低い負荷を有するホスト上に優先的に配置される新たなインスタンス(例えば、比較的より小さいブロックリクエストのキューにおけるリクエストの数を有する)と負荷分散法に基づき得る。特定のアプリケーションに関するリクエストのブロッキングステータスが第1の縮小条件を満たす場合、特定のアプリケーションに対してインスタンスが低減され得、終了するインスタンスにはリクエストが割り当てられ得ず、タスクがない場合、インスタンスは、終了し得る。
特定のインスタンスに関するリクエストのブロッキングステータスが第2の拡張条件を満たす場合、特定のインスタンスに対してシステムリソースは増加され得、または他のインスタンスは、特定のインスタンスの負荷を分担すべく使用され得る。特定のインスタンスに関するリクエストのブロッキングステータスが第2の縮小条件を満たす場合、システムリソースは、特定のインスタンスに対して低減され得る。
特定のホストに関するリクエストのブロッキングステータスが第3の拡張条件を満たす場合、他のホストは、特定のホストの負荷を分担すべく使用され得る。特定のホストに関するリクエストのブロッキングステータスが第3の縮小条件を満たす場合、インスタンスは、特定のホスト上に優先的に配置され得、または特定のホストは、他のホストの負荷を分担すべく優先的に使用され得る。
これに基づき、現在使用されるフレキシブルなスケジューリング機構もシステムに組み込まれ得る。そのような場合、ブロックモニタリングユニット00は、また特定のアプリケーションに対するインスタンスによるリソース利用のモニタリングを担う。特定のアプリケーションに対するインスタンスによる平均リソースの利用が予め決められた第1の上限値より大きいまたは等しい場合、スケジューリングユニット10は、特定のアプリケーションに対してインスタンスを増加させ得る。特定のアプリケーションに対するインスタンスによる平均リソースの利用が予め決められた第1の下限値より小さいまたは等しい場合、スケジューリングユニット10は、特定のアプリケーションに対してインスタンスを低減させ得る。本明細書において、第1の上限値は、第1の下限値よりも大きい。
インスタンスによるリソース利用が予め決められた第2の上限値より大きいまたは等しい場合、スケジューリングユニット10は、CPU、メモリ、またはIOリソースなどのようなインスタンスによって利用されるシステムリソースを増加させ得る。インスタンスによるリソース利用が予め決められた第2の下限値より小さいまたは等しい場合、スケジューリングユニット10は、インスタンスによって利用されるシステムリソースを低減させ得る。本明細書において、第2の上限値は、第2の下限値よりも大きい。
ステータス検出ユニット30は、ホストの動作状態、処理またはアプリケーションの検出を担う。ホストがステータス検出ユニット30によって利用不可能として検出された場合、例えば、ホスト上のインスタンスの別のホストへまたは複数の他のホストへの移動がスケジューリングユニット10によって開始され得る。いくつかの実施形態において、別のホストまたは複数の他のホストへ移動した場合、インスタンスは、負荷分散法に従って、比較的より小さい負荷を有するホストへ優先的に移動し得る。
処理がステータス検出ユニット30によって利用不可能として検出された場合、処理の再開がスケジューリングユニット10によって実行され得る。再開が不成功であった場合、処理上のインスタンスの移動が開始し得る。インスタンスは、他の処理へ移動し得、特に、同じホスト上の他の処理へ移動し得るが、いくつかの実施形態においてそれらは、他のホスト上の処理へ移動することが好ましい。
ステータス検出ユニット30がアプリケーションの例外を検出した場合、スケジューリングユニット10は、アプリケーションを再開し得、またはアプリケーションに対するインスタンスの移動を開始し得、またはアラートを生成し得る。
スケジューリングユニット10内に含まれるスケジューリングサブユニット11は、アプリケーションリクエストの予め決められたスケジューリングルールおよびブロッキングステータスに基づいたスケジューリング命令を生成し、管理サブユニット12へスケジューリング命令を送信することを担う。いくつかの実施形態において、スケジューリングサブユニット11は、ルールデータベースからスケジューリングルールを負荷し得る。データベースは、ユーザがスケジューリングルールを構成または変更し得るインターフェースを備え得る。
管理サブユニット12は、具体的に、スケジューリングオペレーションを実行するためのユニットである。管理サブユニット12は、通常リソースの管理を担い、本開示の実施形態において、スケジューリング命令に従ってアプリケーションに対してサーバにおいてコンピューティングリソースをスケジューリングすることを担う。さらに、スケジューリングの結果は、スケジューリングサブユニット11に戻され得る。
本開示の目的において、モジュールおよびユニットは、本明細書で記載される処理、特徴および/または機能を(ヒューマンインタラクションまたはヒューマンオーグメンテーションの有無にかかわらず)実行または促進する、ソフトウェア、ハードウェアもしくはファームウェア(またはそれらの組み合わせ)のシステム、処理または機能性、またはそれらのコンポーネントである。モジュールは、サブモジュールを含み得、ユニットは、サブユニットを含み得る。モジュール/ユニットのソフトウェアコンポーネントは、プロセッサによって実行されるコンピュータ可読媒体に格納され得る。モジュール/ユニットは、1つもしくは複数のサーバまたはデバイスと一体型であり得、または1つまたは複数のサーバ/デバイスによって負荷および実行され得る。1つまたは複数のモジュールは、エンジンまたはアプリケーションにグループ化され得る。
本開示によって提供される実施形態における開示されたシステムおよび方法は、他の方法で実施され得ることを理解されたい。このような上記の実施形態は、単に例示的な記載に過ぎない。例えば、ユニットのパーティショニングは、単にロジカルで且つ機能的意味に過ぎなく、パーティショニングの他の方法は、実際に実施され得る。
個々のコンポーネントとして記載されるユニットは、物理的に離れ得もしくは離れ得ず、ユニットとして示されるコンポーネントは、物理的なユニットであり得もしくはあり得ず、すなわち、それらは、1つの場所に位置され得、または複数のネットワークユニットに分配され得る。実際の必要性によって、ユニットの一部またはすべてが実施形態の目的を実現するために選択され得る。
さらに、本開示のそれぞれの実施形態において、個々の機能ユニットは、1つの処理ユニットへ統合され得、または物理的に離れた方法で存在し得、または2つまたはそれより大きいまたは等しいユニットは、1つのユニットへ統合され得る。上記に記載の統合ユニットは、ハードウェアの形態で実施され得、またはソフトウェア機能ユニットと組み合わせたハードウェアの形態で実施され得る。
ソフトウェア機能ユニットの形態で実施される統合ユニットは、コンピュータ可読記憶媒体に格納され得る。ソフトウェア機能ユニットは、記憶媒体内に格納され、コンピューティングデバイス(パーソナルコンピュータ、サーバであり得、またはネットワークデバイスもしくはそのようなものであり得る)を可能にする命令の数、または本開示のそれぞれの実施形態に記載の方法のステップの一部を実行するプロセッサを含む。上記の記憶媒体は、例えば、USBフラッシュディスク、モバイルハードディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、またはコンパクトディスク、またはピュア信号に対する有形の形態でプログラムコードに格納し得るさまざまな他の媒体などのような有形媒体を含む。
上記に記載された実施形態は、単に本開示の好ましい実施形態に過ぎなく、これを限定する意図はない。これらの実施形態へのいかなる修正、等価的置き換え、および改良は、本開示の趣旨および原理から逸脱することなく、本開示の範囲内に包含されるものとみなされる。

Claims (20)

  1. リソーススケジューリングのための方法であって、
    プロキシサーバにて、スケジューリングシステムによって、前記プロキシサーバを利用するアプリケーションシステム上のアプリケーションリクエストのリクエストキューをモニタリングする段階であって、前記アプリケーションシステムは、1つまたは複数のホストを含み、前記アプリケーションシステムによって処理される1つまたは複数のアプリケーションを動作させ、前記1つまたは複数のアプリケーションのそれぞれは、1つまたは複数のインスタンスを有している、段階と、
    スケジューリングシステムによりスケジューリングされ、予め決められたスケジューリングルールおよび前記リクエストキューのステータスに従って前記1つまたは複数のアプリケーションのアプリケーション に対する前記アプリケーションシステムのコンピューティングリソースをスケジューリングする段階と
    を備える方法。
  2. 前記リクエストキューを前記モニタリングする段階が、
    前記リクエストキューからアプリケーションリクエストの数を決定する段階と、
    前記リクエストキューの前記ステータスを取得すべく前記アプリケーションリクエストの数に基づいて統計解析を実行する段階と
    を含む、請求項1に記載の方法。
  3. 前記アプリケーションリクエストの前記数が、
    前記1つまたは複数のアプリケーションのそれぞれのアプリケーションに対応する前記アプリケーションリクエストの数と、
    前記1つまたは複数のホスト上で動作している前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対応する前記アプリケーションリクエストの数と、
    前記1つまたは複数のホストのそれぞれのホストに対応する前記アプリケーションリクエストの数と
    から選ばれた少なくとも1つのリクエストからなるリクエストのグループを含む、請求項2に記載の方法。
  4. 前記アプリケーションリクエストの前記数を前記決定する段階は、
    前記プロキシサーバの公開されたアプリケーションプログラミングインターフェース(API)を介して前記リクエストキューにおける前記アプリケーションリクエストの前記数を決定する段階を含む、請求項2または3に記載の方法。
  5. 提出したリクエストの数および処理したリクエストの数は、前記APIを介して前記プロキシサーバから受信され、
    前記リクエストキューにおける前記アプリケーションリクエストの前記数を前記決定する段階は、前記提出したリクエストの前記数および前記処理したリクエストの前記数の間の差を決定する段階である、請求項4に記載の方法。
  6. 前記アプリケーションリクエストの前記数を前記決定する段階は、
    前記APIによって提供されたユニフォームリソースロケータ(URL)にアクセスする段階と、
    前記URLに対応するページデータから前記リクエストキューにおける前記アプリケーションリクエストの前記数を取得する段階と
    を含む、請求項4または5に記載の方法。
  7. 前記アプリケーションに対する前記アプリケーションシステムの前記コンピューティングリソースを前記スケジューリングする段階が、
    前記1つまたは複数のアプリケーションのそれぞれのアプリケーションに対して、前記アプリケーションに対応する前記リクエストキューのステータスが第1の拡張条件を満たす場合、新たなインスタンスを生成し、前記1つまたは複数のアプリケーションのそれぞれのアプリケーションに対して、前記アプリケーションに対応する前記リクエストキューの前記ステータスが第1の縮小条件を満たす場合、インスタンスを低減させる段階と、
    前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対して、前記インスタンスに対応する前記リクエストキューのステータスが第2の拡張条件を満たす場合、前記コンピューティングリソースを増加させ、前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対して、それぞれの前記インスタンスに対応する前記リクエストキューの前記ステータスが第2の縮小条件を満たす場合、前記コンピューティングリソースを低減させる段階と、
    前記1つまたは複数のホストのそれぞれのホストに対して、前記ホストに対応する前記リクエストキューのステータスが第3の拡張条件を満たす場合、前記ホストの負荷を分担すべく前記1つまたは複数のホストの他のホストを使用し、前記1つまたは複数のホストのそれぞれホストに対して、前記ホストに対応する前記リクエストキューの前記ステータスが第3の縮小条件を満たす場合、前記1つまたは複数のホストの他のホストの負荷を分担すべく前記ホストを使用する段階と
    のうち少なくとも1つ含み、
    拡張条件が前記アプリケーションシステムの前記コンピューティングリソースの高い利用を示している予め決められた条件であり、
    縮小条件が前記アプリケーションシステムの前記コンピューティングリソースの低い利用を示している予め決められた条件である、請求項3から6のいずれか一項に記載の方法。
  8. 前記アプリケーションに対する前記アプリケーションシステムの前記コンピューティングリソースを前記スケジューリングする段階は、
    前記1つまたは複数のアプリケーションのそれぞれのアプリケーションに対して、前記アプリケーションの前記1つまたは複数のインスタンスのすべてのインスタンスの平均リソース利用が予め決められた第1の上限より大きいまたは等しい場合、前記アプリケーションのインスタンスの数を増加させ、前記平均リソース利用が予め決められた第1の下限より小さいまたは等しい場合、前記アプリケーションのインスタンスの前記数を低減させる段階と、
    前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対して、前記インスタンスの最大リソース利用が予め決められた第2の上限より大きいまたは等しい場合、前記インスタンスのコンピューティングリソースを増加させ、前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対して、前記インスタンスの前記最大リソース利用が予め決められた第2の下限より小さいまたは等しい場合、前記インスタンスの前記コンピューティングリソースを低減させる段階と
    のうち少なくとも1つ含む、請求項2から7のいずれか一項に記載の方法。
  9. リソーススケジューリングのためのスケジューリングシステムであって、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサによって実行可能な命令を格納する非一時的コンピュータ可読メモリと
    を備え、前記命令が前記スケジューリングシステムに、
    プロキシサーバを利用しているアプリケーションシステム上のアプリケーションリクエストのリクエストキューを前記プロキシサーバでモニタリングさせ、前記アプリケーションシステムは、1つまたは複数のホストを含み、前記アプリケーションシステムによって処理される1つまたは複数のアプリケーションを動作させ、前記1つまたは複数のアプリケーションのそれぞれが、1つまたは複数のインスタンスを有し、
    前記命令が予め決められたスケジューリングルールおよび前記リクエストキューのステータスに従って前記1つまたは複数のアプリケーションのアプリケーションに対する前記アプリケーションシステムのコンピューティングリソースをスケジューリングさせる、スケジューリングシステム。
  10. モニタリングさせる前記命令が前記スケジューリングシステムにさらに、
    前記リクエストキューからアプリケーションリクエストの数を決定させ、
    前記リクエストキューの前記ステータスを取得すべくアプリケーションリクエストの前記数に基づいて統計解析を実行させる、請求項9に記載のスケジューリングシステム。
  11. 前記アプリケーションリクエストの前記数が前記1つまたは複数のアプリケーションのそれぞれのアプリケーションに対応する前記アプリケーションリクエストの数と、
    前記1つまたは複数のホスト上で動作している前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対応する前記アプリケーションリクエストの数と、
    前記1つまたは複数のホストのそれぞれのホストに対応する前記アプリケーションリクエストの数とのうち少なくとも1つを含む、請求項10に記載のスケジューリングシステム。
  12. モニタリングする前記命令が前記スケジューリングシステムにさらに、前記プロキシサーバの公開されたアプリケーションプログラミングインターフェース(API)を介した前記リクエストキューにおける前記アプリケーションリクエストの前記数を決定させる、
    請求項10または11に記載のスケジューリングシステム。
  13. 提出したリクエストの数および処理したリクエストの数は、前記APIを介して前記プロキシサーバから受信され、前記リクエストキューにおける前記アプリケーションリクエストの前記数が前記提出したリクエストの前記数および前記処理したリクエストの前記数の間の差として決定される、請求項12に記載のスケジューリングシステム。
  14. モニタリングする前記命令が前記スケジューリングシステムにさらに、
    前記APIによって提供されたユニフォームリソースロケータ(URL)にアクセスさせ、
    前記URLに対応するページデータから前記リクエストキューにおける前記アプリケーションリクエストの前記数を取得させる、請求項12または13に記載のスケジューリングシステム。
  15. スケジューリング回路が、
    前記1つまたは複数のアプリケーションのそれぞれのアプリケーションに対して、前記アプリケーションに対応する前記リクエストキューのステータスが第1の拡張条件を満たす場合、新たなインスタンスを生成し、前記1つまたは複数のアプリケーションのそれぞれのアプリケーションに対して、前記アプリケーションに対応する前記リクエストキューの前記ステータスが第1の縮小条件を満たす場合、インスタンスを低減させることと、
    前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対して、前記インスタンスに対応する前記リクエストキューのステータスが第2の拡張条件を満たす場合、前記コンピューティングリソースを増加させ、前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対して、それぞれの前記インスタンスに対応する前記リクエストキューの前記ステータスが第2の縮小条件を満たす場合、前記コンピューティングリソースを低減させることと、
    前記1つまたは複数のホストのそれぞれのホストに対して、前記ホストに対応する前記リクエストキューのステータスが第3の拡張条件を満たす場合、前記ホストの負荷を分担するべく前記1つまたは複数のホストの他のホストを使用し、前記1つまたは複数のホストのそれぞれのホストに対して、前記ホストに対応する前記リクエストキューの前記ステータスが第3の縮小条件を満たす場合、前記1つまたは複数のホストの他のホストの負荷を分担するべく前記ホストを使用することとのうち少なくとも1つを実行し、
    拡張条件が前記アプリケーションシステムの前記コンピューティングリソースの高い利用を示している予め決められた条件であり、
    縮小条件が前記アプリケーションシステムの前記コンピューティングリソースの低い利用を示している予め決められた条件である、請求項11から14のいずれか一項に記載のスケジューリングシステム。
  16. スケジューリング回路が前記1つまたは複数のアプリケーションのそれぞれのアプリケーションに対して、前記アプリケーションの前記1つまたは複数のインスタンスのすべてのインスタンスの平均リソース利用が予め決められた第1の上限より大きいまたは等しい場合、前記アプリケーションのインスタンスの数を増加させ、前記平均リソース利用が予め決められた第1の下限より小さいまたは等しい場合、前記アプリケーションのインスタンスの前記数を低減させることと、
    前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対して、前記インスタンスの最大リソース利用が予め決められた第2の上限より大きいまたは等しい場合、前記インスタンスのコンピューティングリソースを増加させ、前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対して、前記インスタンスの前記最大リソース利用が予め決められた第2の下限より小さいまたは等しい場合、前記インスタンスの前記コンピューティングリソースを低減させることと
    のうち少なくとも1つを実行する、請求項11から15のいずれか一項に記載のスケジューリングシステム。
  17. プロセッサによって実行された場合、前記プロセッサにリソーススケジューリングのための手順を実行させるコンピュータプログラムであって、前記手順は、
    1つまたは複数のアプリケーションに対するアプリケーションシステムによって処理されるプロキシサーバでのアプリケーションリクエストのリクエストキューからアプリケーションリクエストの数を決定する手順と、
    前記リクエストキューのステータスを取得すべくアプリケーションリクエストの数に基づいて、統計解析を実行する手順と、
    予め決められたスケジューリングルールおよび前記リクエストキューのステータスに従って前記1つまたは複数のアプリケーションのアプリケーションに対する前記アプリケーションシステムのコンピューティングリソースをスケジューリングする手順と
    を含む、コンピュータプログラム。
  18. 前記アプリケーションリクエストの数は、
    前記1つまたは複数のアプリケーションのそれぞれのアプリケーションに対応する前記アプリケーションリクエストの数と、
    前記1つまたは複数のホスト上で動作している前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対応する前記アプリケーションリクエストの数と、
    前記1つまたは複数のホストのそれぞれのホストに対応する前記アプリケーションリクエストの数と
    のうち少なくとも1つを含む、請求項17に記載のコンピュータプログラム。
  19. 前記アプリケーションに対する前記アプリケーションシステムの前記コンピューティングリソースを前記スケジューリングする手順は、
    前記1つまたは複数のアプリケーションのそれぞれのアプリケーションに対して、前記アプリケーションに対応する前記リクエストキューのステータスが第1の拡張条件を満たす場合、新たなインスタンスを生成し、前記1つまたは複数のアプリケーションのそれぞれのアプリケーションに対して、前記アプリケーションに対応する前記リクエストキューの前記ステータスが第1の縮小条件を満たす場合、インスタンスを低減させる手順と、
    前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対して、前記インスタンスに対応する前記リクエストキューのステータスが第2の拡張条件を満たす場合、前記コンピューティングリソースを増加させ、前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対して、それぞれの前記インスタンスに対応する前記リクエストキューの前記ステータスが第2の縮小条件を満たす場合、前記コンピューティングリソースを低減させる手順と、
    前記1つまたは複数のホストのそれぞれのホストに対して、前記ホストに対応する前記リクエストキューのステータスが第3の拡張条件を満たす場合、前記ホストの負荷を分担すべく前記1つまたは複数のホストの他のホストを使用し、前記1つまたは複数のホストのそれぞれのホストに対して、前記ホストに対応する前記リクエストキューの前記ステータスが第3の縮小条件を満たす場合、前記1つまたは複数のホストの他のホストの負荷を分担すべく前記ホストを使用する手順と
    のうち少なくとも1つを含み、
    拡張条件が前記アプリケーションシステムの前記コンピューティングリソースの高い利用を示している予め決められた条件であり、
    縮小条件が前記アプリケーションシステムの前記コンピューティングリソースの低い利用を示している予め決められた条件である、
    請求項18に記載のコンピュータプログラム。
  20. 前記アプリケーションに対する前記アプリケーションシステムの前記コンピューティングリソースを前記スケジューリングする手順は、
    前記1つまたは複数のアプリケーションのそれぞれのアプリケーションに対して、前記アプリケーションの前記1つまたは複数のインスタンスのすべてのインスタンスの平均リソース利用が予め決められた第1の上限より大きいまたは等しい場合、前記アプリケーションのインスタンスの数を増加させ、前記平均リソース利用が予め決められた第1の下限より小さいまたは等しい場合、前記アプリケーションのインスタンスの前記数を低減させる手順と、
    前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対して、前記インスタンスの最大リソース利用が予め決められた第2の上限より大きいまたは等しい場合、前記インスタンスのコンピューティングリソースを増加させ、前記1つまたは複数のアプリケーションのそれぞれの前記1つまたは複数のインスタンスのそれぞれのインスタンスに対して、前記インスタンスの前記最大リソース利用が予め決められた第2の下限より小さいまたは等しい場合、前記インスタンスの前記コンピューティングリソースを低減させる手順と
    のうち少なくとも1つを含む、請求項18または19に記載のコンピュータプログラム。
JP2018502137A 2015-08-13 2016-08-11 リソーススケジューリングのための方法およびシステム Active JP7020616B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201510494855.9 2015-08-13
CN201510494855.9A CN106452818B (zh) 2015-08-13 2015-08-13 一种资源调度的方法和系统
US15/231,812 2016-08-09
US15/231,812 US10440136B2 (en) 2015-08-13 2016-08-09 Method and system for resource scheduling
PCT/US2016/046447 WO2017027649A1 (en) 2015-08-13 2016-08-11 Method and system for resource scheduling

Publications (2)

Publication Number Publication Date
JP2018532172A true JP2018532172A (ja) 2018-11-01
JP7020616B2 JP7020616B2 (ja) 2022-02-16

Family

ID=57996209

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018502137A Active JP7020616B2 (ja) 2015-08-13 2016-08-11 リソーススケジューリングのための方法およびシステム

Country Status (4)

Country Link
US (1) US10440136B2 (ja)
EP (1) EP3335120B1 (ja)
JP (1) JP7020616B2 (ja)
CN (1) CN106452818B (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180088960A1 (en) * 2016-09-23 2018-03-29 International Business Machines Corporation Providing highly available and scalable access to a restricted access service through a restful interface
US10346191B2 (en) * 2016-12-02 2019-07-09 Wmware, Inc. System and method for managing size of clusters in a computing environment
US10521312B1 (en) * 2017-03-17 2019-12-31 Amazon Technologies, Inc. Downtime management during database instance patching
US11216539B2 (en) * 2018-10-19 2022-01-04 Oracle International Corporation Authorization proxy platform
CN108170541B (zh) * 2017-12-22 2021-08-24 努比亚技术有限公司 一种接口调用方法、设备及计算机可读存储介质
CN109189552B (zh) * 2018-08-17 2020-08-25 烽火通信科技股份有限公司 虚拟网络功能扩容与缩容方法及系统
CN110908792B (zh) * 2018-09-17 2023-04-14 阿里巴巴集团控股有限公司 一种数据处理方法及装置
CN109144838A (zh) * 2018-09-28 2019-01-04 平安科技(深圳)有限公司 应用程序监控方法及装置、计算机装置及计算机存储介质
CN109542714A (zh) * 2018-09-29 2019-03-29 中国平安人寿保险股份有限公司 应用程序监控方法及装置、计算机装置及计算机存储介质
TWI673613B (zh) * 2018-10-17 2019-10-01 財團法人工業技術研究院 伺服器及其資源調控方法
CN111611086A (zh) * 2020-05-28 2020-09-01 中国工商银行股份有限公司 信息处理方法、装置、电子设备和介质
CN112650575B (zh) * 2021-01-15 2023-08-18 百度在线网络技术(北京)有限公司 资源调度方法、装置和云端服务系统
CN113407347B (zh) * 2021-06-30 2023-02-24 北京百度网讯科技有限公司 资源调度方法、装置、设备和计算机存储介质
US11595321B2 (en) 2021-07-06 2023-02-28 Vmware, Inc. Cluster capacity management for hyper converged infrastructure updates
CN114020433A (zh) * 2021-11-05 2022-02-08 咪咕互动娱乐有限公司 实例资源调度方法、设备、存储介质及装置
CN114116175A (zh) * 2021-12-02 2022-03-01 恒安嘉新(北京)科技股份公司 计算资源调度方法、装置、电子设备及存储介质
CN115495231B (zh) * 2022-08-09 2023-09-19 徐州医科大学 一种高并发任务复杂场景下的动态资源调度方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312487A (ja) * 2000-04-28 2001-11-09 Nec Nexsolutions Ltd アプリケーションプログラムの監視方法、及びアプリケーション・サービスを提供する方法
JP2004538573A (ja) * 2001-08-03 2004-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション ホストされるアプリケーションのためのサーバ・リソース管理
JP2006309691A (ja) * 2005-03-28 2006-11-09 Hitachi Ltd リソース割当管理装置およびリソース割当方法
JP2013506908A (ja) * 2009-09-30 2013-02-28 アルカテル−ルーセント 企業ネットワーク内の割り当てられたクラウドリソースの動的な負荷分散およびスケーリング

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163590A (ja) 2000-11-28 2002-06-07 Sony Corp 代行システム、代行方法、サービス代行サーバ、事業者サーバ、記録媒体
US20030069917A1 (en) 2001-10-04 2003-04-10 Miller Larry J. Balanced client/server mechanism in a time-partitioned real-time operting system
US7502859B2 (en) 2003-09-19 2009-03-10 Panasonic Corporation Dynamic resource management for distributed retrieval system for security
US8078483B1 (en) * 2003-12-16 2011-12-13 Ticketmaster Systems and methods for queuing access to network resources
US8078708B1 (en) 2004-01-15 2011-12-13 Nortel Networks Limited Grid proxy architecture for network resources
WO2005112369A1 (ja) 2004-05-19 2005-11-24 Kddi Corporation コンテンツ配信制御システム及びその配信スケジュール作成方法、通信端末、コンピュータプログラム
CN1306776C (zh) * 2004-09-17 2007-03-21 杭州恒生电子股份有限公司 基于多层架构的数据处理系统及数据处理方法
US7870568B2 (en) * 2005-06-07 2011-01-11 Datasynapse, Inc. Adaptive shared computing infrastructure for application server-based deployments
TWI276322B (en) 2005-12-28 2007-03-11 Ind Tech Res Inst A system and a method of request scheduling using request classification and allowable server resource for the differentiated quality of service
CN101354663A (zh) * 2007-07-25 2009-01-28 联想(北京)有限公司 应用于虚拟机系统的真实cpu资源的调度方法及调度装置
US8347302B1 (en) 2008-10-09 2013-01-01 Amazon Technologies, Inc. System-aware resource scheduling
US8578076B2 (en) * 2009-05-01 2013-11-05 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US8918784B1 (en) 2010-12-21 2014-12-23 Amazon Technologies, Inc. Providing service quality levels through CPU scheduling
TW201227785A (en) 2010-12-28 2012-07-01 Nat Univ Tsing Hua Devices and methods for appliance usage scheduling and control using on-line calendar services with open API
US9471384B2 (en) * 2012-03-16 2016-10-18 Rackspace Us, Inc. Method and system for utilizing spare cloud resources
JP5939740B2 (ja) 2011-04-11 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 動的にリソースを割り当てる方法、システム及びプログラム
CN102346460B (zh) 2011-05-27 2013-11-13 运软网络科技(上海)有限公司 一种基于事务的服务控制系统及其控制方法
US9135581B1 (en) 2011-08-31 2015-09-15 Amazon Technologies, Inc. Resource constrained task scheduling
US8787154B1 (en) 2011-12-29 2014-07-22 Juniper Networks, Inc. Multi-topology resource scheduling within a computer network
US9282118B2 (en) * 2012-11-13 2016-03-08 Intel Corporation Policy enforcement in computing environment
US9444695B2 (en) 2014-01-30 2016-09-13 Xerox Corporation Methods and systems for scheduling a task
CN104407926B (zh) * 2014-12-15 2017-08-29 成都英力拓信息技术有限公司 一种云计算资源的调度方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312487A (ja) * 2000-04-28 2001-11-09 Nec Nexsolutions Ltd アプリケーションプログラムの監視方法、及びアプリケーション・サービスを提供する方法
JP2004538573A (ja) * 2001-08-03 2004-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション ホストされるアプリケーションのためのサーバ・リソース管理
JP2006309691A (ja) * 2005-03-28 2006-11-09 Hitachi Ltd リソース割当管理装置およびリソース割当方法
JP2013506908A (ja) * 2009-09-30 2013-02-28 アルカテル−ルーセント 企業ネットワーク内の割り当てられたクラウドリソースの動的な負荷分散およびスケーリング

Also Published As

Publication number Publication date
EP3335120B1 (en) 2023-06-21
US10440136B2 (en) 2019-10-08
CN106452818A (zh) 2017-02-22
EP3335120A4 (en) 2019-03-20
JP7020616B2 (ja) 2022-02-16
CN106452818B (zh) 2020-01-21
US20170048163A1 (en) 2017-02-16
EP3335120A1 (en) 2018-06-20

Similar Documents

Publication Publication Date Title
JP2018532172A (ja) リソーススケジューリングのための方法およびシステム
KR101782345B1 (ko) 엔드-투-엔드 데이터센터 성능 제어
WO2019169724A1 (zh) 服务器并发数控制方法、装置、计算机设备及存储介质
US10104037B2 (en) Method and system for network access request control
US20170155560A1 (en) Management systems for managing resources of servers and management methods thereof
US20200314168A1 (en) Distributed code execution involving a serverless computing infrastructure
US20070028239A1 (en) Dynamic performance management for virtual servers
CN111176803B (zh) 业务处理方法、装置、服务器及存储介质
WO2018121334A1 (zh) 一种提供网页应用服务的方法、装置、电子设备及系统
JP2012079242A (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US20110173319A1 (en) Apparatus and method for operating server using virtualization technique
JP2012521042A (ja) ウェブフロントエンドスロットリング
US20230069240A1 (en) Dynamic cloning of application infrastructures
CN111988234A (zh) 过载保护方法、装置、服务器及存储介质
US10310883B2 (en) Integrated configuration engine for interference mitigation in cloud computing
CN103856337A (zh) 资源占用率获取方法、提供方法、系统及服务器
CN108153583B (zh) 任务分配方法及装置、实时计算框架系统
US20200272526A1 (en) Methods and systems for automated scaling of computing clusters
US10754368B1 (en) Method and system for load balancing backup resources
CN109800085B (zh) 资源配置的检测方法、装置、存储介质和电子设备
CN111427674A (zh) 一种微服务管理方法、装置及系统
CN103944940A (zh) 动态配置代理服务器的设备及方法
US9317354B2 (en) Dynamically determining an external systems management application to report system errors
CN108804152B (zh) 配置参数的调节方法及装置
CN109962941B (zh) 通信方法、装置以及服务器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190711

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210727

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: 20220104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220119

R150 Certificate of patent or registration of utility model

Ref document number: 7020616

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150