KR102110757B1 - 분산형 저장 시스템의 성능 모니터링 - Google Patents
분산형 저장 시스템의 성능 모니터링 Download PDFInfo
- Publication number
- KR102110757B1 KR102110757B1 KR1020187004527A KR20187004527A KR102110757B1 KR 102110757 B1 KR102110757 B1 KR 102110757B1 KR 1020187004527 A KR1020187004527 A KR 1020187004527A KR 20187004527 A KR20187004527 A KR 20187004527A KR 102110757 B1 KR102110757 B1 KR 102110757B1
- Authority
- KR
- South Korea
- Prior art keywords
- request
- probe
- requests
- storage system
- distributed storage
- Prior art date
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3414—Workload generation, e.g. scripts, playback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3096—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5009—Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Environmental & Geological Engineering (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
분산형 저장 시스템의 성능 메트릭들을 모니터링하기 위한 방법들 및 시스템들이 설명된다. 하나의 예시적인 방법은 클라이언트들에 의해 분산형 저장 시스템으로 전송되는 요청들을 식별하는 단계 ― 각각의 요청은 요청 파라미터들에 대한 요청 파라미터 값들을 포함함 ― ; 식별된 요청들에 기반하여 프로브 요청들을 생성하는 단계 ― 프로브 요청들은, 식별된 요청들에 포함되는 요청 파라미터들의 통계적 샘플을 나타내는 프로브 요청 파라미터 값들을 포함함 ― ; 생성된 프로브 요청들을 네트워크를 통해 분산형 저장 시스템으로 전송하는 단계 ― 분산형 저장 시스템은 프로브 요청을 수신하는 것에 대한 응답으로 각각의 프로브 요청을 서비스하기 위한 준비들을 수행하도록 구성됨 ― ; 분산형 저장 시스템으로부터 프로브 요청들에 대한 응답들을 수신하는 단계; 및 수신된 응답들에 기반하여 분산형 저장 시스템의 현재 성능 상태를 측정하는 적어도 하나의 성능 메트릭 값을 출력하는 단계를 포함한다.
Description
[0001] 본 명세서는 일반적으로 분산형 저장 시스템의 성능을 모니터링하는 것에 관한 것이다.
[0002] 분산형 시스템들에서, 다양한 성능 메트릭들은 시스템의 전체 건강을 결정하기 위해 추적될 수 있다. 예컨대, 시스템이 클라이언트 요청에 응답하는데 걸리는 시간의 양(즉, 레이턴시)은, 시스템이 적시에 응답하고 있다는 것을 보장하기 위해 모니터링될 수 있다.
[0003] 일반적으로, 본 명세서에 설명되는 요지의 일 양상은 데이터 프로세싱 장치들에 의해 수행되는 방법들 및 시스템들에서 구현될 수 있고, 방법들은, 클라이언트들에 의해 분산형 저장 시스템으로 전송되는 요청들을 식별하는 동작들 ― 각각의 요청은 요청 파라미터들에 대한 요청 파라미터 값들을 포함함 ― , 식별된 요청들에 기반하여 프로브 요청들을 생성하는 동작들 ― 프로브 요청들은, 식별된 요청들에 포함되는 요청 파라미터들의 통계적 샘플을 나타내는 프로브 요청 파라미터 값들을 포함함 ― , 생성된 프로브 요청들을 네트워크를 통해 분산형 저장 시스템으로 전송하는 동작들 ― 분산형 저장 시스템은 프로브 요청을 수신하는 것에 대한 응답으로 각각의 프로브 요청을 서비스하기 위한 준비들을 수행하도록 구성됨 ― , 분산형 저장 시스템으로부터 프로브 요청들에 대한 응답들을 수신하는 동작들, 및 수신된 응답들에 기반하여 분산형 저장 시스템의 현재 성능 상태를 측정하는 적어도 하나의 성능 메트릭 값을 출력하는 동작들을 포함한다.
[0004] 본 명세서에 설명되는 요지의 하나 또는 그 초과의 구현들의 세부사항들은 이하의 상세한 설명 및 첨부 도면들에 제시된다. 요지의 다른 특징들, 양상들 및 잠재적인 이점들은 상세한 설명, 도면들 및 청구항들로부터 명백하게 될 것이다.
[0005] 도 1은 분산형 저장 시스템의 성능을 모니터링하기 위한 예시적인 환경의 도면이다.
[0006] 도 2는 분산형 저장 시스템에서 클라이언트 요청을 프로세싱하기 위한 예시적인 프로세스의 스윔 레인도(swim lane diagram)이다.
[0007] 도 3은 분산형 저장 시스템의 성능을 모니터링하기 위한 예시적인 프로세스의 스윔 레인도이다.
[0008] 도 4는 분산형 저장 시스템의 성능을 모니터링하기 위한 예시적인 프로세스의 흐름도이다.
[0009] 도 5는 본 문헌에 설명되는 시스템들 및 방법들을 구현하는데 사용될 수 있는 컴퓨팅 디바이스들의 도면이다.
[0010] 다양한 도면들에서 유사한 참조 부호들 및 지정들은 유사한 엘리먼트들을 표시한다.
[0006] 도 2는 분산형 저장 시스템에서 클라이언트 요청을 프로세싱하기 위한 예시적인 프로세스의 스윔 레인도(swim lane diagram)이다.
[0007] 도 3은 분산형 저장 시스템의 성능을 모니터링하기 위한 예시적인 프로세스의 스윔 레인도이다.
[0008] 도 4는 분산형 저장 시스템의 성능을 모니터링하기 위한 예시적인 프로세스의 흐름도이다.
[0009] 도 5는 본 문헌에 설명되는 시스템들 및 방법들을 구현하는데 사용될 수 있는 컴퓨팅 디바이스들의 도면이다.
[0010] 다양한 도면들에서 유사한 참조 부호들 및 지정들은 유사한 엘리먼트들을 표시한다.
[0011] 분산형 저장 시스템에서, 시스템 성능에 영향을 줄 수 있는 많은 인자들이 존재한다. 예컨대, 클라이언트들은 인터넷과 같은 공개 네트워크를 통해 시스템에 액세스할 수 있다. 그러한 경우에, 공개 네트워크 내의 어딘가의 성능 문제들은 각각의 클라이언트의 관점에서 분산형 저장 시스템의 성능에 영향을 줄 수 있다. 분산형 저장 시스템 자체의 문제들, 이를테면, 하드웨어 고장들, 내부 네트워크 고장들, 소프트웨어 버그들 또는 다른 문제들은 또한 클라이언트가 지각할 정도로 시스템의 성능에 영향을 줄 수 있다.
[0012] 일부 경우들에서, 분산형 저장 시스템과 그의 클라이언트들 간의 관계는 SLA(service-level agreement)에 영향을 받을 수 있다. SLA는 일반적으로, 분산형 저장 시스템의 제공자가 클라이언트 요청들을 서비스하는데 있어서 만족시키도록 합의한 성능 타겟들을 포함할 것이다. 예컨대, SLA는, 분산형 저장 시스템의 제공자가 요청을 프로세싱하는데 있어서 10 ms 이하의 레이턴시를 보장한다는 것을 표시할 수 있다. 일부 경우들에서, SLA는, 성능 타겟이 만족되지 않을 때 취해질 동작들, 이를테면, 제공자가 클라이언트들에 환불하는 것을 포함할 수 있다. 그러한 합의들은 또한, 분산형 저장 시스템 제공자가 자신의 제어 외부의 상황들에서 발생하는 성능 문제들(예컨대, 공개 네트워크 정전들, 클라이언트 네트워크 정전들, 클라이언트 디바이스 이슈들)을 책임지지 않는다는 프로비전들(provisions)을 포함할 수 있다.
[0013] 심지어 SLA가 준비가 되지 않은 경우들에서, 분산형 저장 시스템 제공자는, 클라이언트들에 대한 요청들을 서비스할 때 침해하지 않고 시스템의 성능에 영향을 주지 않는 방식으로 여전히 시스템의 건강을 모니터링하기를 원할 수 있다.
[0014] 따라서, 본 개시내용은 클라이언트 요청들을 프로파일링함으로써 분산형 데이터베이스 시스템의 성능을 모니터링하기 위한 기술들을 설명한다. 하나의 예시적인 방법은 클라이언트들에 의해 분산형 저장 시스템에 전송되는 요청들을 식별하는 것을 포함한다. 요청들은 요청 파라미터들, 이를테면, 요청 타입, 동시성 파라미터들 및 요청과 관련된 데이터를 표시하는 요청 타겟을 포함할 수 있다. 일부 경우들에서, 요청들은 분산형 저장 시스템의 클라이언트들로부터 전송된 정보에 기반하여 식별될 수 있다. 이러한 식별된 요청들에 기반하여, 식별된 요청들에 포함되는 요청 파라미터들의 통계적 샘플을 나타내는 프로브 요청 파라미터들을 포함하는 프로브 요청들이 생성된다. 생성된 프로브 요청들은 분산형 저장 시스템으로 전송되고, 분산형 저장 시스템은 각각의 프로브 요청을 서비스하기 위한 준비들을 수행함으로써 응답하지만, 요청 타겟에 의해 표시된 데이터에 실제로 액세스하지 않는다. 예컨대, "판독"의 요청 타입을 갖는 프로브 요청들에 대한 응답으로, 분산형 저장 시스템은 요청 타겟에 의해 표시된 데이터를 판독하기 위한 준비들(예컨대, 데이터의 로케이팅, 요청의 큐잉(queueing) 등)을 할 수 있지만, 클라이언트가 액세스 가능하지 않은 데이터와 연관된 필드를 판독할 수 있다. 이는 시스템이 규칙적인 클라이언트 요청들의 프로세싱을 간섭하지 않고서 철저한 방식으로 프로파일링되도록 허용한다. 프로브 요청들에 대한 응답들이 분산형 저장 시스템으로부터 수신될 때, 성능 메트릭들이 계산될 수 있다.
[0015] 일부 경우들에서, 프로세스는, 분산형 저장 시스템의 성능을 단독으로 측정하기 위해 (예컨대, 동일한 내부 네트워크 상의) 분산형 저장 시스템과 코-로케이팅된 컴퓨팅 디바이스에 의해 수행될 수 있어서, 제공자의 제어 외부의 문제들(예컨대, 공개 네트워크 정전들)이 프로세스에 의해 표시되지 않을 것이다.
[0016] 본원에 설명된 기술들은 다음의 이점들을 제공할 수 있다. 프로브 요청들을 생성하기 위한 실제 클라이언트 요청들을 프로파일링함으로써, 본 기술은 분산형 저장 시스템이 분산형 저장 시스템에 의해 현재 서비스되는 클라이언트 요청들의 근사화(approximation)를 사용하여 모니터링되도록 허용한다. 또한, 클라이언트 액세스 가능 데이터에 액세스하지 않고서 분산형 저장 시스템의 건강을 모니터링함으로써, 실제 클라이언트 요청들에 대한 그러한 모니터링의 성능 영향이 최소화될 수 있다. 또한, 시스템 제공자의 제어 외부의 다른 요인들과 분리하여 분산형 저장 시스템을 모니터링함으로써, 시스템의 진정한 성능의 더 정확한 뷰가 획득될 수 있고, 여기서 진정한 성능은, 분산형 저장 시스템으로부터 서비스를 요청할 때, 예컨대, 레이턴시에 관하여 클라이언트가 지각하는 단대단 성능(end-to-end performance)을 포함한다. 그러한 정보는, SLA에 따르는 준수성(compliance)을 결정할 때 유용할 수 있다. 본 기술들은 또한 클라이언트 요청들 자체들의 분배에 관한 통계적 정보(예컨대, 특정 데이터 아이템이 다른 아이템들보다 더 인기가 있는지)를 제공할 수 있고, 이는 제공자 및 클라이언트들이, (예컨대, 핫스팟들을 회피하기 위해) 자신들의 작업량이 조정되어야 하는지를 이해하는 것을 가능하게 할 수 있다. 또한, 본 기술은, 현재 서버 CPU 및 메모리 활용, 큐 길이 및 다른 메트릭들과 함께, 분산형 저장 시스템의 상이한 양상들, 이를테면, 큐 시간, 실제 프로세싱 시간, 서버 위치 시간의 프로파일링을 허용한다. 또한, 프로파일링이 분산형 저장 시스템의 제공자에 의해 전체적으로 제어되기 때문에, 본 기술들은 SLA/SLO 준수성의 더 용이한 관리를 허용할 수 있다.
[0017] 도 1은 분산형 데이터베이스 시스템의 성능을 모니터링하기 위한 예시적인 환경의 도면이다. 도시된 바와 같이, 환경(100)은 각각 복수의 데이터 그룹들(114)을 관리하는 복수의 서버들(112)을 포함하는 분산형 저장 시스템(110)을 포함한다. 동작 시에, 클라이언트들(120)은 요청(122)을 분산형 저장 시스템(110)으로 전송한다. 분산형 저장 시스템(110)은 요청(122)을 프로세싱하고, 응답들(124)을 클라이언트들(120)로 전송한다. 클라이언트들(120)은 요청 정보(126)를 프로버(130)로 전송한다. 요청 정보(126)는 특정 클라이언트(120)에 의해 분산형 저장 시스템(110)으로 전송되는 요청들에 관한 정보, 이를테면, 요청 타입, 요청 파라미터들 및 각각의 요청의 요청 타겟을 포함한다. 프로버(130)는 요청 정보(126)를 수신하고, 요청 정보(126)에 기반하여 프로브 요청(132)을 분산형 저장 시스템(110)으로 전송한다. 분산형 저장 시스템(110)은 프로브 요청들을 프로세싱하고, 응답들(134)을 프로그램(130)으로 반환한다. 프로버(130)는 응답들을 분석하고, 분산형 저장 시스템(110), 분산형 저장 시스템(110) 내의 특정 서버들(112), 분산형 저장 시스템(110) 내의 특정 데이터 그룹들(114)의 현재 성능을 표시하거나, 분산형 저장 시스템(110) 내의 다른 컴포넌트들의 현재 성능을 표시하는 성능 메트릭들(140)을 출력한다.
[0018] 분산형 저장 시스템(110)은 로컬 또는 사설 네트워크(미도시)에 의해 연결된 복수의 서버들(112)을 포함하는 분산형 시스템일 수 있다. 일부 경우들에서, 로컬 또는 사설 네트워크는 단일 시설 내에 전체적으로 위치될 수 있는 반면에, 다른 경우들에서, 로컬 또는 사설 네트워크는 큰 영역을 커버하고 다수의 시설들을 상호연결할 수 있다. 서버들(112)은, 클라이언트들(120)에 의해 요청된 데이터를 저장, 리트리브(retrieve) 및 업데이팅함으로써 클라이언트 요청(122)을 서비스하기 위해 서로 통신할 수 있다. 일부 경우들에서, 분산형 저장 시스템(110)은 분산형 데이터베이스, 분산형 파일 시스템, 또는 다른 타입의 분산형 저장소일 수 있다. 분산형 저장 시스템(110)은 또한 시스템 내의 서버들(112)의 동작들을 관리 및 조직하기 위한 컴포넌트들을 포함할 수 있다.
[0019] 분산형 저장 시스템(110) 내에서, 각각의 서버(112)는, 분산형 저장 시스템(110)에 의해 관리되는 데이터를 저장하기 위한 저장 디바이스(이를테면, 하드 드라이브) 및 프로세서를 포함하는 컴퓨팅 디바이스일 수 있다. 일부 경우들에서, 데이터는 분산 정책에 따라 상이한 서버들(112)로 분산될 수 있다. 예컨대, 분산 정책은, 분산형 저장 시스템(110) 내의 특정 테이블 또는 파일이 리던던시(redundancy)를 유지하기 위해 특정 수의 서버들(112) 상에 저장되어야 한다는 것을 명시할 수 있다. 분산 정책은 또한, 데이터가 지리적 리던던시를 유지하기 위해 다수의 상이한 위치들에 저장되어야 한다는 것을 명시할 수 있다. 일부 경우들에서, 서버(112)는, 직접적으로 연결된 지속형 저장소 대신에, 외부 저장 디바이스 또는 시스템, 이를테면, 분산형 파일 시스템을 활용할 수 있다.
[0020] 서버들(112) 각각은 하나 또는 그 초과의 데이터 그룹들(114)을 관리한다. 데이터 그룹들(114)은 분산형 저장 시스템(110)에 의해 관리되는 총 데이터 세트의 부분들을 포함할 수 있다. 각각의 데이터 그룹(114)은 분산형 데이터베이스 내의 테이블 중 일부로부터의 데이터, 분산형 파일 시스템으로부터의 하나 또는 그 초과의 파일들, 또는 분산형 저장 시스템(110) 내의 데이터의 다른 파티션들을 포함할 수 있다. 동작 시에, 각각의 요청(122) 및 프로브 요청(132)은, 요청 타겟에 기반하여, 요청 또는 프로브 요청과 관련된 특정 데이터 그룹(114)을 결정하기 위해 분산형 저장 시스템(110)에 의해 분석될 수 있다. 이어서, 분산형 저장 시스템은 특정 데이터 그룹(114)을 관리하는 특정 서버(112)로 요청 또는 프로브 요청을 라우팅할 수 있다.
[0021] 일부 경우들에서, 클라이언트들(120)은 분산형 저장 시스템(110)의 사용자들일 수 있다. 클라이언트들(120)은 또한 데이터를 저장 및 리트리브하기 위해 분산형 저장 시스템(110)을 사용하는 엔티티들(예컨대, 웹사이트들 또는 애플리케이션들)일 수 있다. 클라이언트들(120) 각각은, 자신이 분산형 저장 시스템(110)으로 전송한 각각의 요청(122)에 관한 정보를 기록할 수 있다. 일부 경우들에서, 각각의 클라이언트(120)는 분산형 저장 시스템(110)으로서 전송되는 전체 요청의 기록을 저장할 수 있다. 각각의 클라이언트는 또한, 예컨대, 이를테면, 요청 파라미터들의 동일한 세트와 함께 전송된 요청들의 카운트를 저장하여, 분산형 저장 시스템으로 전송되는 요청(122)의 요약을 저장할 수 있다. 예컨대, 클라이언트(120)는, 5 개의 요청들이 "판독"의 요청 타입, "스테일(stale)"의 동시성 파라미터, 및 "고객"들로 명명된 테이블의 요청 타겟과 함께 전송되었다는 사실을 기록할 수 있다. 이러한 요청 정보(126)는, 예컨대, 규칙적인 인터벌들로 각각의 클라이언트(120)에 의해 프로버(130)로 전송될 수 있다. 요청 정보(126)는 클라이언트들(120)에 의해 공개 네트워크, 이를테면, 인터넷을 통해 프로버(130)로 전송될 수 있다. 일부 경우들에서, 요청 정보(126)는, 클라이언트 상에서 실행되고 클라이언트에 의해 전송된 요청들에 관한 정보를 수집하는 소프트웨어 프로세스 또는 라이브러리에 의해 수집될 수 있다. 일부 경우들에서, 소프트웨어 라이브러리는 분산형 저장 시스템의 제공자에 의해 제공될 수 있다.
[0022] 프로버(130)는 클라이언트들(120)로부터 수신된 요청 정보를 분석하고, 요청 정보(126)에 의해 설명된 요청들의 통계적 근사화를 나타내는 프로브 프로파일을 생성한다. 예컨대, 프로버(130)는 10,000 개의 "판독" 타입의 요청들 및 5000 개의 "기록" 타입의 요청들을 포함하는 요청 정보(126)를 분석하고, 1000 개의 "판독" 타입의 프로브 요청들 및 500 개의 "기록" 타입의 프로브 요청들이 오리지널 요청(122)을 프로세싱하는데 있어서 분산형 시스템의 성능을 모방 및 결정하기 위해 전송되어야 한다는 것을 표시하는 프로브 프로파일을 생성할 수 있다. 일부 경우들에서, 프로버(130)는, 프로브 요청(132)의 수가 클라이언트들(120)에 의해 전송되는 요청(122)을 나타낼 정도로 충분히 크지만, 분산형 저장 시스템(110)의 성능에 최소의 영향을 줄 정도로 충분히 작도록 생성하기 위해 그 수를 선정할 수 있다.
[0023] 프로브 프로파일에 기반하여, 프로버(130)는 프로브 요청(132)을 분산형 저장 시스템(110)으로 전송한다. 일부 경우들에서, 프로브 요청들(132)은 클라이언트들(120)에 의해 전송되는 요청들(122)과 포맷이 동일할 수 있지만, 프로브 요청들(132)이 프로브 요청들이고 클라이언트들(120)로부터의 요청들이 아니라는 표시를 포함할 수 있다. 분산형 저장 시스템(110)은 프로브 요청들(132)을 수신하고, 각각의 프로브 요청의 요청 타겟에 의해 표시된 실제 데이터에 분산형 저장 시스템이 액세스하지 않을 수 있다는 것을 제외하면, 클라이언트 요청들(122)과 동일한 방식으로 프로브 요청들(132)을 프로세싱할 수 있다. 일부 경우들에서, 분산형 저장 시스템(110)은 대신에 구체적으로 프로버(130)에 할당된 데이터, 이를테면, 특수 필드, 컬럼(column), 메타데이터 값 또는 요청 타겟에 의해 표시된 데이터와 연관된 다른 값에 액세스할 수 있다. 이러한 방식으로, 분산형 저장 시스템(110)의 몇몇의 양상들의 성능은 클라이언트 요청들(122)의 프로세싱을 간섭하지 않고서 프로파일링될 수 있다. 예컨대, 요청된 데이터를 로킹(lock)하게 할 동시성 파라미터들을 포함하는 프로브 요청들은, 대신에, 클라이언트 요청 프로세싱을 간섭하지 않기 위해, 분산형 저장 시스템(110)으로 하여금 프로버 특정 데이터를 로킹할 수 있다. 그러한 기능은 분산형 저장 시스템(110)의 동시성 특징들이 클라이언트 요청들의 프로세싱에 영향을 주지 않고서 프로파일링되도록 허용한다.
[0024] 도시된 바와 같이, 프로버(130)는 전송된 프로브 요청(132) 및 수신된 응답들(134)에 기반하여 하나 또는 그 초과의 성능 메트릭들(140)을 생성한다. 일부 경우들에서, 성능 메트릭들은, 분산형 저장 시스템(110)이 프로브 요청에 응답하는데 걸리는 평균 시간의 양에 의해 측정된 전체 시스템 레이턴시를 포함할 수 있다. 성능 메트릭들은 또한, 실패한 프로브 요청들 대 성공적인 프로브 요청들의 비율에 의해 측정되는 이용 가능성을 포함할 수 있다. 성능 메트릭들은 또한 로컬 네트워크 레이턴시, 서버 큐 레이턴시(예컨대, 각각의 프로브 요청(132)이 프로세싱되기 전에 서버에서 대기하는 평균 시간의 양), 디스크 또는 메모리 레이턴시, 또는 다른 성능 메트릭들을 포함할 수 있다.
[0025] 도 2는 분산형 저장 시스템에서 클라이언트 요청을 프로세싱하기 위한 예시적인 프로세스의 스윔 레인도이다. 205에서, 클라이언트(120)는 요청을 분산형 저장 시스템(110)으로 전송한다. 210에서, 분산형 저장 시스템(110)은 요청을 서비스하기 위한 준비를 한다. 예컨대, 분산형 저장 시스템(110)에 의해 이루어진 준비들은 요청을 파싱(parsing)하는 것, 요청된 데이터를 저장하는 특정 서버를 결정하는 것, 요청을 특정 서버로 전송하는 것, 특정 요청에 대한 실행 계획을 생성하는 것(예컨대, 어떠한 테이블들을 액세스할지 및 요청을 이행하기 위해 데이터를 조작하는 방법을 결정하는 것), 또는 다른 동작들을 포함할 수 있다. 215에서, 분산형 저장 시스템(110)은 각각의 요청에 의해 표시된 데이터에 액세스한다. 이것은 분산형 저장 시스템(110)의 프로브 요청들의 핸들링과 대조적이고, 여기서 요청들에 의해 표시된 데이터가 (아래에 설명된 바와 같이) 액세스되지 않을 수 있다. 220에서, 분산형 저장 시스템(110)은 요청에 대한 응답을 클라이언트로 전송한다. 예컨대, 클라이언트가 분산형 저장 시스템(110)으로부터 특정 데이터를 판독하도록 요청하였다면, 응답은 요청된 데이터를 포함할 수 있다.
[0026] 도 3은 분산형 데이터베이스 시스템의 성능을 모니터링하기 위한 예시적인 프로세스의 스윔 레인도이다. 305에서, 클라이언트(120)는 요청들을 분산형 저장 시스템(110)으로 전송하고, 분산형 저장 시스템(110)은 310에서 요청들에 대한 응답들로 응답한다. 315에서, 클라이언트(120)는 전송된 요청에 관한 정보를 프로버(130)에 제공한다. 320에서, 프로버(130)는 클라이언트에 의해 전송된 요청들에 관한 정보에 기반하여 프로브 프로파일을 생성한다. 일부 경우들에서, 프로버는 다수의 클라이언트들로부터 전송된 요청들에 관한 정보를 수신하고, 이러한 정보에 기반하여 프로브 프로파일을 생성할 수 있다. 325에서, 프로버(130)는 프로브 프로파일에 기반한 프로브 요청들을 분산형 저장 시스템(110)으로 전송한다. 330에서, 분산형 저장 시스템(110)은 각각의 프로브 요청을 서비스하기 위해 준비한다. 335에서, 분산형 저장 시스템(110)은 각각의 프로브 요청의 요청 타겟에 의해 표시된 데이터와 연관된 프로브 특정 메타데이터에 액세스한다. 340에서, 분산형 저장 시스템(110)은 프로브 요청들에 대한 응답들을 프로버(130)로 전송한다. 345에서, 프로버는 프로브 요청들에 대한 응답들에 기반하여 성능 메트릭들을 계산한다.
[0027] 도 4는 분산형 데이터베이스 시스템의 성능을 모니터링하기 위한 예시적인 프로세스의 흐름도이다. 405에서, 클라이언트들에 의해 분산형 저장 시스템으로 전송되는 요청들이 식별되고, 각각의 요청은 요청 파라미터들을 포함한다. 일부 경우들에서, 요청 파라미터들은 요청 타입, 동시성 파라미터들, 및 요청과 관련된, 분산형 저장 시스템 내의 데이터를 표시하는 요청 타겟을 포함한다.
[0028] 410에서, 프로브 요청들은 식별된 요청들에 기반하여 생성된다. 프로브 요청들은, 식별된 요청들에 포함되는 요청 파라미터들의 통계적 샘플을 나타내는 프로브 요청 파라미터들을 포함한다. 일부 경우들에서, 프로브 요청들을 생성하는 것은 식별된 요청들의 수보다 더 적은 수의 프로브 요청들을 생성하는 것을 포함한다. 프로브 요청들은 생성하는 것은 특정 요청 타입, 특정 동시성 파라미터들 및 특정 요청 타입, 특정 동시성 파라미터들 및 특정 요청 타겟을 포함하는 식별된 요청들의 수와 비례하는 특정 요청 타겟을 포함하는 다수의 프로브 요청들을 생성하는 것을 포함할 수 있다.
[0029] 415에서, 생성된 프로브 요청들은 네트워크를 통해 분산형 저장 시스템으로 전송된다. 분산형 저장 시스템은, 프로브 요청을 수신하는 것에 대한 응답으로, 각각의 프로브 요청을 서비스하기 위한 준비들을 수행하도록 구성된다. 일부 경우들에서, 분산형 저장 시스템은, 프로브 요청을 수신한 것에 대한 응답으로, 각각의 프로브 요청을 서비스하기 위한 준비들을 수행할 때, 클라이언트들이 액세스 가능한 임의의 데이터를 판독하거나 기록하지 않도록 구성된다. 일부 구현들에서, 분산형 저장 시스템 내의 데이터는 클라이언트들이 액세스 가능하지 않은 프로브 필드를 포함하고, 분산형 저장 시스템은 프로브 요청을 수신하는 것에 대한 응답으로 프로브 요청의 요청 타겟과 연관된 프로브 필드에 액세스하도록 구성된다.
[0030] 420에서, 프로브 요청들에 대한 응답들은 분산형 저장 시스템으로부터 수신된다. 425에서, 분산형 저장 시스템에 대한 적어도 하나의 성능 메트릭은 수신된 응답들에 기반하여 출력된다. 일부 경우들에서, 적어도 하나의 성능 메트릭을 출력하는 것은, 특정 데이터 그룹에서 데이터를 식별하는 요청 타겟들을 포함하는 프로브 요청들에 대한 응답들에 기반하여 분산형 저장 시스템의 특정 데이터 그룹에 대한 적어도 하나의 성능 메트릭의 가중 평균을 출력하는 것을 포함한다. 적어도 하나의 성능 메트릭은 이용 가능성, 디스크 레이턴시, 큐 레이턴시, 요청 준비 레이턴시, 또는 내부 네트워크 레이턴시 중 적어도 하나를 포함할 수 있다. 일부 경우들에서, 성능 메트릭들은 가중 평균들을 포함할 수 있고, 가중치들은 요청 정보(126)로부터 도출된 계산에서 사용된다. 예컨대, 스테일 동시성에 대한 요청들이 강한 동시성에 대한 것보다 10 배 많다면, 스테일 동시성 프로브 요청들에 대한 성능 데이터는 성능 메트릭들을 보장하는데 있어서 강한 동시성 프로브들에 대한 것보다 10 배 많을(heavy) 수 있다.
[0031] 일부 경우들에서, 프로세스(400)는 분산형 저장 시스템에 대한 적어도 하나의 성능 메트릭에 대한 타겟 값을 포함하는 SLO(service level objective)와 적어도 하나의 성능 메트릭을 비교하는 것을 포함한다. SLO는 분산형 저장 시스템에 대한 SLA(service level agreement) 내에 포함될 수 있다. 프로세스(400)는 또한, 적어도 하나의 성능 메트릭이 타겟 값을 만족시키지 않는다고 결정하는 것, 및 적어도 하나의 성능 메트릭이 타겟 값을 만족시키지 않는다는 표시를 출력하는 것을 포함할 수 있다.
[0032] 도 5는 본 문헌에 설명되는 시스템들 및 방법들을, 클라이언트 또는 서버 또는 복수의 서버들 중 어느 하나로서, 구현하기 위해 사용될 수 있는 컴퓨팅 디바이스들(500, 550)의 블록도이다. 컴퓨팅 디바이스(500)는 다양한 형태들의 디지털 컴퓨터들, 이를테면 랩톱들, 테스크톱들, 워크스테이션들, 개인 정보 단말들, 서버들, 블레이드 서버들, 메인프레임들, 및 다른 적합한 컴퓨터들을 나타내는 것으로 의도된다. 컴퓨팅 디바이스(550)는 다양한 형태들의 모바일 디바이스들, 이를테면 개인 정보 단말들, 셀룰러 텔레폰들, 스마트폰들, 및 다른 유사한 컴퓨팅 디바이스들을 나타내는 것으로 의도된다. 부가적으로, 컴퓨팅 디바이스(500 또는 550)는 USB(Universal Serial Bus) 플래시 드라이브들을 포함할 수 있다. USB 플래시 드라이브들은 운영 시스템들 및 다른 애플리케이션들을 저장할 수 있다. USB 플래시 드라이브들은 입력/출력 컴포넌트들, 이를테면, 다른 컴퓨팅 디바이스의 USB 포트에 삽입될 수 있는 USB 커넥터 또는 무선 송신기를 포함할 수 있다. 본원에서 도시된 컴포넌트들, 그들의 연결들 및 관계들, 및 그들의 기능들은 단지 예시적인 것으로 의도되고, 본 문헌에서 설명되고 그리고/또는 청구되는 발명의 구현들을 제한하는 것으로 의도되지 않는다.
[0033] 컴퓨팅 디바이스(500)는 프로세서(502), 메모리(504), 저장 디바이스(506), 메모리(504) 및 고속 확장 포트들(510)에 연결되는 고속 인터페이스(508), 및 저속 버스(514) 및 저장 디바이스(506)에 연결되는 저속 인터페이스(512)를 포함한다. 컴포넌트들(502, 504, 506, 508, 510, 및 512) 각각은 다양한 버스들을 사용하여 상호연결되고, 공통 마더보드 상에 장착되거나 또는 적합할 때 다른 방식들로 장착될 수 있다. 프로세서(502)는 고속 인터페이스(508)에 결합된 디스플레이(516)와 같은 외부 입력/출력 디바이스 상에 GUI에 대한 그래픽 정보를 디스플레이하기 위해서 메모리(504) 내에 또는 저장 디바이스(506) 상에 저장되는 명령들을 비롯해서, 컴퓨팅 디바이스(500) 내에서의 실행을 위한 명령들을 프로세싱할 수 있다. 다른 구현들에 있어서는, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 다수의 타입들의 메모리와 함께, 적절할 때, 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(500)이 연결될 수 있는데, 각각의 디바이스는 (예컨대, 서버 뱅크, 블레이드 서버들의 그룹, 또는 다중-프로세서 시스템으로서) 필요한 동작들의 부분들을 제공한다.
[0034] 메모리(504)는 컴퓨팅 디바이스(500) 내에 정보를 저장한다. 일 구현에 있어서, 메모리(504)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현에 있어서, 메모리(504)는 비-휘발성 메모리 유닛 또는 유닛들이다. 메모리(504)는 또한 다른 형태의 컴퓨터-판독가능 매체, 이를테면 자기 또는 광학 디스크일 수 있다.
[0035] 저장 디바이스(506)는 컴퓨팅 디바이스(500)를 위한 대용량 저장부를 제공할 수 있다. 일 구현에 있어서, 저장 디바이스(506)는 저장 영역 네트워크 또는 다른 구성들의 디바이스들을 비롯해서, 컴퓨터-판독가능 매체, 이를테면, 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 디바이스들의 어레이일 수 있거나 이를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어로 유형적으로(tangibly) 구현될 수 있다. 컴퓨터 프로그램 제품은 또한, 실행될 경우에 위에서 설명된 것들과 같은 하나 또는 그 초과의 방법들을 수행하는 명령들을 포함할 수 있다. 정보 캐리어는 컴퓨터- 또는 기계-판독가능 매체, 이를테면 메모리(504), 저장 디바이스(506), 또는 프로세서(502) 상의 메모리이다.
[0036] 고속 제어기(508)는 컴퓨팅 디바이스(500)에 대한 대역폭-집약적 동작들을 관리하는데 반해, 저속 제어기(512)는 더 낮은 대역폭-집약적 동작들을 관리한다. 기능들의 그러한 할당은 단지 예시적인 것이다. 일 구현에 있어서, 고속 제어기(508)는 메모리(504), 디스플레이(516)(예컨대, 그래픽 프로세서 또는 가속기를 통해), 및 다양한 확장 카드들(미도시)을 수용할 수 있는 고속 확장 포트들(510)에 결합된다. 구현에 있어서, 저속 제어기(512)는 저장 디바이스(506) 및 저속 확장 포트(514)에 결합된다. 다양한 통신 포트들(예컨대, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트는 예컨대 네트워크 어댑터를 통해서 하나 또는 그 초과의 입력/출력 디바이스들, 이를테면 키보드, 포인팅 디바이스, 스캐너, 또는 스위치 또는 라우터와 같은 네트워킹 디바이스에 결합될 수 있다.
[0037] 컴퓨팅 디바이스(500)는 도면에 도시된 바와 같이 다수의 상이한 형태들로 구현될 수 있다. 예컨대, 그것은 표준 서버(520)로서 또는 그러한 서버들의 그룹으로 여러번 구현될 수 있다. 그것은 또한 랙(rack) 서버 시스템(524)의 부분으로서 구현될 수 있다. 또한, 그것은 랩톱 컴퓨터(522)와 같은 개인용 컴퓨터로 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(500)로부터의 컴포넌트들은 디바이스(550)와 같은 모바일 디바이스의 다른 컴포넌트들(미도시)과 결합될 수 있다. 그러한 디바이스들 각각은 컴퓨팅 디바이스(500, 550) 중 하나 또는 그 초과를 포함할 수 있고, 전체적인 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(500, 550)로 구성될 수 있다.
[0038] 컴퓨팅 디바이스(550)는 다른 컴포넌트들 중에서도, 프로세서(552), 메모리(564), 디스플레이(554)와 같은 입력/출력 디바이스, 통신 인터페이스(566), 및 트랜시버(568)를 포함한다. 디바이스(550)는 또한 추가적인 저장소를 제공하기 위해서 마이크로드라이브 또는 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 컴포넌트들(550, 552, 564, 554, 566, 및 568) 각각은 다양한 버스들을 사용하여 상호연결되고, 컴포넌트들 중 몇몇은 공통 마더보드 상에 장착되거나 또는 적합할 때 다른 방식들로 장착될 수 있다.
[0039] 프로세서(552)는 메모리(564)에 저장된 명령들을 비롯해서, 컴퓨팅 디바이스(550) 내의 명령들을 실행할 수 있다. 프로세서는 별개의 그리고 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 부가적으로, 프로세서는 다수의 아키텍처들 중 임의의 것을 사용하여 구현될 수 있다. 예컨대, 프로세서(510)는 CISC(Complex Instruction Set Computers) 프로세서, RISC(Reduced Instruction Set Computer) 프로세서, 또는 MISC(Minimal Instruction Set Computer) 프로세서일 수 있다. 프로세서는, 예컨대, 디바이스(550)의 다른 컴포넌트들의 조정, 이를테면 사용자 인터페이스들의 제어, 디바이스(550)에 의한 애플리케이션들 실행, 및 디바이스(550)에 의한 무선 통신을 제공할 수 있다.
[0040] 프로세서(552)는 디스플레이(554)에 결합된 디스플레이 인터페이스(556) 및 제어 인터페이스(558)를 통해 사용자와 통신할 수 있다. 디스플레이(554)는, 예컨대, TFT LCD(Thin-Film-Transistor Liquid Crystal Display) 디스플레이 또는 OLED(Organic Light Emitting Diode) 디스플레이, 또는 다른 적합한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(556)는 그래픽 및 다른 정보를 사용자에게 제시하기 위해서 디스플레이(554)를 구동하기 위한 적합한 회로를 포함할 수 있다. 제어 인터페이스(558)는 사용자로부터 커맨드들을 수신하고, 프로세서(552)에 제공하기 위해서 그 커맨드들을 변환할 수 있다. 또한, 다른 디바이스들과의 디바이스(550)의 근거리 통신을 가능하게 하기 위해서 외부 인터페이스(562)가 프로세서(552)와의 통신에 제공될 수 있다. 외부 인터페이스(562)는, 예컨대, 일부 구현들에 있어서의 유선 통신 또는 다른 구현들에 있어서의 무선 통신을 제공할 수 있고, 다수의 인터페이스들이 또한 사용될 수 있다.
[0041] 메모리(564)는 컴퓨팅 디바이스(550) 내에 정보를 저장한다. 메모리(564)는 컴퓨터-판독가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 또는 비-휘발성 메모리 유닛 또는 유닛들 중 하나 또는 그 초과로서 구현될 수 있다. 확장 메모리(574)가 또한 제공되고 확장 인터페이스(572)를 통해 디바이스(550)에 연결될 수 있는데, 그 확장 인터페이스는 예컨대 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있다. 그러한 확장 메모리(574)는 디바이스(550)를 위한 가외 저장 공간을 제공할 수 있거나, 디바이스(550)에 대한 애플리케이션들 또는 다른 정보를 또한 저장할 수 있다. 특히, 확장 메모리(574)는 위에서 설명된 프로세스들을 실행하거나 보충하기 위한 명령들을 포함할 수 있고, 보안 정보 역시 포함할 수 있다. 따라서, 예컨대, 확장 메모리(574)는 디바이스(550)를 위한 보안 모듈로서 제공될 수 있고, 디바이스(550)의 보안 사용을 허용하는 명령들로 프로그래밍될 수 있다. 또한, 보안 애플리케이션들이 추가적인 정보와 함께 SIMM 카드들을 통해 제공될 수 있는데, 이를테면 식별 정보를 해킹가능하지 않은 방식으로 SIMM 카드 상에 놓을 수 있다.
[0042] 메모리는, 예컨대, 아래에서 논의된 바와 같이 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현에 있어서, 컴퓨터 프로그램 제품이 정보 캐리어로 유형적으로 구현된다. 컴퓨터 프로그램 제품은, 실행될 경우에 위에서 설명된 것들과 같은 하나 또는 그 초과의 방법들을 수행하는 명령들을 포함한다. 정보 캐리어는 예컨대 트랜시버(568) 또는 외부 인터페이스(562)를 통해 수용될 수 있는 컴퓨터- 또는 기계-판독가능 매체, 이를테면 메모리(564), 확장 메모리(574), 또는 프로세서(552) 상의 메모리이다.
[0043] 디바이스(550)는, 필요한 경우에 디지털 신호 프로세싱 회로를 포함할 수 있는 통신 인터페이스(566)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(566)는 다양한 모드들 또는 프로토콜들, 이를테면 다른 것들 중에서도 GSM 음성 호들, SMS, EMS, 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000, 또는 GPRS 하에서의 통신들을 제공할 수 있다. 그러한 통신은 예컨대 라디오-주파수 트랜시버(568)를 통해 발생할 수 있다. 게다가, 예컨대 블루투스, WiFi 또는 다른 그러한 트랜시버(미도시)를 사용하는 단거리 통신이 발생할 수 있다. 게다가, GPS(Global Positioning System) 수신기 모듈(570)은, 적합할 때 디바이스(550) 상에서 실행하는 애플리케이션들에 의해 사용될 수 있는 추가적인 내비게이션- 및 위치-관련 무선 데이터를 그 디바이스(550)에 제공할 수 있다.
[0044] 디바이스(550)는 또한 오디오 코덱(560)을 사용하여 청각적으로 통신할 수 있고, 그 오디오 코덱은 사용자로부터 음성 정보를 수신하고 그것을 유용한 디지털 정보로 변환할 수 있다. 오디오 코덱(560)은 마찬가지로 사용자에 대한 청각 사운드를 이를테면 예컨대 디바이스(550)의 핸드셋 내의 스피커를 통해 생성할 수 있다. 그러한 사운드는 음성 텔레폰 호들로부터의 사운드를 포함할 수 있고, 기록된 사운드(예컨대, 음성 메시지들, 음악 파일들 등)를 포함할 수 있으며, 디바이스(550) 상에서 동작하는 애플리케이션들에 의해 생성되는 사운드를 또한 포함할 수 있다.
[0045] 컴퓨팅 디바이스(550)는 도면에 도시된 바와 같이 다수의 상이한 형태들로 구현될 수 있다. 예컨대, 그것은 셀룰러 텔레폰(580)으로서 구현될 수 있다. 그것은 또한 스마트폰(582), 개인 정보 단말, 또는 다른 유사한 모바일 디바이스의 일부로서 구현될 수 있다.
[0046] 본원에 설명된 시스템들 및 기술들의 다양한 구현들은, 디지털 전자 회로, 집적 회로, 특수하게 설계된 ASIC(주문형 집적 회로)들, 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 결합들로 실현될 수 있다. 이들 다양한 구현들은, 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 그들로 데이터 및 명령들을 송신하도록 커플링된 특수 목적 또는 범용 목적일 수 있는 적어도 하나의 프로그래밍가능 프로세서를 포함하는 프로그래밍가능 시스템 상에서 실행가능하고 그리고/또는 해석가능한 하나 또는 그 초과의 컴퓨터 프로그램들에서의 구현을 포함할 수 있다.
[0047] 이들 컴퓨터 프로그램들(프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로 또한 알려짐)은, 프로그래밍가능 프로세서에 대한 머신 명령들을 포함하며, 고레벨의 절차적인 및/또는 오브젝트-지향적인 프로그래밍 언어 및/또는 어셈블리/머신 언어로 구현될 수 있다. 본원에서 사용된 바와 같이, "머신-판독가능 매체" 및 "컴퓨터-판독가능 매체"라는 용어들은, 머신-판독가능 신호로서 머신 명령들을 수신하는 머신-판독가능 매체를 포함하여, 머신 명령들 및/또는 데이터를 프로그래밍가능 프로세서에 제공하기 위해 사용되는 임의의 컴퓨터 프로그램 제품, 장치 및/또는 디바이스(예컨대, 자기 디스크들, 광학 디스크들, 메모리, 프로그래밍가능 로직 디바이스(PLD)들)로 지칭된다. "머신-판독 가능 신호"라는 용어는, 머신 명령들 및/또는 데이터를 프로그래밍가능 프로세서에 제공하기 위해 사용되는 임의의 신호를 지칭한다.
[0048] 사용자와의 상호작용을 제공하기 위해, 본 명세서에 설명된 시스템들 및 기술들은, 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스(예컨대, CRT(음극선 관) 또는 LCD(액정 디스플레이) 모니터), 및 사용자가 입력을 컴퓨터에 제공할 수 있는 키보드 및 포인팅 디바이스(예컨대, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들은 또한, 사용자와의 상호작용을 제공하기 위해 사용될 수 있으며, 예컨대, 사용자에게 제공된 피드백은 임의의 형태의 감지 피드백(예컨대, 시각적인 피드백, 가청적인 피드백, 또는 촉각적인 피드백)일 수 있고; 사용자로부터의 입력은 음향, 스피치, 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
[0049] 본원에 설명된 시스템들 및 기술들은, 백 엔드(back end) 컴포넌트를 (예컨대, 데이터 서버로서) 포함하거나, 미들웨어 컴포넌트(예컨대, 애플리케이션 서버)를 포함하거나, 프론트 엔드 컴포넌트(예컨대, 사용자가 본원에 설명된 시스템들 및 기술들의 구현과 상호작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하거나, 또는 그러한 백 엔드, 미들웨어, 또는 프론트 엔드 컴포넌트들의 임의의 결합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은, 임의의 형태 또는 매체의 디지털 데이터 통신(예컨대, 통신 네트워크)에 의해 상호접속될 수 있다. 통신 네트워크들의 예들은 로컬 영역 네트워크("LAN"), 광역 네트워크("WAN"), 피어-투-피어 네트워크들(애드-혹 또는 정적 멤버들을 가짐), 그리드 컴퓨팅 인프라구조들 및 인터넷을 포함한다.
[0050] 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 원격에 있고, 통상적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는, 개개의 컴퓨터들 상에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들로 인해 발생한다.
[0051] 추가의 구현들이 다음의 예들에 요약된다.
[0052] 예 1: 분산형 저장 시스템의 성능 메트릭들을 측정하기 위한, 하나 또는 그 초과의 프로세서들에 의해 실행되는 컴퓨터-구현 방법으로서, 클라이언트들에 의해 분산형 저장 시스템으로 전송되는 요청들을 식별하는 단계 ― 각각의 요청은 요청 파라미터들에 대한 요청 파라미터 값들을 포함함 ― ; 식별된 요청들에 기반하여 프로브 요청들을 생성하는 단계 ― 프로브 요청들은, 식별된 요청들에 포함되는 요청 파라미터들의 통계적 샘플을 나타내는 프로브 요청 파라미터 값들을 포함함 ― ; 생성된 프로브 요청들을 네트워크를 통해 분산형 저장 시스템으로 전송하는 단계 ― 분산형 저장 시스템은 프로브 요청을 수신하는 것에 대한 응답으로 각각의 프로브 요청을 서비스하기 위한 준비들을 수행하도록 구성됨 ― ; 분산형 저장 시스템으로부터 프로브 요청들에 대한 응답들을 수신하는 단계; 및 수신된 응답들에 기반하여 분산형 저장 시스템의 현재 성능 상태를 측정하는 적어도 하나의 성능 메트릭 값을 출력하는 단계를 포함하는, 컴퓨터-구현 방법.
[0053] 예 2: 제1 예에 있어서, 프로브 요청들을 생성하는 단계는 식별된 요청들의 수보다 더 적은 수의 프로브 요청들을 생성하는 단계를 포함하는, 컴퓨터-구현 방법.
[0054] 예 3: 제1 예 또는 제2 예에 있어서, 요청 파라미터들은 요청 타입, 동시성 파라미터들, 및 요청과 관련된, 분산형 저장 시스템 내의 데이터를 표시하는 요청 타겟을 포함하는, 컴퓨터-구현 방법.
[0055] 예 4: 제3 예에 있어서, 프로브 요청들을 생성하는 단계는, 특정 요청 타입, 특정 동시성 파라미터들, 및 특정 요청 타겟을 포함하는 다수의 프로브 요청들을 생성하는 단계를 포함하고, 특정 요청 타겟은 특정 요청 타입, 특정 동시성 파라미터들 및 특정 요청 타겟을 포함하는 식별된 요청들의 수에 비례하는, 컴퓨터-구현 방법.
[0056] 예 5: 제1 예 내지 제4 예 중 어느 한 예에 있어서, 적어도 하나의 성능 메트릭을 출력하는 단계는, 특정 데이터 그룹에서 데이터를 식별하는 요청 타겟들을 포함하는 프로브 요청들에 대한 응답들에 기반하여, 분산형 저장 시스템의 특정 데이터 그룹에 대한 적어도 하나의 성능 메트릭의 가중 평균을 출력하는 단계를 포함하는, 컴퓨터-구현 방법.
[0057] 예 6: 제1 예 내지 제5 예 중 어느 한 예에 있어서, 적어도 하나의 성능 메트릭은 이용 가능성, 디스크 레이턴시, 큐 레이턴시, 요청 준비 레이턴시, 또는 내부 네트워크 레이턴시 중 적어도 하나를 포함하는, 컴퓨터-구현 방법.
[0058] 예 7: 제1 예 내지 제6 예 중 어느 한 예에 있어서, 분산형 저장 시스템은, 프로브 요청을 수신한 것에 대한 응답으로 각각의 프로브 요청을 서비스하기 위한 준비들을 수행할 때, 클라이언트들이 액세스 가능한 임의의 데이터를 판독하거나 기록하지 않도록 구성되는, 컴퓨터-구현 방법.
[0059] 예 8: 제1 예 내지 제7 예 중 어느 한 예에 있어서, 분산형 저장 시스템 내의 데이터는 클라이언트들이 액세스 가능하지 않은 프로브 필드를 포함하고, 분산형 저장 시스템은 프로브 요청을 수신한 것에 대한 응답으로 프로브 요청 내의 요청 타겟과 연관된 프로브 필드에 액세스하도록 구성되는, 컴퓨터-구현 방법.
[0060] 예 9: 제1 예 내지 제8 예 중 어느 한 예에 있어서, 분산형 저장 시스템에 대한 적어도 하나의 성능 메트릭에 대한 타겟 값을 포함하는 서비스 레벨 오브젝티브(SLO; service level objective)와 적어도 하나의 성능 메트릭을 비교하는 단계를 더 포함하는, 컴퓨터-구현 방법.
[0061] 예 10: 제9 예에 있어서, 적어도 하나의 성능 메트릭이 타겟 값을 만족시키지 않는다고 결정하는 단계; 및 적어도 하나의 성능 메트릭이 타겟 값을 만족시키지 않는다는 표시를 출력하는 단계를 더 포함하는, 컴퓨터-구현 방법.
[0062] 예 11: 제9 예 또는 제10 예에 있어서, 서비스 레벨 오브젝티브는 분산형 저장 시스템에 대한 서비스 레벨 합의(SLA; service level agreement) 내에 포함되는, 컴퓨터-구현 방법.
[0063] 예 12: 제1 예 내지 제11 예 중 어느 한 예에 있어서, 프로브 요청들은 식별된 요청들의 통계적 표현인, 컴퓨터-구현 방법.
[0064] 예 13: 명령들을 저장하는 비일시적인 컴퓨터-판독 가능 매체로서, 명령들은, 실행될 때, 적어도 하나의 프로세서로 하여금 분산형 저장 시스템의 성능 메트릭들을 측정하기 위한 동작들을 수행하게 하도록 동작 가능하고, 동작들은: 클라이언트들에 의해 분산형 저장 시스템으로 전송되는 요청들을 식별하는 것 ― 각각의 요청은 요청 파라미터들을 포함함 ― ; 식별된 요청들에 기반하여 프로브 요청들을 생성하는 것 ― 프로브 요청들은, 식별된 요청들에 포함되는 요청 파라미터들의 통계적 샘플을 나타내는 프로브 요청 파라미터들을 포함함 ― ; 생성된 프로브 요청들을 네트워크를 통해 분산형 저장 시스템으로 전송하는 것 ― 분산형 저장 시스템은 프로브 요청을 수신하는 것에 대한 응답으로 각각의 프로브 요청을 서비스하기 위한 준비들을 수행하도록 구성됨 ― ; 분산형 저장 시스템으로부터 프로브 요청들에 대한 응답들을 수신하는 것; 및 수신된 응답들에 기반하여 분산형 저장 시스템에 대한 적어도 하나의 성능 메트릭을 출력하는 것을 포함하는, 비일시적인 컴퓨터-판독 가능 매체.
[0065] 예 14: 제13 예에 있어서, 프로브 요청들을 생성하는 것은 식별된 요청들의 수보다 더 적은 수의 프로브 요청들을 생성하는 것을 포함하는, 비일시적인 컴퓨터-판독 가능 매체.
[0066] 예 15: 제13 예 또는 제14예에 있어서, 요청 파라미터들은 요청 타입, 동시성 파라미터들, 및 요청과 관련된, 분산형 저장 시스템 내의 데이터를 표시하는 요청 타겟을 포함하는, 비일시적인 컴퓨터-판독 가능 매체.
[0067] 예 16: 제15 예에 있어서, 프로브 요청들을 생성하는 것은, 특정 요청 타입, 특정 동시성 파라미터들, 및 특정 요청 타겟을 포함하는 다수의 프로브 요청들을 생성하는 것을 포함하고, 특정 요청 타겟은 특정 요청 타입, 특정 동시성 파라미터들 및 특정 요청 타겟을 포함하는 식별된 요청들의 수에 비례하는, 비일시적인 컴퓨터-판독 가능 매체.
[0068] 예 17: 제13 예 내지 제16 예 중 어느 한 예에 있어서, 적어도 하나의 성능 메트릭을 출력하는 것은, 특정 데이터 그룹에서 데이터를 식별하는 요청 타겟들을 포함하는 프로브 요청들에 대한 응답들에 기반하여, 분산형 저장 시스템의 특정 데이터 그룹에 대한 적어도 하나의 성능 메트릭의 가중 평균을 출력하는 것을 포함하는, 비일시적인 컴퓨터-판독 가능 매체.
[0069] 예 18: 제13 예 내지 제17 예 중 어느 한 예에 있어서, 적어도 하나의 성능 메트릭은 이용 가능성, 디스크 레이턴시, 큐 레이턴시, 요청 준비 레이턴시, 또는 내부 네트워크 레이턴시 중 적어도 하나를 포함하는, 비일시적인 컴퓨터-판독 가능 매체.
[0070] 예 19: 제13 예 내지 제18 예 중 어느 한 예에 있어서, 분산형 저장 시스템은, 프로브 요청을 수신한 것에 대한 응답으로 각각의 프로브 요청을 서비스하기 위한 준비들을 수행할 때, 클라이언트들이 액세스 가능한 임의의 데이터를 판독하거나 기록하지 않도록 구성되는, 비일시적인 컴퓨터-판독 가능 매체.
[0071] 예 20: 분산형 저장 시스템의 성능 메트릭들을 측정하기 위한 시스템으로서, 데이터를 저장하기 위한 메모리; 및 메모리에 액세스하고, 동작들을 수행하도록 동작 가능한 하나 또는 그 초과의 프로세서들을 포함하고, 동작들은: 클라이언트들에 의해 분산형 저장 시스템으로 전송되는 요청들을 식별하는 것 ― 각각의 요청은 요청 파라미터들을 포함함 ― ; 식별된 요청들에 기반하여 프로브 요청들을 생성하는 것 ― 프로브 요청들은, 식별된 요청들에 포함되는 요청 파라미터들의 통계적 샘플을 나타내는 프로브 요청 파라미터들을 포함함 ― ; 생성된 프로브 요청들을 네트워크를 통해 분산형 저장 시스템으로 전송하는 것 ― 분산형 저장 시스템은 프로브 요청을 수신하는 것에 대한 응답으로 각각의 프로브 요청을 서비스하기 위한 준비들을 수행하도록 구성됨 ― ; 분산형 저장 시스템으로부터 프로브 요청들에 대한 응답들을 수신하는 것; 및 수신된 응답들에 기반하여 분산형 저장 시스템에 대한 적어도 하나의 성능 메트릭을 출력하는 것을 포함하는, 분산형 저장 시스템의 성능 메트릭들을 측정하기 위한 시스템.
[0072] 몇몇의 구현들이 위에서 상세히 설명되었지만, 다른 변경들이 가능하다. 또한, 도면들에 도시된 로직 흐름들은, 바람직한 결과들을 달성하기 위해 도시된 특정 순서, 또는 순차적인 순서를 요구하지 않는다. 다른 단계들이 설명된 흐름들에 제공될 수 있거나, 단계들이 설명된 흐름들로부터 제거될 수 있고, 다른 컴포넌트들이 설명된 시스템들에 부가되거나 이들로부터 제거될 수 있다. 따라서, 다른 구현들이 다음의 청구 범위 내에 있다.
Claims (23)
- 분산형 저장 시스템(distributed storage system)의 성능 메트릭들(performance metrics)을 측정하기 위한, 하나 또는 그 초과의 프로세서들에 의해 실행되는 컴퓨터-구현 방법으로서,
클라이언트들에 의해 분산형 저장 시스템으로 전송되는 요청들을 식별하는 단계 ― 각각의 요청은 요청 타겟을 포함하는 요청 파라미터들에 대한 요청 파라미터 값들을 포함함 ― ;
식별된 요청들에 기반하여 프로브 요청들(probe requests)을 생성하는 단계 ― 상기 프로브 요청들은, 상기 식별된 요청들에 포함되는 요청 파라미터들의 통계적 샘플(statistical sample)을 나타내는, 프로브 요청 타겟을 포함하는 프로브 요청 파라미터에 대한 프로브 요청 파라미터 값들을 포함함 ― ;
상기 프로브 요청들이 클라이언트에 의해 전송되지 않았다는 표시를 갖는 생성된 프로브 요청들을 네트워크를 통해 상기 분산형 저장 시스템으로 전송하는 단계 ― 상기 분산형 저장 시스템은:
상기 클라이언트들로부터의 상기 요청들 중 적어도 일부를 서비스하는 동안 그리고 상기 프로브 요청들을 수신하는 것에 대한 응답으로, 요청 타겟으로서 상기 프로브 요청 타겟을 포함하며 클라이언트로부터 수신되는 대응 요청을 서비스하기 위해 또한 수행될 각각의 프로브 요청을 서비스하기 위한 준비들을 수행하고, 그리고
상기 프로브 요청들이 클라이언트에 의해 전송되지 않았다는 표시들에 기초하여, 상기 대응 요청들에 대해 액세스될 프로브 요청 타겟들이 표시하는 어떤 데이터에도 실제로는 액세스 하지 않도록 구성됨 ―;
상기 분산형 저장 시스템으로부터 상기 프로브 요청들에 대한 응답들을 수신하는 단계; 및
수신된 응답들에 기반하여 상기 분산형 저장 시스템의 현재 성능 상태를 측정하는 적어도 하나의 성능 메트릭 값을 출력하는 단계를 포함하는,
컴퓨터-구현 방법. - 제1 항에 있어서,
상기 프로브 요청들을 생성하는 단계는 식별된 요청들의 수보다 더 적은 수의 프로브 요청들을 생성하는 단계를 포함하는,
컴퓨터-구현 방법. - 제1 항 또는 제2 항에 있어서,
상기 요청 파라미터들은 요청 타입, 동시성(concurrency) 파라미터들, 및 상기 요청과 관련된, 상기 분산형 저장 시스템 내의 데이터를 표시하는 요청 타겟을 포함하는,
컴퓨터-구현 방법. - 제3 항에 있어서,
상기 프로브 요청들을 생성하는 단계는, 특정 요청 타입, 특정 동시성 파라미터들, 및 특정 요청 타겟을 포함하는 다수의 프로브 요청들을 생성하는 단계를 포함하고, 상기 특정 요청 타겟은 상기 특정 요청 타입, 상기 특정 동시성 파라미터들 및 상기 특정 요청 타겟을 포함하는 식별된 요청들의 수에 비례하는,
컴퓨터-구현 방법. - 제3 항에 있어서,
상기 적어도 하나의 성능 메트릭을 출력하는 단계는, 특정 데이터 그룹에서 데이터를 식별하는 요청 타겟들을 포함하는 프로브 요청들에 대한 응답들에 기반하여, 상기 분산형 저장 시스템의 상기 특정 데이터 그룹에 대한 적어도 하나의 성능 메트릭의 가중 평균(weighted average)을 출력하는 단계를 포함하는,
컴퓨터-구현 방법. - 제1 항 또는 제2 항에 있어서,
상기 적어도 하나의 성능 메트릭은 이용 가능성, 디스크 레이턴시(disk latency), 큐 레이턴시(queue latency), 요청 준비 레이턴시, 또는 내부 네트워크 레이턴시 중 적어도 하나를 포함하는,
컴퓨터-구현 방법. - 제1 항 또는 제2 항에 있어서,
상기 분산형 저장 시스템은, 상기 프로브 요청을 수신한 것에 대한 응답으로 각각의 프로브 요청을 서비스하기 위한 준비들을 수행할 때, 상기 클라이언트들이 액세스 가능한 임의의 데이터를 판독하거나 기록하지 않도록 구성되는,
컴퓨터-구현 방법. - 제7 항에 있어서,
상기 분산형 저장 시스템 내의 데이터는 상기 클라이언트들이 액세스 가능하지 않은 프로브 필드(probe field)를 포함하고, 상기 분산형 저장 시스템은 프로브 요청을 수신한 것에 대한 응답으로 상기 프로브 요청 내의 요청 타겟과 연관된 상기 프로브 필드에 액세스하도록 구성되는,
컴퓨터-구현 방법. - 제1 항 또는 제2 항에 있어서,
상기 분산형 저장 시스템에 대한 적어도 하나의 성능 메트릭에 대한 타겟 값을 포함하는 서비스 레벨 오브젝티브(SLO; service level objective)와 상기 적어도 하나의 성능 메트릭을 비교하는 단계를 더 포함하는,
컴퓨터-구현 방법. - 제9 항에 있어서,
상기 적어도 하나의 성능 메트릭이 상기 타겟 값을 만족시키지 않는다고 결정하는 단계; 및
상기 적어도 하나의 성능 메트릭이 상기 타겟 값을 만족시키지 않는다는 표시를 출력하는 단계를 더 포함하는,
컴퓨터-구현 방법. - 제9 항에 있어서,
상기 서비스 레벨 오브젝티브는 상기 분산형 저장 시스템에 대한 서비스 레벨 합의(SLA; service level agreement) 내에 포함되는,
컴퓨터-구현 방법. - 제1 항 또는 제2 항에 있어서,
상기 프로브 요청들은 식별된 요청들의 통계적 표현(statistical representation)인,
컴퓨터-구현 방법. - 명령들을 저장하는 비일시적인 컴퓨터-판독 가능 매체로서,
상기 명령들은, 실행될 때, 적어도 하나의 프로세서로 하여금 분산형 저장 시스템의 성능 메트릭들을 측정하기 위한 동작들을 수행하게 하도록 동작 가능하고, 상기 동작들은:
클라이언트들에 의해 상기 분산형 저장 시스템으로 전송되는 요청들을 식별하는 것 ― 각각의 요청은 요청 타겟을 포함하는 요청 파라미터들에 대한 요청 파라미터 값들을 포함함 ― ;
식별된 요청들에 기반하여 프로브 요청들을 생성하는 것 ― 상기 프로브 요청들은, 상기 식별된 요청들에 포함되는 요청 파라미터들의 통계적 샘플을 나타내는, 프로브 요청 타겟을 포함하는 프로브 요청 파라미터에 대한 프로브 요청 파라미터 값들을 포함함 ― ;
상기 프로브 요청들이 클라이언트에 의해 전송되지 않았다는 표시를 갖는 생성된 프로브 요청들을 네트워크를 통해 상기 분산형 저장 시스템으로 전송하는 것 ― 상기 분산형 저장 시스템은:
상기 클라이언트들로부터의 상기 요청들 중 적어도 일부를 서비스하는 동안 그리고 상기 프로브 요청들을 수신하는 것에 대한 응답으로, 요청 타겟으로서 상기 프로브 요청 타겟을 포함하며 클라이언트로부터 수신되는 대응 요청을 서비스하기 위해 또한 수행될 각각의 프로브 요청을 서비스하기 위한 준비들을 수행하고, 그리고
상기 프로브 요청들이 클라이언트에 의해 전송되지 않았다는 표시들에 기초하여, 상기 대응 요청들에 대해 액세스될 프로브 요청 타겟들이 표시하는 어떤 데이터에도 실제로는 액세스 하지 않도록 구성됨 ―;
상기 분산형 저장 시스템으로부터 상기 프로브 요청들에 대한 응답들을 수신하는 것; 및
수신된 응답들에 기반하여 상기 분산형 저장 시스템의 현재 성능 상태를 측정하는 적어도 하나의 성능 메트릭 값을 출력하는 것을 포함하는,
비일시적인 컴퓨터-판독 가능 매체. - 제13 항에 있어서,
상기 프로브 요청들을 생성하는 것은 식별된 요청들의 수보다 더 적은 수의 프로브 요청들을 생성하는 것을 포함하는,
비일시적인 컴퓨터-판독 가능 매체. - 제13 항 또는 제14 항에 있어서,
상기 요청 파라미터들은 요청 타입, 동시성 파라미터들, 및 상기 요청과 관련된, 상기 분산형 저장 시스템 내의 데이터를 표시하는 요청 타겟을 포함하는,
비일시적인 컴퓨터-판독 가능 매체. - 제15 항에 있어서,
상기 프로브 요청들을 생성하는 것은, 특정 요청 타입, 특정 동시성 파라미터들, 및 특정 요청 타겟을 포함하는 다수의 프로브 요청들을 생성하는 것을 포함하고, 상기 특정 요청 타겟은 상기 특정 요청 타입, 상기 특정 동시성 파라미터들 및 상기 특정 요청 타겟을 포함하는 식별된 요청들의 수에 비례하는,
비일시적인 컴퓨터-판독 가능 매체. - 삭제
- 삭제
- 삭제
- 분산형 저장 시스템의 성능 메트릭들을 측정하기 위한 시스템으로서,
데이터를 저장하기 위한 메모리; 및
상기 메모리에 액세스하고, 동작들을 수행하도록 동작 가능한 하나 또는 그 초과의 프로세서들을 포함하고, 상기 동작들은:
클라이언트들에 의해 상기 분산형 저장 시스템으로 전송되는 요청들을 식별하는 것 ― 각각의 요청은 요청 타겟을 포함하는 요청 파라미터들에 대한 요청 파라미터 값들을 포함함 ―;
식별된 요청들에 기반하여 프로브 요청들을 생성하는 것 ― 상기 프로브 요청들은, 상기 식별된 요청들에 포함되는 요청 파라미터들의 통계적 샘플을 나타내는, 프로브 요청 타겟을 포함하는 프로브 요청 파라미터에 대한 프로브 요청 파라미터 값들을 포함함 ― ;
상기 프로브 요청들이 클라이언트에 의해 전송되지 않았다는 표시를 갖는 생성된 프로브 요청들을 네트워크를 통해 상기 분산형 저장 시스템으로 전송하는 것 ― 상기 분산형 저장 시스템은:
상기 클라이언트들로부터의 상기 요청들 중 적어도 일부를 서비스하는 동안 그리고 상기 프로브 요청들을 수신하는 것에 대한 응답으로, 요청 타겟으로서 상기 프로브 요청 타겟을 포함하며 클라이언트로부터 수신되는 대응 요청을 서비스하기 위해 또한 수행될 각각의 프로브 요청을 서비스하기 위한 준비들을 수행하고, 그리고
상기 프로브 요청들이 클라이언트에 의해 전송되지 않았다는 표시들에 기초하여, 상기 대응 요청들에 대해 액세스될 프로브 요청 타겟들이 표시하는 어떤 데이터에도 실제로는 액세스 하지 않도록 구성됨 ―;
상기 분산형 저장 시스템으로부터 상기 프로브 요청들에 대한 응답들을 수신하는 것; 및
수신된 응답들에 기반하여 상기 분산형 저장 시스템의 현재 성능 상태를 측정하는 적어도 하나의 성능 메트릭 값을 출력하는 것을 포함하는,
분산형 저장 시스템의 성능 메트릭들을 측정하기 위한 시스템. - 제1 항에 있어서,
요청 타겟으로서 상기 프로브 요청 타겟을 포함하며 클라이언트로부터 수신되는 대응 요청을 서비스하기 위해 또한 수행될 각각의 프로브 요청을 서비스하기 위한 준비들을 수행하는 것은:
상기 분산형 저장 시스템에 의해 상기 프로브 요청을 파싱(parsing)하는 것;
상기 분산된 저장 시스템에 의해, 상기 프로브 요청에 대응하는 상기 데이터를 저장하는 특정 서버를 결정하는 것;
상기 분산된 저장 시스템에 의해, 상기 프로브 요청을 상기 특정 서버로 전송하는 것; 및
상기 분산된 저장 시스템에 의해, 상기 프로브 요청에 대한 실행 계획을 생성하는 것
을 수행하는 것을 포함하는,
컴퓨터-구현 방법. - 제1 항에 있어서,
상기 분산형 저장 시스템으로부터 상기 프로브 요청들에 대한 응답들을 수신하는 단계는:
클라이언트로부터, 상기 요청 타겟들로서 상기 프로브 요청 타겟들을 포함하는 상기 대응 요청들을 수신하기 위해 상기 분산형 저장 시스템과 다른 상기 프로브 요청들에 대한 응답들을 수신하는 단계
를 포함하는,
컴퓨터-구현 방법. - 제1 항에 있어서,
요청 타겟으로서 상기 프로브 요청 타겟을 포함하며 클라이언트로부터 수신되는 대응 요청을 서비스하기 위해 또한 수행될 각각의 프로브 요청을 서비스하기 위한 준비들을 수행하는 것은:
각각의 프로브 요청에 대해, 상기 요청 타겟으로서 상기 프로브 요청 타겟을 포함하며 그리고 상기 클라이언트로부터 수신되는 상기 대응 요청에 대해 액세스될 상기 데이터를 로킹하는 것 대신 상기 프로브 요청에 대응하는 프로브 특정 데이터를 로킹하는 것을 포함하는,
컴퓨터-구현 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562255316P | 2015-11-13 | 2015-11-13 | |
US62/255,316 | 2015-11-13 | ||
PCT/US2016/053933 WO2017083022A1 (en) | 2015-11-13 | 2016-09-27 | Performance monitoring in a distributed storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180030168A KR20180030168A (ko) | 2018-03-21 |
KR102110757B1 true KR102110757B1 (ko) | 2020-06-08 |
Family
ID=57113778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187004527A KR102110757B1 (ko) | 2015-11-13 | 2016-09-27 | 분산형 저장 시스템의 성능 모니터링 |
Country Status (9)
Country | Link |
---|---|
US (3) | US10686686B2 (ko) |
EP (2) | EP3968159A1 (ko) |
JP (1) | JP6526907B2 (ko) |
KR (1) | KR102110757B1 (ko) |
CN (2) | CN107924337B (ko) |
AU (1) | AU2016351383B2 (ko) |
DE (2) | DE202016008054U1 (ko) |
GB (1) | GB2556772B (ko) |
WO (1) | WO2017083022A1 (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542725B (zh) * | 2018-11-15 | 2022-04-05 | 北京金山云网络技术有限公司 | 一种分布式***的服务质量监控方法、装置及监控服务器 |
CN110618889A (zh) * | 2019-08-14 | 2019-12-27 | 网联清算有限公司 | 服务可用性的探测方法、装置、计算机设备和存储介质 |
CN110990183B (zh) * | 2019-12-04 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 数据库集群的异常检测方法、装置、计算机可读存储介质 |
CN111290907A (zh) * | 2020-01-14 | 2020-06-16 | 深圳市网心科技有限公司 | 分布式存储网络压测方法及装置、计算机装置及存储介质 |
CN111258870A (zh) * | 2020-01-17 | 2020-06-09 | 中国建设银行股份有限公司 | 分布式存储***的性能分析方法、装置、设备及存储介质 |
US11570182B1 (en) * | 2020-03-30 | 2023-01-31 | Amazon Technologies, Inc. | Compute-less authorization |
CN111600929B (zh) * | 2020-04-07 | 2023-05-19 | 厦门网宿有限公司 | 传输线路探测方法、路由策略生成方法及代理服务器 |
US11695851B2 (en) * | 2020-06-03 | 2023-07-04 | Micron Technology, Inc. | Gateway for vehicle with caching buffer for distributed storage system |
CN111708677B (zh) * | 2020-06-19 | 2023-07-07 | 浪潮云信息技术股份公司 | 一种云计算环境下的云硬盘使用量采集方法 |
CN112559271B (zh) * | 2020-12-24 | 2023-10-20 | 北京百度网讯科技有限公司 | 分布式应用的接口性能监测方法、装置、设备及存储介质 |
CN113138903B (zh) * | 2021-04-28 | 2024-05-28 | 北京百度网讯科技有限公司 | 用于跟踪存储***的性能的方法和设备 |
CN113608974B (zh) * | 2021-06-29 | 2023-12-22 | 济南浪潮数据技术有限公司 | 一种分布式存储***的性能压测方法、***及相关组件 |
US11768665B2 (en) * | 2021-11-18 | 2023-09-26 | Red Hat, Inc. | Generation of service-level objective specifications using java annotation |
CN115373836A (zh) * | 2022-05-09 | 2022-11-22 | 华为技术有限公司 | 计算网络、算力度量方法、调度装置及相关产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000122943A (ja) | 1998-05-11 | 2000-04-28 | Internatl Business Mach Corp <Ibm> | 情報を監視し記録するための方法、装置及びプログラム記憶装置 |
US20050216234A1 (en) * | 2004-03-26 | 2005-09-29 | Glas Edward D | Load test simulator |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19813884B4 (de) * | 1998-03-30 | 2008-05-29 | International Business Machines Corp. | System und Verfahren zur Ermittlung und Darstellung von verbindungsbezogenen Leistungsdaten in Netzwerken |
US6336117B1 (en) * | 1999-04-30 | 2002-01-01 | International Business Machines Corporation | Content-indexing search system and method providing search results consistent with content filtering and blocking policies implemented in a blocking engine |
US6981180B1 (en) * | 2000-03-16 | 2005-12-27 | Akamai Technologies, Inc. | Method and apparatus for testing request-response service using live connection traffic |
IL157501A0 (en) * | 2001-02-20 | 2004-03-28 | Associates International Inc C | System and method for monitoring service provider achievements |
US7640342B1 (en) * | 2002-09-27 | 2009-12-29 | Emc Corporation | System and method for determining configuration of one or more data storage systems |
US7257515B2 (en) * | 2004-03-03 | 2007-08-14 | Hewlett-Packard Development Company, L.P. | Sliding window for alert generation |
JP2008250719A (ja) * | 2007-03-30 | 2008-10-16 | Toshiba Corp | 情報処理装置 |
CN101782868A (zh) * | 2009-01-21 | 2010-07-21 | 国际商业机器公司 | 一种用于对本地方法调用进行性能测试的方法和装置 |
US8019862B2 (en) * | 2009-03-17 | 2011-09-13 | Microsoft Corporation | Collaborative speed determination in distributed systems |
JP4883139B2 (ja) * | 2009-05-28 | 2012-02-22 | 富士通株式会社 | 監視システムの性能測定プログラム,監視システムの性能測定方法及び監視システムの性能測定装置 |
CN102331989A (zh) * | 2010-07-12 | 2012-01-25 | 张艳红 | 基于内容排序的图像、视频搜索引擎 |
US9323561B2 (en) | 2010-08-13 | 2016-04-26 | International Business Machines Corporation | Calibrating cloud computing environments |
US8489812B2 (en) | 2010-10-29 | 2013-07-16 | International Business Machines Corporation | Automated storage provisioning within a clustered computing environment |
WO2012078316A1 (en) * | 2010-12-09 | 2012-06-14 | Northwestern University | Endpoint web monitoring system and method for measuring popularity of a service or application on a web server |
US8762113B2 (en) * | 2011-06-03 | 2014-06-24 | Sony Computer Entertainment America Llc | Method and apparatus for load testing online server systems |
US20140187519A1 (en) * | 2012-12-27 | 2014-07-03 | The Board Of Trustees Of The Leland Stanford Junior University | Biomarkers for predicting major adverse events |
EP2843537B1 (en) * | 2013-08-30 | 2019-03-27 | Fujitsu Limited | Method and systems for simulating a workload of a storage system |
US9203803B2 (en) * | 2013-11-14 | 2015-12-01 | Broadcom Corporation | Proxy device for a network of devices |
CN104754021B (zh) * | 2013-12-31 | 2018-04-13 | 伊姆西公司 | 用于促进对分布式存储***中的数据的访问的装置和方法 |
US9854053B1 (en) * | 2014-03-24 | 2017-12-26 | Amazon Technologies, Inc. | Providing faster data access using multiple caching servers |
US20150276795A1 (en) * | 2014-04-01 | 2015-10-01 | Chipworks Incorporated | Atomic force microscopy using correlated probe oscillation and probe-sample bias voltage |
US9906425B2 (en) * | 2014-07-23 | 2018-02-27 | Cisco Technology, Inc. | Selective and dynamic application-centric network measurement infrastructure |
CN104717107B (zh) * | 2015-03-27 | 2019-03-26 | 北京奇安信科技有限公司 | 网络设备探测的方法、装置及*** |
-
2016
- 2016-09-27 WO PCT/US2016/053933 patent/WO2017083022A1/en active Application Filing
- 2016-09-27 KR KR1020187004527A patent/KR102110757B1/ko active IP Right Grant
- 2016-09-27 GB GB1802304.4A patent/GB2556772B/en active Active
- 2016-09-27 DE DE202016008054.8U patent/DE202016008054U1/de active Active
- 2016-09-27 EP EP21199972.7A patent/EP3968159A1/en active Pending
- 2016-09-27 CN CN201680047730.4A patent/CN107924337B/zh active Active
- 2016-09-27 DE DE112016005207.3T patent/DE112016005207T5/de active Pending
- 2016-09-27 CN CN202111304498.7A patent/CN114217948A/zh active Pending
- 2016-09-27 AU AU2016351383A patent/AU2016351383B2/en active Active
- 2016-09-27 JP JP2018507533A patent/JP6526907B2/ja active Active
- 2016-09-27 EP EP16778619.3A patent/EP3374864B1/en active Active
- 2016-11-10 US US15/348,181 patent/US10686686B2/en active Active
-
2020
- 2020-06-15 US US16/902,228 patent/US11582130B2/en active Active
-
2023
- 2023-02-07 US US18/165,578 patent/US20230188452A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000122943A (ja) | 1998-05-11 | 2000-04-28 | Internatl Business Mach Corp <Ibm> | 情報を監視し記録するための方法、装置及びプログラム記憶装置 |
US20050216234A1 (en) * | 2004-03-26 | 2005-09-29 | Glas Edward D | Load test simulator |
Also Published As
Publication number | Publication date |
---|---|
AU2016351383A1 (en) | 2018-03-08 |
DE202016008054U1 (de) | 2017-02-16 |
US20200382403A1 (en) | 2020-12-03 |
CN107924337B (zh) | 2021-11-12 |
DE112016005207T5 (de) | 2018-08-16 |
JP6526907B2 (ja) | 2019-06-05 |
CN114217948A (zh) | 2022-03-22 |
JP2018533779A (ja) | 2018-11-15 |
KR20180030168A (ko) | 2018-03-21 |
US11582130B2 (en) | 2023-02-14 |
US20170141992A1 (en) | 2017-05-18 |
GB201802304D0 (en) | 2018-03-28 |
EP3374864B1 (en) | 2021-11-03 |
CN107924337A (zh) | 2018-04-17 |
WO2017083022A1 (en) | 2017-05-18 |
EP3968159A1 (en) | 2022-03-16 |
EP3374864A1 (en) | 2018-09-19 |
US20230188452A1 (en) | 2023-06-15 |
AU2016351383B2 (en) | 2019-06-06 |
GB2556772A (en) | 2018-06-06 |
GB2556772B (en) | 2021-10-06 |
US10686686B2 (en) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102110757B1 (ko) | 분산형 저장 시스템의 성능 모니터링 | |
US9043317B2 (en) | System and method for event-driven prioritization | |
CN106462486B (zh) | 使用可操作洞察的用户体验诊断 | |
US9736272B2 (en) | Generation and distribution of named, definable, serialized tokens | |
US11057280B2 (en) | User interface with expected response times of commands | |
US20180005152A1 (en) | Technologies for correlation based data selection | |
US20160094392A1 (en) | Evaluating Configuration Changes Based on Aggregate Activity Level | |
US9565079B1 (en) | Holographic statistics reporting | |
US11822420B2 (en) | Artificial intelligence model monitoring and ranking | |
US10778802B2 (en) | Mobile device identification | |
KR102543838B1 (ko) | 정보 획득 방법 및 장치 | |
KR20210023795A (ko) | 대규모 데이터 분석 최적화 | |
US20170318439A1 (en) | Message delivery reliability | |
US20150006918A1 (en) | Method and system for monitoring resource usage of logical domains | |
CN110633182A (zh) | 用于监控服务器稳定性的***、方法和装置 | |
US12032986B2 (en) | Automated training environment selection | |
US11277310B2 (en) | Systemic adaptive data management in an internet of things environment | |
US20230113287A1 (en) | Techniques for determining cross-validation parameters for time series forecasting | |
CN115941613A (zh) | 节点限流方法、装置、设备、介质和程序产品 | |
US20180204223A1 (en) | Determining audience interest levels during presentations based on user device activity | |
CN117319392A (zh) | 边缘云切换方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |