KR20140130217A - 데이터베이스 마이그레이션 소스를 위한 머신 학습 - Google Patents

데이터베이스 마이그레이션 소스를 위한 머신 학습 Download PDF

Info

Publication number
KR20140130217A
KR20140130217A KR1020147027254A KR20147027254A KR20140130217A KR 20140130217 A KR20140130217 A KR 20140130217A KR 1020147027254 A KR1020147027254 A KR 1020147027254A KR 20147027254 A KR20147027254 A KR 20147027254A KR 20140130217 A KR20140130217 A KR 20140130217A
Authority
KR
South Korea
Prior art keywords
data store
new
datastore
original
key value
Prior art date
Application number
KR1020147027254A
Other languages
English (en)
Other versions
KR101617987B1 (ko
Inventor
준웨이 카오
웨이 천
Original Assignee
엠파이어 테크놀로지 디벨롭먼트 엘엘씨
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 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 filed Critical 엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Publication of KR20140130217A publication Critical patent/KR20140130217A/ko
Application granted granted Critical
Publication of KR101617987B1 publication Critical patent/KR101617987B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/1097Protocols 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)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

머신 학습을 채용하는 상이한 클라우드 기반 서비스 제공자들 사이에서 마이그레이션되어 있는 데이터베이스의 성능 레벨을 유지관리하는 기술들이 대체로 제공된다. 일부 예들에서, 원래의 데이터 스토어/데이터베이스에 제출된 데이터 요청들은 레코딩 및 분석을 위한 머신 학습 기반 필터에 제출될 수도 있다. 필터 분석들 및 데이터 요청들의 결과들에 기초하여, 새로운 데이터 스토어/데이터베이스를 위한 새로운 키 값 구조들이 만들어질 수도 있다. 그 필터는 성능 스코어들을 (원래의 데이터 스토어에 대해 만들어진) 원래의 데이터 요청들 및 새로 생성된 키 값 구조들에 대해 만들어진 데이터 요청들에 할당할 수도 있다. 그러면 필터는 생성된 키 값 구조들과 연관된 성능 스코어들을 서로 그리고 원래의 데이터 요청들과 연관된 성능 스코어들과 비교할 수도 있고, 원래의 데이터 요청들의 성능 스코어들과는 적어도 실질적으로 동일한 성능 스코어들을 갖는 생성된 키 값 구조들을 새로운 데이터 스토어를 위해 선택할 수도 있다.

Description

데이터베이스 마이그레이션 소스를 위한 머신 학습{MACHINE LEARNING FOR DATABASE MIGRATION SOURCE}
본 명세서에서 달리 지시되지 않는 한, 이 섹션에 기재된 내용들은 본 출원에 대한 선행 기술이 아니고, 이 섹션에 포함되었다고 선행기술이라고 인정된 것은 아니다.
네트워킹 및 데이터 저장 기술들의 진보로, 점점 더 많은 수의 컴퓨팅 서비스들이 다양한 레벨들에서 컴퓨팅 리소스들에 대한 액세스를 가능하게 할 수 있는 클라우드 기반 데이터센터들에 의해 사용자들 또는 고객들에 제공되고 있다. 클라우드 기반 서비스 제공자들은 시스템들의 구축 및 운영을 위한 솔루션들의 범위를 개인들 및 조직들에 제공할 수도 있다. 고객 요구, 데이터센터 능력들, 및 연관된 비용에 의존하여, 고객들에 제공되는 서비스들은, 서버 레이턴시, 저장 한계들 또는 한도들, 프로세싱 능력, 확장성 팩터들, 백업 보장, 가동시간 (uptime) 보장, 리소스 사용 보고, 및 유사한 것들과 같은 양태들을 기술하는 서비스 수준 협약서 (Service Level Agreement; SLA) 들에 의해 정의될 수도 있다.
클라우드 기반 서비스들의 성공은 점점 더 많은 애플리케이션들 및 데이터베이스들이 클라우드로 이동되고 있다는 것을 의미한다. 고객들 (또는 테넌트들) 은 성능, 단가, 신뢰도, 및 유사한 것들과 같은 서비스 파라미터들을 유지하면서도 애플리케이션들 및 데이터베이스들을 하나의 서비스 제공자로부터 다른 서비스 제공자로 이동시키는 선택사항을 가지는 것을 보통 선호한다. 서비스 제공자들은 애플리케이션의 성능 및 서비스 레벨을 유지하면서도 애플리케이션 또는 데이터베이스를 하나의 사이트로부터 다른 사이트로 이동시키는 선택사항을 가지는 것을 선호할 수도 있다.
데이터베이스들이 상이한 서비스 제공자들 사이에서 이동되는 경우, 데이터베이스 성능은 반드시 유지되지 않을 수도 있다. 더욱이, 특정 데이터베이스의 데이터 구조들은 서비스 제공자들 간에 쉽게 이전가능한 것이 아닐 수도 있고, 새로운 서비스 제공자를 위해 데이터베이스를 재설계하는 것은 리소스 손실이 크다.
본 개시물은 동등한 또는 상이한 리소스 믹스들을 갖는 클라우드 서비스들 사이에서의 이전 (transfer) 시 클라우드 서버가 데이터베이스 성능들을 유지관리하는 것을 가능하게 하는 기술들을 대체로 기술한다.
일부 예들에 따르면, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법은, 소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하는 것, 그 데이터 요청들을 레코딩 및 분석을 위한 필터에 제출하는 것, 및 머신 학습을 채용하는 필터에 의한 분석들 및 원래의 데이터 스토어에 대한 요청들의 결과들에 기초하여 타겟 데이터센터에서의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성하는 것을 포함할 수도 있다.
다른 예들에 따르면, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 컴퓨팅 디바이스는, 명령들을 저장하도록 구성된 메모리와 그 명령들과 연계하여 마이그레이션 모듈을 실행하도록 구성된 프로세싱 유닛을 포함할 수도 있다. 마이그레이션 모듈은, 소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하며, 그 데이터 요청들을 레코딩 및 분석을 위한 필터에 제출하고, 머신 학습을 채용하는 필터에 의한 분석들 및 원래의 데이터 스토어에 대한 요청들의 결과들에 기초하여 타겟 데이터센터의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성할 수도 있다.
추가의 예들에 따르면, 컴퓨터 판독가능 저장 매체는 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하기 위한 명령들을 저장하고 있을 수도 있다. 그 명령들은, 소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하는 것, 그 데이터 요청들을 레코딩 및 분석을 위한 필터에 제출하는 것, 머신 학습을 채용하는 필터에 의한 분석들 및 원래의 데이터 스토어에 대한 요청들의 결과들에 기초하여 타겟 데이터센터의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성하는 것을 포함할 수도 있다.
전술한 개요는 단지 예시적인 것이고 어떠한 방식으로든 제한하는 것으로 의도되지 않았다. 위에서 설명된 예시적인 양태들, 실시형태들, 및 특징들 외에도, 추가의 양태들, 실시형태들, 및 특징들이 도면들 및 다음의 상세한 설명을 참조하여 명확하게 될 것이다.
본 개시물의 전술한 및 다른 특징들은 첨부 도면들을 참조하여 취해진 다음의 설명 및 첨부의 청구항들로부터 더욱 완전히 명확하게 될 것이다. 이들 도면들이 본 개시물을 따르는 여러 실시형태들을 묘사하고, 그러므로, 그것의 범위를 제한하는 것으로 간주되지 않는다고 이해한 후에, 본 개시물은 부가적인 특수성 및 상세함을 가지고서 다음의 첨부 도면들의 사용을 통해 설명될 것이다:
도 1은 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들의 유지관리가 구현될 수도 있는 예의 시스템을 도시한다;
도 2는 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리함에 있어서 소스 데이터센터 및 타겟 데이터센터의 주요 컴포넌트들 사이의 예의 상호작용들을 도시한다;
도 3은 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 시스템에서의 일 예의 원래의 데이터베이스를 도시한다;
도 4는 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 시스템에서 키 값 스토어를 재구축함에 있어서 예의 데이터 및 유형들의 세트를 도시한다;
도 5는 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 데 사용될 수도 있는 범용 컴퓨팅 디바이스를 도시한다;
도 6은 도 5의 디바이스와 같은 컴퓨팅 디바이스에 의해 수행될 수도 있는 일 예의 방법을 도시하는 흐름도이다; 그리고
도 7은 본원에서 설명되는 적어도 몇몇의 실시형태들에 따라 모두가 배열되는 일 예의 컴퓨터 프로그램 제품의 블록도를 도시한다.
다음의 상세한 설명에서, 본원의 부분을 형성하는 첨부 도면들이 참조된다. 도면들에서, 일반적으로 유사한 기호들은 문맥에서 달리 지시되지 않는 한 보통 유사한 컴포넌트들을 식별한다. 상세한 설명, 도면들, 및 청구항들에서 설명되는 예시적인 실시형태들은 제한하는 의미는 아니다. 본원에서 제시된 요지의 정신 또는 범위로부터 벗어나는 일 없이, 다른 실시형태들이 활용될 수도 있고, 다른 변경들이 만들어질 수도 있다. 본 개시물에서 대체로 설명되고 도면들에서 예시된 본 개시물의 양태들은, 모두가 본 개시물에서 명시적으로 의도된 매우 다양한 상이한 구성들로 배열, 치환, 조합, 분리 및 설계될 수 있다는 것이 쉽사리 이해될 것이다.
본 개시물은 키 값 저장 성능들에 기초하여 데이터센터들 사이에서의 마이그레이션에서 머신 학습을 채용하는 것에 관련된, 특히, 방법들, 장치, 시스템들, 디바이스들, 및/또는 컴퓨터 프로그램 제품들을 대체로 겨낭하고 있다.
간략히 언급하면, 머신 학습을 채용하는 상이한 클라우드 기반 서비스 제공자들 사이에서 마이그레이션되어 있는 데이터베이스의 성능 레벨을 유지관리하는 기술들이 일반적으로 제공된다. 원래의 데이터 스토어/데이터베이스에 제출된 데이터 요청들은 레코딩 및 분석을 위해 머신 학습 기반 필터에 제출될 수도 있다. 필터 분석들 및 데이터 요청들의 결과들에 기초하여, 새로운 데이터 스토어/데이터베이스를 위한 새로운 키 값 구조들이 만들어질 수도 있다. 그 필터는 (원래의 데이터 스토어에 대해 만들어진) 원래의 데이터 요청들 및 새로 생성된 키 값 구조들에 대해 만들어진 데이터 요청들에 대해 성능 스코어들을 할당할 수도 있다. 그러면 필터는 생성된 키 값 구조들과 연관된 성능 스코어들을 서로 그리고 원래의 데이터 요청들과 연관된 성능 스코어들과 비교할 수도 있고, 원래의 데이터 요청들의 성능 스코어들과는 적어도 실질적으로 동일한 성능 스코어들을 갖는 생성된 키 값 구조들을 새로운 데이터 스토어를 위해 선택할 수도 있다.
도 1은, 본원에서 설명되는 적어도 일부 실시형태들에 따라 배열된, 클라우드 컴퓨팅 환경들 사이에서의 이전 시의 데이터 스토어 성능들의 유지관리가 구현될 수도 있는 예의 시스템을 도시한다.
도면 100에서 도시된 바와 같이, 서비스 제공자 (102) (클라우드 1) 는 다양한 애플리케이션들, 데이터 저장, 데이터 프로세싱, 또는 필적하는 것들과 같은 서비스들을 개인 또는 기업 고객들 (108 및 109) 을 위해 호스팅할 수도 있다. 서비스 제공자 (102) 는 서비스들을 제공하는 하나 이상의 데이터센터들을 포함하고, 하나 이상의 서버들 (104) 및/또는 방화벽들, 라우터들 등과 같은 하나 이상의 특수 목적 디바이스들 (106) 을 채용할 수도 있다. 서비스들을 자신의 고객들에 제공하기 위해, 서비스 제공자 (102) 는 다수의 서버들, 특수 목적 디바이스들, 물리적 또는 가상 데이터 스토어들 등을 채용할 수도 있다. 따라서, 고객을 위해 서비스 제공자 (102) 에 의해 호스팅되는 애플리케이션 또는 그 서비스 제공자에 의해 저장되는 데이터는 하드웨어 및 소프트웨어 컴포넌트들의 복잡한 아키텍처를 수반할 수도 있다. 고객 (호스팅된 애플리케이션 또는 데이터의 소유자) 에게 제공된 서비스 레벨은 서비스 제공자 (102) 에 의해 특정 방도로 구현될 수도 있는 서버 프로세싱, 메모리, 및 네트워킹과 같은 다수의 서비스 파라미터들에 기초하여 결정될 수도 있다.
클라우드 기반 서비스 제공자들은 이종 (disparate) 아키텍처들을 가질 수 있고 유사하지만 별개의 파라미터들을 갖는 서비스들을 제공할 수도 있다. 예를 들어, 데이터 저장 용량, 프로세싱 용량, 서버 레이턴시, 및 유사한 양태들은 클라우드마다 상이할 수도 있다. 하나의 클라우드로부터 다른 클라우드로 데이터베이스를 마이그레이션하는 경우, 마이그레이션된 데이터베이스의 성능을 유지관리하거나 또는 개선하는 것이 바람직할 수도 있다. 이는 일부 예의 실시형태들에 따른 원래의 데이터베이스에 기초하여 키 값 구조들을 구축하고 스코어링기 위한 학습 알고리즘들을 사용함으로써 달성될 수도 있다.
도면 100에서, 마이그레이션 프로세스에서 서비스 제공자 (102) (클라우드 1) 는 소스 클라우드일 수도 있고 서비스 제공자 (112) (클라우드 2) 는 타겟 클라우드일 수도 있다. 서비스 제공자 (102) 와 유사하게, 서비스 제공자 (112) 는 자신의 서비스들을 제공하기 위해 하나 이상의 서버들 (114) 및 하나 이상의 특수 목적 디바이스들 (116) 을 또한 채용할 수도 있다. 데이터베이스 성능 레벨 결정 및 스코어링은 서비스 제공자 (102) 의 서버들 (104) 중 하나, 서비스 제공자 (112) 의 서버들 (114) 중 하나에 의해, 또는 다른 클라우드 (110) 의 하나 이상의 서버들 (118) 상에서 실행되는 서드 파티 서비스에 의해 관리되고 수행될 수도 있다.
도 2는, 본원에서 설명되는 적어도 일부 실시형태들에 따라 배열된, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리함에 있어서 소스 데이터센터 및 타겟 데이터센터의 주요 컴포넌트들 사이의 예의 상호작용들을 도시한다.
앞서 설명된 바와 같이, 클라우드 컴퓨팅 환경들 사이에서 (예컨대, 소스 데이터센터로부터 타겟 데이터센터로) 데이터베이스를 마이그레이션하는 경우, 마이그레이션된 데이터베이스의 성능 유지관리 또는 개선하는 것이 바람직할 수도 있다. 이는 머신 학습을 사용하여 소스 데이터센터에서의 원래의 데이터베이스로부터 새로운 키 값 구조들을 구축함으로써 달성될 수도 있다.
도면 200에서 도시된 바와 같이, 소스 데이터센터는 원래의 데이터베이스 (222) 를 포함할 수도 있고 타겟 데이터센터는 새로운 데이터베이스 (230) 를 포함할 수도 있다. 원래의 (즉, 데이터베이스 마이그레이션 이전의) 운영 프로세스에서, 데이터 요청 (220) 이 원래의 데이터베이스 (222) 에 대해 만들어질 수도 있으며, 그 원래의 데이터베이스는 그 결과로 사용자 데이터 (224) 의 반환을 할 수도 있다. 일부 예들에서, 데이터 요청 (220) 은 한 유형 (예컨대, 관계형 데이터베이스에 대한 쿼리, 기록, 및/또는 트랜잭션), 타겟 테이블 (또는 관계), 하나 이상의 열들 (또는 속성들), 하나 이상의 비교 연산들, 및/또는 임의의 다른 적합한 정보를 포함할 수도 있다. 예를 들면, 원래의 데이터베이스 (222) 에 대한 일 예 데이터 요청은 다음과 같을 수도 있으며:
[1] Select post_title from table2 where AuthorID = Abcd1 and time>XXX,
그것은 다음과 같이 추상화될 수도 있다:
[2] Read {table2},{post title, AuthorID, time},{get, = >}.
데이터 요청 [1]은 원래의 데이터베이스 (222) 로 하여금, 사용자 데이터 (224) 로서, table2에서 Post_Title 속성뿐만 아니라 AuthorID 속성 및 Time 속성을 갖는 행들로부터 포스트 타이틀 속성의 값들을 반환하도록 할 수도 있으며, 여기서 AuthorID 속성은 "Abcd1"에 일치하고 Time 속성은 시간 XXX보다 크다.
원래의 데이터베이스 (222) 가 타겟 데이터센터와 연관된 새로운 데이터베이스 (230) 로 마이그레이션되는 경우, 원래의 데이터베이스 (222) 와 연관된 속성 또는 열 정보는 그것들의 데이터 유형들을 결정하기 위해 먼저 원래의 데이터베이스 (222) 로부터 추출되고 분석될 수도 있다. 원래의 데이터베이스 (222) 로 전송된 임의의 데이터 요청들 (예컨대, 데이터 요청 (220)) 은 또한 필터 (228) 로 전송될 수도 있다. 필터 (228) 는 기간에 걸쳐 데이터 요청들을 레코딩할 수도 있고, 데이터 요청들에 포함된 정보 (예컨대, 유형, 타겟 테이블, 열들, 비교 연산들, 및/또는 다른 적합한 정보) 의 아이덴티티를 결정하기 위해 그것들을 분석할 수도 있다. 예를 들어, 위에서 설명된 데이터 요청 [1]은, 테이블 2를 타겟 테이블로서, Post - Title, AuthorID, 및 time을 열들로서, 그리고 = (equal)/> (greater than) 을 비교 연산들로서 가지는 쿼리 (또는 판독) 유형 요청이다.
필터 (228) 에 의해 레코딩된 원래의 데이터베이스 (222) 에 대한 데이터 요청들 (예컨대, 데이터 요청 (220)) 은, 훈련 프로세스를 통해 새로운 데이터베이스 (230) 에서 새로운 데이터 구조들을 구축하는 데 사용될 수도 있고, 데이터베이스 (222) 가 그 데이터 요청들에 응답하여 반환하는 사용자 데이터 (예컨대, 사용자 데이터 (224)) 는 새로운 데이터베이스 (230) 에서 결과적인 데이터 구조들을 채우는 데 사용될 수도 있다. 일부 예들에서, 훈련 프로세스는 새로운 데이터베이스 (230) 에 대해 레코딩된 데이터 요청들을 시뮬레이션하거나 또는 반복하는 필터 (228) 에 의해 수행될 수도 있다. 새로운 데이터베이스 (230) 가 필터로부터 데이터 요청 (예컨대, 원래의 데이터 요청 또는 추상화된 버전) 을 수신하는 경우, 그 새로운 데이터베이스는 자신의 구조를 그 데이터 요청을 충족하도록 수정한다. 예를 들어, 새로운 데이터베이스 (230) 가 비어 있고, 새로운 데이터베이스가 다음과 같은 추상화된 요청을 수신하면:
[3] Read {table1}, {AuthorID, time}, {=,>},
새로운 구조가 다음과 같이 만들어질 수도 있다:
[4] make new table1; key->AuthorID, value->time, valuetype->time.
후속하는 추상화된 요청은 다음과 같을 수도 있으며:
[5] Read {table2}, {post title, AuthorID, time}, {get, =, >},
그것은 이전에 생성된 구조로 하여금 다음과 같이 수정되게 할 수도 있다:
[6] modify table1; key->AuthorID, value->{time, post title}, valuetype->struct
[7] modify table1; key->ListNum, value->{AuthorID, time, post title}, valuetype->struct
[8] new table2; key->ListNum, value->{AuthorID, post title}, valuetype->struct
각각의 새로운 데이터 구조는 원래의 데이터베이스에 대한 원래의 데이터 요청(들)을 대체하는 커맨드들의 대응하는 세트를 가질 수도 있다. 이들 커맨드들은, 테스팅 및 성능 평가를 위해, 새로운 데이터 구조들과 함께 레코딩될 수도 있다.
일부 예들에서, 빈 슬레이트 (blank slate) 를 갖는 (즉, 빈 데이터베이스로 시작하는) 새로운 데이터베이스 (230) 를 생성하고 훈련하는 대신, 초기의, 기본 데이터베이스 구조를 새로운 데이터베이스 (230) 에 공급할 수도 있는 개입 (intervention; 232) 이 제공될 수도 있다. 예를 들어, 개입 (232) 은 기본 테이블 구조의 형태를 취할 수도 있다. 일부 예들에서, 개입 (232) 은 하나 이상의 데이터베이스 기술자들 또는 프로그래머들에 의해 제공될 수도 있다.
일단 새로운 데이터베이스 (230) 에서의 하나 이상의 데이터 구조들이, 예컨대, 위에서 설명된 바와 같이 레코딩된 데이터 요청들을 새로운 데이터베이스 (230) 에 제공하는 필터 (228) 에 의해 생성되면, 성능 수집 모듈 (226) 은 생성된 데이터 구조들의 성능을 스코어링할 수도 있다. 성능 수집 모듈 (226) 은 프로세싱 시간, 판독 시간, 기록 시간과 같은 성능의 인덱스들, 또는 임의의 다른 적합한 데이터베이스 성능 인덱스들을 수집할 수도 있고, 일부 예들에서 수집된 인덱스들을 하나 이상의 종합 데이터베이스 성능 스코어들로 결합할 수도 있다. 새로운 데이터베이스 (230) 의 특정 인스턴스화 (instantiation) 를 위한 성능 인덱스들/스코어들 중 적어도 일부가 원래의 데이터베이스 (222) 를 위한 성능 인덱스들/스코어들을 충족 또는 초과하지 못하면, 그 특정 데이터베이스 인스턴스화 및 그것의 데이터 구조들은 폐기될 수도 있다. 새로운 데이터베이스 (230) 의 특정 인스턴스화를 위한 성능 인덱스들/스코어들 중 적어도 일부가 원래의 데이터베이스를 위한 성능 인덱스들/스코어들을 충족 또는 초과하면, 그 특정 인스턴스화 및 그것의 스코어들은 레코딩될 수도 있다. 어느 경우에나, 데이터베이스 생성 프로세스는 반복되어, 결국 새로운 데이터베이스 (230) 의 다수의 잠정적 인스턴스화들을 야기할 수도 있으며 최적의 성능을 제공하는 인스턴스화가 새로운 데이터베이스 (230) 를 위한 최종 구조로서 선택될 수도 있다.
일부 예들에서, 데이터 요청들과 기간에 걸쳐 필터 (228) 에 의해 기록된 연관된 정보는 데이터 요청들에 포함된 정보 (예컨대, 유형, 타겟 테이블, 열들, 비교 연산들, 및/또는 다른 적합한 정보) 중 임의의 것에 대해 하나 이상의 확률 분포들을 제공할 수도 있다. 이 확률 분포 정보는, 위에서 설명된 바와 같이 새로운 데이터베이스 (230) 를 생성 및/또는 훈련하는 데 사용되면, 결국 데이터베이스 성능이 원래의 데이터베이스 (222) 이상이 되게 할 수도 있다.
도 3은 본원에서 설명되는 적어도 일부의 실시형태들에 따라 배열된 일 예의 원래의 데이터베이스 (300) 를 도시한다. 원래의 데이터베이스 (300) 는 도 2의 원래의 데이터베이스 (222) 와 유사할 수도 있다. 일부 예들에서 데이터베이스 (300) 는 관계형 데이터베이스, 이를테면 구조화 질의 언어 (Structured Query Language; SQL) 데이터베이스일 수도 있다.
도 3에 도시된 예에서, 원래의 데이터베이스 (300) 는 다음 3 개의 테이블들 (또는 관계들) 을 포함할 수도 있다: 테이블 1 (340), 테이블 2 (350) 및 테이블 3 (360). 테이블 1 (340) 은 5 개의 속성들, 즉, 사용자ID 속성 (341) (이것은 또한 테이블 1에 대한 키임), 이름 속성 (342), 폰 속성 (343), 포지션 속성 (344), 및 성별 속성 (345) 을 포함할 수도 있다. 테이블 2 (350) 는 5 개의 속성들, 즉, 포스트 번호 속성 (351) (이것은 또한 테이블 2에 대한 키임), 포스트 타이틀 속성 (352), 포스트 내용 속성 (353), 시간 속성 (354), 및 저자ID 속성 (355) (이것은 사용자ID 속성 (341) 에 대응할 수도 있는 외래 키임) 을 또한 포함할 수도 있다. 테이블 3 (360) 은 5 개의 속성들, 즉, LogID 속성 (361), 시간 속성 (362), 누구 (Who) 속성 (363) (이것은 사용자ID 속성 (341) 및/또는 저자ID 속성 (355) 에 대응할 수도 있는 외래 키임), 유형 속성 (364), 및 내용 속성 (365) 을 포함할 수도 있다. 원래의 데이터베이스 (300) 에서, 테이블들의 각각은, 데이터 엔트리를 각각 포함하는 적어도 2 개의 행들 (또는 투플들) 을 포함할 수도 있다. 비록 도 3에 도시된 데이터베이스 (300) 가 5 개의 속성들/열들 및 두 개의 행들을 각각 갖는 3 개의 테이블들을 포함하지만, 데이터베이스 (300) 는 더 많거나 더 적은 테이블들, 속성들/열들, 및/또는 행들을 포함할 수도 있다는 것이 이해되어야 한다.
도 4는, 본원에서 설명되는 적어도 일부 실시형태들에 따라 배열된, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 시스템에서 키 값 스토어를 구축함에 있어서 사용될 수도 있는 도 3에 도시된 데이터베이스 (300) 로부터 추출된 예의 데이터 및 유형들의 세트를 포함하는 테이블 (400) 을 예시한다. 테이블 (400) 의 제 1 열 (472) 에 도시된 바와 같이, 도 3에 도시된 데이터베이스 (300) 는 다수의 속성들을 포함할 수도 있으며, 그 속성들의 각각은 데이터베이스 (300) 에서의 테이블의 속성 또는 열에 대응할 수도 있다. 이들 속성들의 각각 (예컨대, 사용자 ID, 포스트 타이틀, 성별, 포스트번호(Postnum), 저자 ID 등) 은 테이블 (400) 의 제 2 열 (474) 에서 열거될 수도 있는 연관된 데이터 유형을 가질 수도 있다. 예를 들어, 사용자 ID 속성은 문자열의 데이터 유형을 가질 수도 있는 반면, Postnum 속성은 int (또는 정수) 의 데이터 유형을 가질 수도 있다. 각각의 속성은, 테이블 (400) 의 제 3 열 (476) 에 열거될 수도 있는, 그것과 연관된 하나 이상의 특수한 특징들 또는 노트들을 또한 가질 수도 있다. 예를 들어, 속성은 테이블 또는 관계를 위한 외래 키 (예컨대, 저자 ID) 또는 키 (예컨대, 사용자 ID 또는 Postnum) 로서 역할을 할 수도 있다. 다른 예로서, 유형 enum의 속성은 제 3 열 (476) 에 열거된 그것의 잠정적인 값들을 가질 수도 있다 (예컨대, 유형 enum의 속성인 성별은 제 3 열 (476) 에 언급된 바와 같이 남성 또는 여성의 잠정적인 값들을 가질 수도 있다).
테이블 (400) 에서의 정보 (예컨대, 제 1 열 (472) 에 도시된 이름들, 제 2 열 (474) 에 도시된 데이터 유형들, 및 제 3 열 (476) 에 도시된 특수한 특징들/노트들) 는 데이터센터들 또는 클라우드 서비스 제공자들 사이에서 데이터베이스 마이그레이션을 위한 키 값 스토어들을 구축하는 데 사용될 수도 있다. 예를 들어, 타겟 데이터센터/서비스 제공자가 원래의 데이터베이스에서의 하나 이상의 속성들과 연관된 특정한 데이터 유형들을 지원할 수 없으면, 테이블 (400) 은 어떤 속성들이 영향을 받을 수도 있는지를 결정하는 데 사용될 수도 있고, 적절한 대체 유형들이 영향 받은 속성들을 위해 선택될 수도 있다. 다른 예로서, 일부 키-값 스토어들이 추가의 프로세싱 없이는 외래 키 기능성을 제공하지 못할 수도 있으므로, 원래의 데이터베이스가 키-값 스토어 구조들로 마이그레이션되는 경우, 테이블 (400) 은 추가의 프로세싱을 위해 외래 키들의 존재를 결정하는 데 사용될 수도 있다.
도 5는, 본원에서 설명되는 적어도 일부 실시형태들에 따라 배열된, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 애플리케이션 성능들을 유지관리하는 데 사용될 수도 있는 범용 컴퓨팅 디바이스 (500) 를 도시한다. 예를 들어, 컴퓨팅 디바이스 (500) 는 도 1의 서버들 (104, 114, 또는 118) 로서 사용될 수도 있다. 일 예의 기본 구성 (502) 에서, 컴퓨팅 디바이스 (500) 는 하나 이상의 프로세서들 (504) 및 시스템 메모리 (506) 를 구비할 수도 있다. 메모리 버스 (508) 가 프로세서 (504) 및 시스템 메모리 (506) 사이에서 통신하기 위해 사용될 수도 있다. 기본 구성 (502) 은 도 5에서 안쪽 쇄선 내에 있는 그들 컴포넌트들에 의해 도시된다.
소망의 구성에 의존하여, 프로세서 (504) 는 마이크로프로세서 (μP), 마이크로제어기 (μC), 디지털 신호 프로세서 (DSP), 또는 그것들의 임의의 조합을 포함하지만 이것들로 한정되지는 않는 임의의 유형일 수도 있다. 프로세서 (504) 는 하나 이상의 캐싱 레벨들, 이를테면 레벨 캐시 메모리 (512), 프로세서 코어 (514), 및 레지스터들 (516) 을 포함할 수도 있다. 예의 프로세서 코어 (514) 는 산술 논리 연산 유닛 (ALU), 부동 소수점 유닛 (FPU), 디지털 신호 처리 코어 (DSP 코어), 또는 그것들의 임의의 조합을 포함할 수도 있다. 일 예의 메모리 제어기 (518) 는 또한 프로세서 (504) 와 함께 사용될 수도 있거나, 또는 일부 구현예들에서 메모리 제어기 (518) 는 프로세서 (504) 의 내부의 부분일 수도 있다.
소망의 구성에 의존하여, 시스템 메모리 (506) 는 휘발성 메모리 (이를테면 RAM), 비휘발성 메모리 (이를테면 ROM, 플래시 메모리 등) 또는 그것들의 임의의 조합을 포함하지만 그것들로 한정되지는 않는 임의의 유형일 수도 있다. 시스템 메모리 (506) 는 운영 체제 (520), 하나 이상의 애플리케이션들 (522), 및 프로그램 데이터 (524) 를 포함할 수도 있다. 애플리케이션들 (522) 은, 본원에서 설명된 바와 같은 키 값 스토어 성능들에 기초하여 데이터센터들 사이에서의 마이그레이션들을 위해 머신 학습을 채용할 수도 있는 마이그레이션 모듈 (526) 을 포함하는 클라우드 관리 애플리케이션을 포함할 수도 있다. 프로그램 데이터 (524) 는, 본원에서 설명된 바와 같이, 많은 다른 데이터 가운데, 성능 데이터 (528) 등을 포함할 수도 있다.
컴퓨팅 디바이스 (500) 는 기본 구성 (502) 과 임의의 소망의 디바이스들 및 인터페이스들 사이의 통신들을 용이하도록 하기 위해 부가적인 특징들 또는 기능성, 및 부가적인 인터페이스들을 가질 수도 있다. 예를 들어, 기본 구성 (502) 및 하나 이상의 데이터 저장 디바이스들 (532) 사이에서의 저장 인터페이스 버스 (534) 를 통한 통신들을 용이하도록 하기 위해 버스/인터페이스 제어기 (530) 가 사용될 수도 있다. 데이터 저장 디바이스들 (532) 은 하나 이상의 착탈식 스토리지 디바이스들 (536), 하나 이상의 비착탈식 스토리지 디바이스들 (538), 또는 그것들의 조합일 수도 있다. 착탈식 스토리지 및 비착탈식 스토리지 디바이스들의 예들은 몇몇 이름을 대자면 자기적 디스크 디바이스들 이를테면 가요성 디스크 드라이브들 및 하드 디스크 드라이브들 (HDD), 광 디스크 드라이브들 이를테면 콤팩트 디스크 (CD) 드라이브들 또는 디지털 다기능 디스크 (DVD) 드라이브들, 솔리드 스테이트 드라이브들 (SSD), 및 테이프 드라이브들을 포함한다. 예의 컴퓨터 저장 매체들은, 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성의, 착탈식 및 비착탈식 매체들을 포함할 수도 있다.
시스템 메모리 (506), 착탈식 스토리지 디바이스들 (536) 및 비착탈식 스토리지 디바이스들 (538) 은 컴퓨터 저장 매체들의 예들이다. 컴퓨터 저장 매체들은, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크들 (DVD), 솔리드 스테이트 드라이브들, 또는 다른 광학적 스토리지, 자기 카세트들, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스들, 또는 소망의 정보를 저장하는데 사용될 수도 있고 컴퓨팅 디바이스 (500) 에 의해 액세스될 수도 있는 임의의 다른 매체를 포함하나 그것들로 제한되지는 않는다. 임의의 이러한 컴퓨터 저장 매체들은 컴퓨팅 디바이스 (500) 의 부분일 수도 있다.
컴퓨팅 디바이스 (500) 는 또한 다양한 인터페이스 디바이스들 (예컨대, 하나 이상의 출력 디바이스들 (542), 하나 이상의 주변 인터페이스들 (544), 및 하나 이상의 통신 디바이스들 (566)) 로부터 기본 구성 (502) 으로의 버스/인터페이스 제어기 (530) 를 경유하는 통신을 용이하도록 하기 위한 인터페이스 버스 (540) 를 포함할 수도 있다. 예의 출력 디바이스들 (542) 중 일부는 그래픽스 프로세싱 유닛 (548) 과 오디오 프로세싱 유닛 (550) 을 구비하며, 이 프로세싱 유닛들은 디스플레이 또는 스피커들과 같은 다양한 외부 디바이스들에 하나 이상의 A/V 포트들 (552) 을 통해 통신하도록 구성될 수도 있다. 하나 이상의 예의 주변 인터페이스들 (544) 은 직렬 인터페이스 제어기 (554) 또는 병렬 인터페이스 제어기 (556) 를 구비할 수도 있으며, 이 제어기들은 입력 디바이스들 (예컨대, 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스 등) 또는 다른 주변 디바이스들 (예컨대, 프린터, 스캐너 등) 과 같은 외부 디바이스들과 하나 이상의 I/O 포트들 (558) 을 경유하여 통신하도록 구성될 수도 있다. 일 예의 통신 디바이스 (566) 는 네트워크 제어기 (560) 를 구비하며, 이 네트워크 제어기는 하나 이상의 통신 포트들 (564) 을 경유하여 네트워크 통신 링크를 통한 하나 이상의 다른 컴퓨팅 디바이스들 (562) 과의 통신들을 용이하게 하도록 배열될 수도 있다. 하나 이상의 다른 컴퓨팅 디바이스들 (562) 은 데이터센터, 고객 장비, 및 필적하는 디바이스들의 서버들을 포함할 수도 있다.
네트워크 통신 링크는 통신 매체들의 한 예일 수도 있다. 통신 매체들은 통상 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호에 있는 다른 데이터에 의해 구체화될 수도 있고, 임의의 정보 전달 매체들을 포함할 수도 있다. "변조된 데이터 신호"는 그 신호에 정보를 인코딩하는 것과 같은 방식으로 설정되거나 변화된 그것의 특성들 중의 하나 이상을 갖는 신호일 수도 있다. 비제한적인 예로서, 통신 매체들은 유선 네트워크 또는 직접 연결 (direct-wired) 접속과 같은 유선 매체들, 및 음향, 무선 주파수 (RF), 마이크로파, 적외선 (IR) 및 다른 무선 무선 매체들과 같은 무선 매체들을 포함할 수도 있다. 본원에서 사용되는 바와 같은 용어 컴퓨터 판독가능 매체들은 저장 매체들 및 통신 매체들을 양쪽 모두를 포함할 수도 있다.
컴퓨팅 디바이스 (500) 는 위의 기능들 중 임의의 것을 포함하는 범용 또는 특수화된 서버, 메인프레임, 또는 유사한 컴퓨터의 일부로서 구현될 수도 있다. 컴퓨팅 디바이스 (500) 는 또한 랩톱 컴퓨터 및 비-랩톱 컴퓨터 구성들 양쪽 모두를 구비한 개인용 컴퓨터로서 구현될 수도 있다.
예의 실시형태들은 클라우드 서버들 사이에서의 이전 시 애플리케이션 성능들을 유지관리하는 방법들을 또한 포함할 수도 있다. 이들 방법들은 본 개시물에서 설명되는 구조들을 포함한 임의의 수의 방법들로 구현될 수 있다. 하나의 이러한 방법은 본 개시물에서 설명되는 유형의 디바이스들의 머신 동작들에 의한 것일 수도 있다. 다른 선택사항적 방도는, 다른 동작들이 머신들에 의해 수행될 수도 있는 동안 동작들의 일부를 수행하는 하나 이상의 인간 오퍼레이터들과 연계하여 수행될 방법들의 개개의 동작들 중 하나 이상에 대한 것일 수도 있다. 이들 인간 오퍼레이터들은 서로 함께 배치될 필요는 없지만, 각각은 프로그램의 부분을 수행하는 머신과는 함께 있을 수 있다. 다른 실시형태들에서, 인간의 상호작용은 머신 자동화될 수도 있는 미리 선택된 기준들에 의한 것과 같이 자동화될 수 있다.
도 6은 본원에서 설명되는 적어도 일부 실시형태들에 따라 배열된, 도 5의 디바이스 (500) 와 같은 컴퓨팅 디바이스에 의해 수행될 수도 있는 일 예의 방법을 도시하는 흐름도이다. 예의 방법들은 블록들 (622, 624, 626, 628, 및/또는 630) 중의 하나 이상에 의해 예시된 바와 같은 하나 이상의 동작들, 기능들 또는 액션들을 포함할 수도 있다. 블록들 (622 내지 630) 에서 설명되는 동작들은 또한 컴퓨팅 디바이스 (610) 의 컴퓨터 판독가능 매체 (620) 와 같은 컴퓨터 판독가능 매체에서 컴퓨터 실행가능 명령들로서 저장될 수도 있다.
클라우드 서버들 사이에서의 이전 시 데이터베이스 성능을 유지관리하는 일 예의 프로세스는 블록 622의 "원래의 데이터 스토어 및 필터에 데이터 요청들을 제출"로 시작할 수도 있는데, 여기서 소스 클라우드 서버 (예컨대, 도 1의 서버들 (104)), 타겟 클라우드 서버 (예컨대, 도 1의 서버들 (114)), 또는 서드 파티 서버 (예컨대, 도 1의 서버들 (118)) 상에서 실행되는 마이그레이션 모듈 또는 애플리케이션 (예컨대, 마이그레이션 모듈 (526)) 은, 도 2에서 설명된 바와 같이, 데이터 요청들 (예컨대, 도 2의 데이터 요청 (220)) 을 원래의 데이터 스토어 (예컨대, 도 2의 원래의 데이터베이스 (222)) 및 필터 (예컨대, 도 2의 필터 (228)) 에 제출할 수도 있다.
블록 622에는 블록 624의 "새로운 데이터 스토어를 위한 가능한 키 값 구조들을 획득하기 위한 요청들을 추상화"가 뒤따를 수도 있는데, 여기서 마이그레이션 모듈 (526) 은 블록 622에서 제출된 데이터 요청들을 추상화 요청들 (예컨대, 위에서 설명된 바와 같은 요청들 [2], [3], 및 [5]) 로 변환할 수도 있다. 일부 예들에서, 데이터 요청들 및/또는 추상화 요청들은 레코딩될 수도 있고 훈련을 위해 새로운 데이터베이스에 대해 나중에 시뮬레이션되거나 또는 반복될 수도 있다. 새로운 데이터 스토어를 위한 하나 이상의 가능한 키 값 구조들은, 추상화 요청들, 필터 (228) 에 관련하여 위에서 설명된 바와 같은, 추상화 요청들인 [3] 및 [5], 그리고 구조문 (structure statement) 들인 [4], [6], [7], 및 [8]을 분석함으로써 획득될 수도 있다.
블록 624에는 블록 626의 "원래의 데이터 스토어에서 요청들의 성능들 및 새로운 데이터 스토어에서 가능한 키 값 구조들을 레코딩"이 뒤따를 수도 있는데, 여기서 하나 이상의 성능 인덱스들 (예컨대, 프로세싱 시간, 판독 시간, 기록 시간 등) 이 원래의 데이터 스토어에 대해 만들어진 데이터 요청들 (예컨대, 블록 622의 데이터 요청들) 을 위해 수집된다. 동일한 성능 인덱스들은 블록 624에서 획득된 새로운 데이터 스토어를 위해 하나 이상의 가능한 키 값 구조들에 대해 만들어진 동일한 데이터 요청들을 위해 또한 기록될 수도 있다.
블록 626에는 블록 628의 "성능들 (스코어들) 을 비교"가 뒤따를 수도 있는데, 여기서 원래의 데이터 스토어를 위해 블록 626에서 레코딩된 성능 인덱스들과 새로운 데이터 스토어를 위한 하나 이상의 가능한 키 값 구조들은 비교될 수도 있다. 일부 예들에서, 원래의 데이터 스토어에 대해 만들어진 데이터 요청을 위한 개개의 성능 인덱스들은 새로운 데이터 스토어에서의 키 값 구조들에 대해 만들어진 데이터 요청을 위한 개개의 성능 인덱스들과 비교될 수도 있다. 일부 예들에서, 데이터 요청들을 위한 성능 인덱스들은 (예컨대, 요청의 유형, 데이터의 유형, 타겟 데이터베이스, 또는 임의의 다른 적합한 파라미터에 의해) 집계된 다음 서로 비교될 수도 있다.
블록 628에는 블록 630의 "최고 스코어를 갖는 키 값 구조들을 선택"이 뒤따를 수도 있는데, 여기서 (블록 628에서 결정된 바와 같은) 최고 성능 스코어 또는 관련 성능 인덱스들을 갖는 키 값 구조들이 새로운 데이터베이스를 위해 선택될 수도 있다. 일부 예들에서, 최고 성능 스코어들을 갖는 키 값 구조들은 복수의 가능한 키 값 구조들로부터 선택된다.
위에서 설명된 프로세스에 포함된 블록들은 예시의 목적을 위한 것이다. 클라우드 서버들 사이에서의 이전 시 애플리케이션 성능들을 유지관리하는 것은 적거나 또는 부가적인 블록들을 갖는 유사한 프로세스들에 의해 구현될 수도 있다. 일부 실시형태들에서, 블록들은 다른 순서로 수행될 수도 있다. 일부 다른 실시형태들에서, 다양한 블록들이 제외될 수도 있다. 또 다른 실시형태들에서, 다양한 블록들이 추가적인 블록들로 나누어지거나, 더 적은 수의 블록들로 결합될 수도 있다.
도 7은 본원에서 설명되는 적어도 일부의 실시형태들에 따라 배열되는 일 예의 컴퓨터 프로그램 제품의 블록도를 도시한다.
일부 실시형태들에서, 도 7에 도시된 바와 같이, 컴퓨터 프로그램 제품 (700) 은, 예를 들어, 프로세서에 의해 실행될 때 본원에서 설명된 기능성을 제공할 수도 있는 하나 이상의 머신 판독가능 명령들 (704) 을 또한 포함할 수도 있는 신호 베어링 매체 (702) 를 구비할 수도 있다. 그래서, 예를 들어, 도 5의 프로세서 (504) 를 참조하면, 마이그레이션 모듈 (526) 은 매체 (702) 에 의해 프로세서 (504) 로 운반되는 명령들 (704) 에 응답하여 도 7에 도시된 태스크들 중 하나 이상에 착수하여 본원에서 설명된 바와 같이 클라우드 서버들 사이에서의 이전 시 데이터베이스 성능을 유지관리하는 것과 연관된 액션들을 수행할 수도 있다. 그들 명령들 중 일부는, 예를 들어, 본원에서 설명되는 일부 실시형태들에 따라 원래의 데이터 스토어 및/또는 필터에 데이터 요청들을 제출하기 위한 명령, 새로운 데이터 스토어를 위한 가능한 키 값 구조들을 획득하기 위한 요청들을 추상화하기 위한 명령, 원래의 데이터 스토어에서의 요청들의 성능들 및 새로운 데이터 스토어에서의 가능한 키 값 구조들을 레코딩하기 위한 명령, 성능들을 비교하기 위한 명령, 및 최고 스코어를 갖는 키 값 구조들을 선택하기 위한 명령을 포함할 수도 있다.
일부 구현예들에서, 도 7에 묘사된 신호 베어링 매체 (702) 는 하드 디스크 드라이브, 솔리드 스테이트 드라이브, 콤팩트 디스크 (CD), 디지털 다기능 디스크 (DVD), 디지털 테이프, 메모리 등과 같지만 이것들로 제한되지는 않는 컴퓨터 판독가능 매체 (706) 를 포괄할 수도 있다. 일부 구현예들에서, 신호 베어링 매체 (702) 는 메모리, 읽기/쓰기 (R/W) CD들, R/W DVD들 등과 같지만 그것들로 제한되지는 않는 기록가능 매체 (708) 를 포괄할 수도 있다. 일부 구현예들에서, 신호 베어링 매체 (702) 는, 디지털 및/또는 아날로그 통신 매체 (예컨대, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등) 와 같지만 그것들로 제한되지는 않는 통신 매체 (710) 를 포괄할 수도 있다. 그래서, 예를 들어, 프로그램 제품 (700) 은 프로세서 (504) 의 하나 이상의 모듈들에 RF 신호 베어링 매체에 의해 운반될 수도 있는데, 그 RF 신호 베어링 매체 (702) 는 무선 통신 매체 (710) (예컨대, IEEE 802.11 표준을 따르는 무선 통신 매체) 에 의해 운반될 수도 있다.
일부 예들에 따르면, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법은, 소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하는 것, 그 데이터 요청들을 레코딩 및 분석을 위한 필터에 제출하는 것, 및 머신 학습을 채용하는 필터에 의한 분석들 및 원래의 데이터 스토어에 대한 요청들의 결과들에 기초하여 타겟 데이터센터에서의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성하는 것을 포함할 수도 있다.
다른 예들에 따르면, 그 필터는 원래의 데이터 스토어에 대한 요청들의 유형들의 확률에 기초하여 새로운 키 값 구조를 결정하도록 구성된다. 그 필터는 원래의 데이터 스토어에 대한 각각의 요청을 추상화하도록 추가로 구성될 수도 있다. 추상화는 각각의 요청의 유형, 각각의 요청과 연관된 테이블, 각각의 요청과 연관된 열, 및 비교 연산의 결정을 포함할 수도 있다. 일부 예들에서, 추상화된 요청은 원래의 데이터 스토어에 대한 요청을 충족하는 가능한 키 값 구조들의 리스트를 포함한다. 그 방법은 원래의 데이터 스토어에 대한 요청을 후속하는 테스팅을 위해 대체하는 것과 연관된 커맨드들과 가능한 키 값 구조들을 레코딩하는 것을 더 포함할 수도 있다. 일부 예들에서, 그 필터는 새로운 데이터 스토어를 훈련시키기 위해 새로운 데이터 스토어에 대한 일련의 레코딩된 요청들을 시뮬레이션하고 반복하도록 추가로 구성된다. 그 방법은 각각의 원래의 데이터 스토어 성능 및 각각의 새로운 데이터 스토어 성능에 스코어를 할당하는 것을 더 포함할 수도 있다.
추가의 예들에 따르면, 그 방법은, 새로운 데이터 스토어에서의 쿼리 및 대응하는 키 값 구조를 위해 원래의 데이터 스토어 성능들의 스코어들 및 새로운 데이터 스토어 성능들의 스코어들을 수집하는 것, 원래의 데이터 스토어 성능들의 스코어들 및 새로운 데이터 스토어 성능들의 스코어들을 비교하는 것, 및 원래의 데이터 스토어 성능들의 스코어들이 새로운 데이터 스토어 성능들의 스코어들과 실질적으로 동일하지 않으면, 대응하는 키 값 구조를 폐기하는 것을 더 포함할 수도 있다. 일부 예들에서, 새로운 데이터 스토어 성능들의 스코어들이 원래의 데이터 스토어 성능들의 스코어들과 실질적으로 동일하거나 또는 더 낫다면, 그 방법은, 새로운 데이터 스토어 성능들의 스코어들을 대응하는 키 값 구조를 위해 레코딩하는 것, 및/또는 복수의 가능한 키 값 구조들 중에서 새로운 데이터 스토어에서의 추상화된 쿼리에 대응하는 최고 스코어를 갖는 키 값 구조를 선택하는 것을 더 포함할 수도 있다. 성능들은 프로세싱 시간, 판독 시간, 및/또는 기록 시간을 포함할 수도 있다.
일부 예들에 따르면, 원래의 데이터 스토어는 관계형 데이터베이스이다. 관계형 데이터베이스는 구조화 질의 언어 (SQL) 데이터베이스일 수도 있다. 일부 예들에서, 원래의 데이터 스토어는 키 값들을 저장할 수도 있다. 원래의 데이터 스토어에 대한 요청들의 결과들은 새로운 데이터 스토어에 사용자 데이터로서 저장될 수도 있다. 원래의 데이터 스토어에 대한 요청들은 쿼리, 기록, 및/또는 트랜잭션일 수도 있다. 일부 예들에서, 그 방법은 새로운 데이터 스토어에서의 키 값 구조들을 위한 기본 테이블을 훈련 프로세스의 시작 시 수신하는 것을 포함할 수도 있다.
다른 예들에 따르면, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 컴퓨팅 디바이스는, 명령들을 저장하도록 구성된 메모리와 그 명령들과 연계하여 마이그레이션 모듈을 실행하도록 구성된 프로세싱 유닛을 포함할 수도 있다. 마이그레이션 모듈은, 소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하며, 그 데이터 요청들을 레코딩 및 분석을 위한 필터에 제출하고, 머신 학습을 채용하는 필터에 의한 분석들 및 원래의 데이터 스토어에 대한 요청들의 결과들에 기초하여 타겟 데이터센터의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성할 수도 있다.
다른 예들에 따르면, 그 필터는 원래의 데이터 스토어에 대한 요청들의 유형들의 확률에 기초하여 새로운 키 값 구조를 결정하도록 구성된다. 그 필터는 원래의 데이터 스토어에 대해 각각의 요청을 추상화하도록 추가로 구성될 수도 있다. 추상화는 각각의 요청의 유형, 각각의 요청과 연관된 테이블, 각각의 요청과 연관된 열, 및 비교 연산의 결정을 포함할 수도 있다. 일부 예들에서, 추상화된 요청은 원래의 데이터 스토어에 대한 요청을 충족하는 가능한 키 값 구조들의 리스트를 포함한다. 마이그레이션 모듈은 원래의 데이터 스토어에 대한 요청을 후속하는 테스팅을 위해 대체하는 것과 연관된 커맨드들과 가능한 키 값 구조들을 레코딩하는 것을 더 포함할 수도 있다. 일부 예들에서, 그 필터는 새로운 데이터 스토어를 훈련시키기 위해 새로운 데이터 스토어에 대한 일련의 레코딩된 요청들을 시뮬레이션하고 반복하도록 추가로 구성된다. 마이그레이션 모듈은 각각의 원래의 데이터 스토어 성능 및 각각의 새로운 데이터 스토어 성능에 스코어를 할당하도록 추가로 구성될 수도 있다.
추가의 예들에 따르면, 마이그레이션 모듈은, 새로운 데이터 스토어에서의 쿼리 및 대응하는 키 값 구조를 위해 원래의 데이터 스토어 성능들의 스코어들 및 새로운 데이터 스토어 성능들의 스코어들을 수집하며, 원래의 데이터 스토어 성능들의 스코어들 및 새로운 데이터 스토어 성능들의 스코어들을 비교하며, 원래의 데이터 스토어 성능들의 스코어들이 새로운 데이터 스토어 성능들의 스코어들과 실질적으로 동일하지 않으면, 대응하는 키 값 구조를 폐기하도록 추가로 구성될 수도 있다. 일부 예들에서, 새로운 데이터 스토어 성능들의 스코어들이 원래의 데이터 스토어 성능들의 스코어들과 실질적으로 동일하거나 또는 더 낫다면, 마이그레이션 모듈은, 새로운 데이터 스토어 성능들의 스코어들을 대응하는 키 값 구조를 위해 레코딩하며, 및/또는 복수의 가능한 키 값 구조들 중에서 새로운 데이터 스토어에서의 추상화된 쿼리에 대응하는 최고 스코어를 갖는 키 값 구조를 선택하도록 추가로 구성될 수도 있다. 성능들은 프로세싱 시간, 판독 시간, 및/또는 기록 시간을 포함할 수도 있다.
일부 예들에 따르면, 원래의 데이터 스토어는 관계형 데이터베이스이다. 관계형 데이터베이스는 구조화 질의 언어 (SQL) 데이터베이스일 수도 있다. 일부 예들에서, 원래의 데이터 스토어는 키 값들을 저장할 수도 있다. 원래의 데이터 스토어에 대한 요청들의 결과들은 새로운 데이터 스토어에 사용자 데이터로서 저장될 수도 있다. 원래의 데이터 스토어에 대한 요청들은 쿼리, 기록, 및/또는 트랜잭션일 수도 있다. 일부 예들에서, 마이그레이션 모듈은 새로운 데이터 스토어에서의 키 값 구조들을 위한 기본 테이블을 훈련 프로세스의 시작 시 수신하도록 추가로 구성될 수도 있다.
추가의 예들에 따르면, 컴퓨터 판독가능 저장 매체는 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하기 위한 명령들을 그것 상에 저장하고 있을 수도 있다. 그 명령들은, 소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하는 것, 그 데이터 요청들을 레코딩 및 분석을 위한 필터에 제출하는 것, 머신 학습을 채용하는 필터에 의한 분석들 및 원래의 데이터 스토어에 대한 요청들의 결과들에 기초하여 타겟 데이터센터에서의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성하는 것을 포함할 수도 있다.
다른 예들에 따르면, 그 필터는 원래의 데이터 스토어에 대한 요청들의 유형들의 확률에 기초하여 새로운 키 값 구조를 결정하도록 구성된다. 그 필터는 원래의 데이터 스토어에 대해 각각의 요청을 추상화하도록 추가로 구성될 수도 있다. 추상화는 각각의 요청의 유형, 각각의 요청과 연관된 테이블, 각각의 요청과 연관된 열, 및 비교 연산의 결정을 포함할 수도 있다. 일부 예들에서, 추상화된 요청은 원래의 데이터 스토어에 대한 요청을 충족하는 가능한 키 값 구조들의 리스트를 포함한다. 명령들은 원래의 데이터 스토어에 대한 요청을 후속하는 테스팅을 위해 대체하는 것과 연관된 커맨드들과 가능한 키 값 구조들을 레코딩하는 것을 더 포함할 수도 있다. 일부 예들에서, 그 필터는 새로운 데이터 스토어를 훈련시키기 위해 새로운 데이터 스토어에 대한 일련의 레코딩된 요청들을 시뮬레이션하고 반복하도록 추가로 구성된다. 명령들은 각각의 원래의 데이터 스토어 성능 및 각각의 새로운 데이터 스토어 성능에 스코어를 할당하는 것을 더 포함할 수도 있다.
추가의 예들에 따르면, 그 명령들은, 새로운 데이터 스토어에서의 쿼리 및 대응하는 키 값 구조를 위해 원래의 데이터 스토어 성능들의 스코어들 및 새로운 데이터 스토어 성능들의 스코어들을 수집하는 것, 원래의 데이터 스토어 성능들의 스코어들 및 새로운 데이터 스토어 성능들의 스코어들을 비교하는 것, 및 원래의 데이터 스토어 성능들의 스코어들이 새로운 데이터 스토어 성능들의 스코어들과 실질적으로 동일하지 않으면, 대응하는 키 값 구조를 폐기하는 것을 더 포함할 수도 있다. 일부 예들에서, 새로운 데이터 스토어 성능들의 스코어들이 원래의 데이터 스토어 성능들의 스코어들과 실질적으로 동일하거나 또는 더 낫다면, 그 명령들은, 새로운 데이터 스토어 성능들의 스코어들을 대응하는 키 값 구조를 위해 레코딩하는 것, 및/또는 복수의 가능한 키 값 구조들 중에서 새로운 데이터 스토어에서의 추상화된 쿼리에 대응하는 최고 스코어를 갖는 키 값 구조를 선택하는 것을 더 포함할 수도 있다. 성능들은 프로세싱 시간, 판독 시간, 및/또는 기록 시간을 포함할 수도 있다.
일부 예들에 따르면, 원래의 데이터 스토어는 관계형 데이터베이스이다. 관계형 데이터베이스는 구조화 질의 언어 (SQL) 데이터베이스일 수도 있다. 일부 예들에서, 원래의 데이터 스토어는 키 값들을 저장할 수도 있다. 원래의 데이터 스토어에 대한 요청들의 결과들은 새로운 데이터 스토어에 사용자 데이터로서 저장될 수도 있다. 원래의 데이터 스토어에 대한 요청들은 쿼리, 기록, 및/또는 트랜잭션일 수도 있다. 일부 예들에서, 그 명령들은 새로운 데이터 스토어에서의 키 값 구조들을 위한 기본 테이블을 훈련 프로세스의 시작 시 수신하는 것을 포함할 수도 있다.
시스템들의 양태들의 하드웨어 및 소프트웨어 구현예들 사이에는 남아있는 약간의 차이들이 있는데, (항상 그렇지는 않지만, 어떤 상황들에서 하드웨어 및 소프트웨어 사이의 선정은 중요해질 수도 있다는 점에서) 하드웨어 또는 소프트웨어의 사용은 대체로 디자인 선정 표현 비용 대 효율 트레이드오프이다. 본 개시물에서 설명되는 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 유효하게 될 수도 있게 하는 다양한 수단 (vehicle) 들 (예를 들면, 하드웨어, 소프트웨어, 및/또는 펌웨어) 이 존재하고, 이 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 배치되는 상황에 따라 바람직한 수단이 가변할 것이다. 예를 들어, 구현자 (implementer) 가 속도 및 정확도가 다른 무엇보다 중요하다고 결정하면, 구현자는 주로 하드웨어 및/또는 펌웨어 수단을 택할 수도 있으며; 유연성이 무엇보다도 중요하다면, 구현자는 주로 소프트웨어 구현예를 택할 수도 있으며; 또는, 또 다시 다르게는, 구현자는 하드웨어, 소프트웨어, 및/또는 펌웨어의 일부 조합을 택할 수도 있다.
전술한 상세한 설명은 블록도들, 흐름도들, 및/또는 예들의 사용을 통해 디바이스들 및/또는 프로세스들의 다양한 예들을 언급하고 있다. 이러한 블록도들, 흐름도들, 및/또는 예들이 하나 이상의 기능들 및/또는 동작들을 담고 있는 한, 이러한 블록도들, 흐름도들, 또는 예들 내의 각각의 기능 및/또는 동작이 다양한 범위의 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 가상적인 임의의 조합에 의해 개별적으로 및/또는 집합적으로 구현될 수도 있다는 것이, 당업자들에 의해 이해될 것이다. 하나의 실시형태에서, 본원에서 설명되는 요지의 여러 부분들이 주문형 집적회로들 (ASIC들), 필드 프로그램가능 게이트 어레이들 (FPGA들), 디지털 신호 프로세서들 (DSP들), 또는 다른 집적형 포맷들을 통해 구현될 수도 있다. 그러나, 이 기술분야의 숙련된 자들은, 본원에서 개시된 실시형태들의 일부 양태들이, 전체로 또는 부분적으로, 하나 이상의 컴퓨터들 상에서 실행중인 하나 이상의 컴퓨터 프로그램들로서 (예컨대, 하나 이상의 컴퓨터 시스템들 상에서 실행중인 하나 이상의 프로그램들로서), 하나 이상의 프로세서들 상에서 실행중인 하나 이상의 프로그램들로서 (예컨대 하나 이상의 마이크로프로세서들 상에서 실행중인 하나 이상의 프로그램들로서), 펌웨어로서, 또는 그것들의 가상의 임의의 조합으로서, 집적회로들에서 동등하게 구현될 수도 있다는 것과, 회로를 설계하는 것 및/또는 소프트웨어 및 또는 펌웨어를 위한 코드를 작성하는 것이 본 개시물에 비추어 이 기술분야의 숙련자의 스킬 내에서 잘 이루어질 것이라는 것을 인정할 것이다.
본 개시물은 다양한 양태들의 예시들로서 의도되는 이 출원에서 설명되는 특정한 예들의 관점으로 제한되지 않는다. 많은 변형예들 및 개조예들이 이 기술분야의 숙련된 자들에게 명확할 바와 같이, 본원의 정신 및 범위로부터 벗어남 없이 만들어질 수 있다. 본원에서 열거된 것들 외에, 본 개시물의 범위 내의 기능적으로 동등한 방법들 및 장치들은, 전술한 설명으로부터 이 기술분야의 숙련된 자들에게 명백할 것이다. 이러한 변형예들 및 개조예들은 첨부의 청구항들의 범위 내에 포함되도록 의도된다. 본 개시물은 첨부된 청구항들과 함께 이러한 청구항들의 자격이 주어지는 동등물들의 전체 범위에 의해서만 한정된다. 본 개시물은 물론, 가변할 수 있는 특정 방법들, 시약들 (reagents), 화합물들, 조성물들, 또는 생물학적 시스템들로 한정되지는 않는다는 것이 이해된다. 본 개시물에서 사용된 용어들은 단지 특정 실시형태들을 설명하기 위한 것이고, 한정할 의도는 아니라는 것 또한 이해된다.
덧붙여서, 이 기술분야의 숙련된 자들은, 본원에서 설명되는 요지의 메커니즘들이 다양한 형태의 프로그램 제품으로서 배포될 수 있다는 것과, 본원에서 설명되는 요지의 예시적인 실시형태들이 실질적으로 배포를 실행하는데 사용되는 신호 베어링 매체의 특정한 유형에 무관하게 적용될 수 있다는 것이 이해할 것이다. 신호 베어링 매체의 예들은, 플로피 디스크, 하드 디스크 드라이브, 콤팩트 디스크 (CD), 디지털 다기능 디스크 (DVD), 디지털 테이프, 컴퓨터 메모리, 솔리드 스테이트 드라이브 등과 같은 기록가능형 매체; 및 디지털 및/또는 아날로그 통신 매체 (예컨대, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등) 와 같은 전송형 매체를 포함하지만 이것들로 한정되지는 않는다.
이 기술분야의 숙련된 자들은, 디바이스들 및/또는 프로세스들을 본원에서 언급된 형태로 설명하는 것과 그 후에 엔지니어링 관행들을 이용하여 이렇게 설명된 디바이스들 및/또는 프로세스들을 데이터 처리 시스템들에 통합하는 것이 이 기술분야 내에서 흔하다는 것을 인정할 것이다. 다시 말하면, 본원에서 설명되는 디바이스들 및/또는 프로세스들의 적어도 일 부분은 합리적인 양의 실험을 통해 데이터 처리 시스템에 통합될 수도 있다. 이 기술분야의 기술을 가진 자들은, 전형적인 데이터 처리 시스템이 일반적으로, 시스템 유닛 하우징, 비디오 디스플레이 디바이스, 휘발성 및 비휘발성 메모리와 같은 메모리, 마이크로프로세서들 및 디지털 신호 프로세서들과 같은 프로세서들, 운영체제들, 드라이버들, 그래픽 사용자 인터페이스들, 및 애플리케이션들 프로그램들과 같은 컴퓨터 사용 (computational) 엔티티들, 하나 이상의 상호작용 디바이스들, 이를테면 터치 패드 또는 스크린, 및/또는 피드백 루프들 및 제어 모터들 (예컨대, 갠트리 (gantry) 시스템들의 위치 및/또는 속도를 감지하기 위한 피드백; 성분들 및/또는 분량들을 이동시키고 및/또는 조절하기 위한 제어 모터들) 을 구비한 제어 시스템들 중의 하나 이상을 구비할 것임을 인정할 것이다.
전형적인 데이터 프로세싱 시스템은 임의의 적합한 상업적으로 입수가능한 컴포넌트들, 이를테면 데이터 컴퓨팅/통신 및/또는 네트워크 컴퓨팅/통신 시스템들에서 일반적으로 발견되는 것들을 활용하여 구현될 수도 있다. 본원에서 설명되는 요지는 때때로 상이한 다른 컴포넌트들 내에 포함되거나 또는 그런 다른 컴포넌트들과 연결되는 상이한 컴포넌트들을 도시한다. 이렇게 묘사된 아키텍처들은 단지 예시적인 것이라는 것과, 실제로, 동일한 기능을 달성하는 많은 다른 아키텍처들이 구현될 수도 있다는 것이 이해된다. 개념적인 의미에서, 동일한 기능을 달성하는 컴포넌트들의 임의의 배치구성은 소망의 기능이 달성되도록 효과적으로 "연관된"다. 그런고로, 특정 기능을 달성하기 위해 조합되는 본원에서의 임의의 두 개의 컴포넌트들은, 아키텍처들 또는 중간 컴포넌트들에 무관하게, 소망의 기능이 달성되도록 서로 "관련되는" 것처럼 보일 수도 있다. 비슷하게, 그렇게 관련되는 임의의 두 개의 컴포넌트들은 또한 소망의 기능을 달성하도록 서로 "동작상 연결된", 또는 "동작상 커플링된" 것으로 보일 수도 있고, 그렇게 관련될 수 있는 임의의 두 개의 컴포넌트들은 또한 소망의 기능을 달성하기 위해 서로에 "동작상 커플링가능한" 것으로 보일 수도 있다. 동작상 커플링가능한 것들의 구체적인 예들은, 물리적으로 연결가능한 및/또는 물리적으로 상호작용하는 컴포넌트들 및/또는 무선으로 상호작용가능한 및/또는 무선으로 상호작용하는 컴포넌트들 및/또는 논리적으로 상호작용하는 및/또는 논리적으로 상호작용가능한 컴포넌트들을 포함하지만 이것들로 한정되지는 않는다.
본원에서의 실질적으로 임의의 복수 및/또는 단수의 용어들의 사용에 관해, 당업자들은 상황 및/또는 애플리케이션에 적합한 대로 복수에서 단수로 그리고/또는 단수에서 복수로 해석할 수 있다. 다양한 단수/복수 교환들은 명료함을 위해 본원에서 명시적으로 언급될 수도 있다.
대체로, 본원에서, 그리고 특히 첨부의 청구항들 (예컨대, 첨부의 청구항들의 본문들) 에서 사용되는 용어들은 대체로 "개방형" 용어들로서 의도된다 (예컨대, 용어 "포함하는"은 "포함하지만 그것으로 제한되지는 않는" 것으로서 해석되어야 하며, 용어 "가지는"은 "적어도 ~를 가지는" 것으로서 해석되어야 하고, 용어 "포함한다"는 "포함하지만 그것으로 제한되지는 않는다"로 해석되어야 하는 등이다) 는 것이 이 기술분야의 사람들에게는 이해될 것이다. 특정한 수의 도입된 청구항 한정이 의도된다면, 이러한 의도는 청구항에서 명시적으로 언급될 것이고, 그러한 한정이 없으면 그러한 의도는 없다는 것이 이 기술분야의 사람들에게는 추가로 이해될 것이다. 예를 들어, 이해를 돕기 위한 것으로서, 다음의 첨부의 청구항들이 청구항 한정들을 도입하기 위해 도입어구들인 "적어도 하나의" 및 "하나 이상의"의 사용을 포함할 수도 있다. 그러나, 이러한 어구들의 사용은, 부정관사들인 "a" 또는 "an"에 의한 청구항 한정의 도입이, 심지어 동일한 청구항이 도입 어구들인 "하나 이상의" 또는 "적어도 하나의"와 "a" 또는 "an" (예컨대, "a" 및/또는 "an"은 "적어도 하나의" 또는 "하나 이상의"를 의미하는 것으로 해석되어야 한다) 와 같은 부정관사들을 포함하는 경우에도, 그런 도입된 청구항 한정을 담고 있는 임의의 특정한 청구항을 하나의 그러한 한정만을 담고 있는 예들로 한정하는 것이라고 해석되지 않아야 하고; 동일한 것이 청구항 한정들을 도입하는데 사용되는 정관사들의 사용에 대해서도 유효하다. 덧붙여서, 도입된 청구항 한정의 구체적인 수가 명시적으로 언급되는 경우에도, 이 기술분야의 숙련된 자들은 그러한 한정이 최소한 언급된 수를 의미하는 것으로 해석하여야 한다 (예컨대, 다른 수식어 없이 가장 기본적인 것만 갖춘 "2개의 언급"은, 적어도 2개의 언급, 또는 둘 이상의 언급을 의미한다) 는 것을 인식할 것이다.
더욱이, "A, B, 및 C 중 적어도 하나 등"에 유사한 관례 (convention) 가 사용되는 그런 경우들에서, 대체로 이러한 구조는 이 기술분야의 숙련자가 그 관례를 이해할 것이라는 뜻으로 의도된다 (예컨대, "A, B, 및 C 중 적어도 하나를 갖는 시스템"은 A 단독, B 단독, C 단독, A 및 B를 함께, A 및 C를 함께, B 및 C를 함께, 그리고/또는 A, B, 및 C를 함께 등등을 가지는 시스템들을 포함하지만 그러한 시스템들로 한정되지는 않을 것이다). 상세한 설명이든, 청구범위이든 또는 도면이든, 2 개 이상의 택일적 용어들을 나타내는 사실상 임의의 이접 (disjunctive) 단어 및/또는 어구는 용어들 중 하나, 용어들 중 어느 한쪽 또는 용어들 양쪽 모두를 포함할 가능성들을 의도하는 것으로 이해되어야 한다는 것이 당업자에 의해 추가로 이해될 것이다. 예를 들어, 어구 "A 또는 B"는 "A" 또는 "B" 또는 "A 및 B"의 가능성들을 포함하는 것으로 이해될 것이다.
덧붙여서, 본 개시물의 특징들 또는 양태들이 마쿠쉬 그룹들의 용어로 기재되는 경우, 그로써, 이 기술분야의 숙련된 자들은 본 개시물이 또한 마쿠쉬 그룹의 멤버들로 된 서브그룹 또는 임의의 개개의 멤버의 관점에서도 설명된다는 것이 이해될 것이다.
이 기술분야의 숙련자들에 의해 이해될 바와 같이, 임의의 및 모든 목적들에 대해, 이를테면 기재된 설명을 제공하는 견지에서, 본원에서 개시되는 모든 범위들 또한 임의의 및 모든 가능한 하위범위들 및 그 하위범위들의 조합들을 포괄한다. 임의의 열거된 범위는 적어도 동일한 절반들, 1/3들, 1/4들, 1/5들, 1/10들 등으로 나누어지는 충분히 설명되고 가능한 동일한 범위로서 쉽게 인식될 수 있다. 비제한적인 예로서, 본원에서 논의되는 각각의 범위는 하부의 1/3, 중간의 1/3 및 상부의 1/3 등으로 손쉽게 나누어질 수 있다. 이 기술분야의 숙련자들에 의해 또한 이해될 바와 같이, "~까지", "적어도" "보다 큰," "~ 미만" 등등과 같은 모든 표현들은 언급된 수를 포함하고 위에서 논의된 바와 같이 뒤에서 하위범위로 나누어질 수 있는 범위들을 말한다. 마지막으로, 이 기술분야의 숙련자들에 의해 또한 이해될 바와 같이, 범위는 각 개개의 멤버를 포함한다. 그래서, 예를 들어, 1 내지 3 개의 셀들을 갖는 그룹은 1, 2, 또는 3 개의 셀들을 갖는 그룹들을 말한다. 마찬가지로, 1 내지 5 개의 셀들을 갖는 그룹은 1, 2, 3, 4, 또는 5 개의 셀들을 갖는 그룹들을 말하는 등등이다.
다양한 양태들 및 실시형태들이 본원에서 개시되었지만, 다른 양태들 및 실시형태들은 당업자들에게 명확할 것이다. 본원에서 개시된 다양한 양태들 및 실시형태들은 다음의 청구항들에 의해 나타내어진 진정한 범위 및 정신을 예시할 목적이고 제한하려는 의도는 아니다.

Claims (54)

  1. 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법으로서,
    소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하는 것;
    레코딩 및 분석을 위한 필터에 상기 데이터 요청들을 제출하는 것; 및
    머신 학습을 채용하는 상기 필터에 의한 분석들 및 상기 원래의 데이터 스토어에 대한 상기 요청들의 결과들에 기초하여 타겟 데이터센터에서의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성하는 것을 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  2. 제 1 항에 있어서,
    상기 필터는 상기 원래의 데이터 스토어에 대한 상기 요청들의 유형들의 확률에 기초하여 상기 새로운 키 값 구조를 결정하도록 구성되는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  3. 제 2 항에 있어서,
    상기 필터는 상기 원래의 데이터 스토어에 대한 각각의 요청을 추상화하도록 추가로 구성되는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  4. 제 3 항에 있어서,
    상기 추상화는 각각의 요청의 유형, 각각의 요청과 연관된 테이블, 각각의 요청과 연관된 열, 및 비교 연산의 결정을 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  5. 제 3 항에 있어서,
    추상화된 요청은 상기 원래의 데이터 스토어에 대한 상기 요청을 충족하는 가능한 키 값 구조들의 리스트를 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  6. 제 5 항에 있어서,
    상기 원래의 데이터 스토어에 대한 상기 요청을 후속하는 테스팅을 위해 대체하는 것과 연관된 커맨드들과 상기 가능한 키 값 구조들을 레코딩하는 것을 더 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  7. 제 2 항에 있어서,
    상기 필터는 상기 새로운 데이터 스토어를 훈련시키기 위해 새로운 데이터 스토어에 대한 일련의 레코딩된 요청들을 시뮬레이션하고 반복하도록 추가로 구성되는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  8. 제 1 항에 있어서,
    각각의 원래의 데이터 스토어 성능 및 각각의 새로운 데이터 스토어 성능에 스코어를 할당하는 것을 더 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  9. 제 8 항에 있어서,
    상기 새로운 데이터 스토어에서의 쿼리 및 대응하는 키 값 구조를 위해 원래의 데이터 스토어 성능들의 스코어들 및 새로운 데이터 스토어 성능들의 스코어들을 수집하는 것;
    상기 원래의 데이터 스토어 성능들의 스코어들 및 상기 새로운 데이터 스토어 성능들의 스코어들을 비교하는 것; 및
    상기 원래의 데이터 스토어 성능들의 스코어들이 상기 새로운 데이터 스토어 성능들의 스코어들과 실질적으로 동일하지 않으면, 상기 대응하는 키 값 구조를 폐기하는 것을 더 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  10. 제 9 항에 있어서,
    상기 새로운 데이터 스토어 성능들의 스코어들이 상기 원래의 데이터 스토어 성능들의 스코어들과 실질적으로 동일하거나 더 낫다면, 상기 대응하는 키 값 구조를 위해 상기 새로운 데이터 스토어 성능들의 스코어들을 레코딩하는 것을 더 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  11. 제 10 항에 있어서,
    복수의 가능한 키 값 구조들 중에서 상기 새로운 데이터 스토어에서의 추상화된 쿼리에 대응하는 최고 스코어를 갖는 키 값 구조를 선택하는 것을 더 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  12. 제 8 항에 있어서,
    성능들은 프로세싱 시간, 판독 시간, 및 기록 시간 중 하나 이상을 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  13. 제 1 항에 있어서,
    상기 원래의 데이터 스토어는 관계형 데이터베이스인, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  14. 제 13 항에 있어서,
    상기 관계형 데이터베이스는 구조화 질의 언어 (Structured Query Language; SQL) 데이터베이스인, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  15. 제 1 항에 있어서,
    상기 원래의 데이터 스토어는 키 값들을 저장하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  16. 제 1 항에 있어서,
    상기 원래의 데이터 스토어에 대한 상기 요청들의 상기 결과들은 상기 새로운 데이터 스토어에 사용자 데이터로서 저장되는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  17. 제 1 항에 있어서,
    상기 원래의 데이터 스토어에 대한 상기 요청들은 쿼리, 기록, 및 트랜잭션 중 하나 이상인, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  18. 제 1 항에 있어서,
    상기 새로운 데이터 스토어에서의 키 값 구조들을 위한 기본 테이블을 훈련 프로세스의 시작 시 수신하는 것을 더 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법.
  19. 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 컴퓨팅 디바이스로서,
    명령들을 저장하도록 구성된 메모리; 및
    상기 명령들과 연계하여 마이그레이션 모듈을 실행하도록 구성된 프로세싱 유닛을 포함하며,
    상기 마이그레이션 모듈은,
    소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하고;
    레코딩 및 분석을 위한 필터에 상기 데이터 요청들을 제출하고; 그리고
    머신 학습을 채용하는 상기 필터에 의한 분석들 및 상기 원래의 데이터 스토어에 대한 상기 요청들의 결과들에 기초하여 타겟 데이터센터에서의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성하도록 구성되는, 컴퓨팅 디바이스.
  20. 제 19 항에 있어서,
    상기 필터는 상기 원래의 데이터 스토어에 대한 상기 요청들의 유형들의 확률에 기초하여 상기 새로운 키 값 구조를 결정하도록 구성되는, 컴퓨팅 디바이스.
  21. 제 20 항에 있어서,
    상기 필터는 상기 원래의 데이터 스토어에 대한 각각의 요청을 추상화하도록 추가로 구성되는, 컴퓨팅 디바이스.
  22. 제 21 항에 있어서,
    상기 추상화는 각각의 요청의 유형, 각각의 요청과 연관된 테이블, 각각의 요청과 연관된 열, 및 비교 연산의 결정을 포함하는, 컴퓨팅 디바이스.
  23. 제 21 항에 있어서,
    추상화된 요청은 상기 원래의 데이터 스토어에 대한 상기 요청을 충족하는 가능한 키 값 구조들의 리스트를 포함하는, 컴퓨팅 디바이스.
  24. 제 23 항에 있어서,
    상기 마이그레이션 모듈은,
    상기 원래의 데이터 스토어에 대한 상기 요청을 후속하는 테스팅을 위해 대체하는 것과 연관된 커맨드들과 상기 가능한 키 값 구조들을 레코딩하도록 추가로 구성되는, 컴퓨팅 디바이스.
  25. 제 20 항에 있어서,
    상기 필터는 상기 새로운 데이터 스토어를 훈련시키기 위해 상기 새로운 데이터 스토어에 대한 일련의 레코딩된 요청들을 시뮬레이션하고 반복하도록 추가로 구성되는, 컴퓨팅 디바이스.
  26. 제 19 항에 있어서,
    상기 마이그레이션 모듈은,
    각각의 원래의 데이터 스토어 성능 및 각각의 새로운 데이터 스토어 성능에 스코어를 할당하도록 추가로 구성되는, 컴퓨팅 디바이스.
  27. 제 26 항에 있어서,
    상기 마이그레이션 모듈은,
    상기 새로운 데이터 스토어에서의 쿼리 및 대응하는 키 값 구조를 위해 원래의 데이터 스토어 성능들의 스코어들 및 새로운 데이터 스토어 성능들의 스코어들을 수집하며;
    상기 원래의 데이터 스토어 성능들의 스코어들 및 상기 새로운 데이터 스토어 성능들의 스코어들을 비교하며; 및
    상기 원래의 데이터 스토어 성능들의 스코어들이 상기 새로운 데이터 스토어 성능들의 스코어들과 실질적으로 동일하지 않으면, 상기 대응하는 키 값 구조를 폐기하도록 추가로 구성되는, 컴퓨팅 디바이스 하는.
  28. 제 27 항에 있어서,
    상기 마이그레이션 모듈은,
    상기 새로운 데이터 스토어 성능들의 스코어들이 상기 원래의 데이터 스토어 성능들의 스코어들과 실질적으로 동일하거나 더 낫다면, 상기 대응하는 키 값 구조를 위해 상기 새로운 데이터 스토어 성능들의 스코어들을 레코딩하도록 추가로 구성되는, 컴퓨팅 디바이스.
  29. 제 28 항에 있어서,
    상기 마이그레이션 모듈은,
    복수의 가능한 키 값 구조들 중에서 상기 새로운 데이터 스토어에서의 추상화된 쿼리에 대응하는 최고 스코어를 갖는 키 값 구조를 선택하도록 추가로 구성되는, 컴퓨팅 디바이스.
  30. 제 26 항에 있어서,
    성능들은 프로세싱 시간, 판독 시간, 및 기록 시간 중 하나 이상을 포함하는, 컴퓨팅 디바이스.
  31. 제 19 항에 있어서,
    상기 원래의 데이터 스토어는 관계형 데이터베이스인, 컴퓨팅 디바이스.
  32. 제 31 항에 있어서,
    상기 관계형 데이터베이스는 구조화 질의 언어 (SQL) 데이터베이스인, 컴퓨팅 디바이스.
  33. 제 19 항에 있어서,
    상기 원래의 데이터 스토어는 키 값들을 저장하는, 컴퓨팅 디바이스.
  34. 제 19 항에 있어서,
    상기 원래의 데이터 스토어에 대한 상기 요청들의 상기 결과들은 상기 새로운 데이터 스토어에 사용자 데이터로서 저장되는, 컴퓨팅 디바이스.
  35. 제 19 항에 있어서,
    상기 원래의 데이터 스토어에 대한 상기 요청들은 쿼리, 기록, 및 트랜잭션 중 하나 이상인, 컴퓨팅 디바이스.
  36. 제 19 항에 있어서,
    상기 마이그레이션 모듈은,
    상기 새로운 데이터 스토어에서의 키 값 구조들을 위한 기본 테이블을 훈련 프로세스의 시작 시 수신하도록 추가로 구성되는, 컴퓨팅 디바이스.
  37. 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하기 위한 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은,
    소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하는 것;
    레코딩 및 분석을 위한 필터에 상기 데이터 요청들을 제출하는 것; 및
    머신 학습을 채용하는 상기 필터에 의한 분석들 및 상기 원래의 데이터 스토어에 대한 상기 요청들의 결과들에 기초하여 타겟 데이터센터에서의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성하는 것을 포함하는, 컴퓨터 판독가능 저장 매체.
  38. 제 37 항에 있어서,
    상기 필터는 상기 원래의 데이터 스토어에 대한 상기 요청들의 유형들의 확률에 기초하여 상기 새로운 키 값 구조를 결정하도록 구성되는, 컴퓨터 판독가능 저장 매체.
  39. 제 38 항에 있어서,
    상기 필터는 상기 원래의 데이터 스토어에 대한 각각의 요청을 추상화하도록 추가로 구성되는, 컴퓨터 판독가능 저장 매체.
  40. 제 39 항에 있어서,
    상기 추상화는 각각의 요청의 유형, 각각의 요청과 연관된 테이블, 각각의 요청과 연관된 열, 및 비교 연산의 결정을 포함하는, 컴퓨터 판독가능 저장 매체.
  41. 제 39 항에 있어서,
    추상화된 요청은 상기 원래의 데이터 스토어에 대한 상기 요청을 충족하는 가능한 키 값 구조들의 리스트를 포함하는, 컴퓨터 판독가능 저장 매체.
  42. 제 41 항에 있어서,
    상기 명령들은,
    상기 원래의 데이터 스토어에 대한 상기 요청을 후속하는 테스팅을 위해 대체하는 것과 연관된 커맨드들과 상기 가능한 키 값 구조들을 레코딩하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  43. 제 38 항에 있어서,
    상기 필터는 상기 새로운 데이터 스토어를 훈련시키기 위해 상기 새로운 데이터 스토어에 대한 일련의 레코딩된 요청들을 시뮬레이션하고 반복하도록 추가로 구성되는, 컴퓨터 판독가능 저장 매체.
  44. 제 37 항에 있어서,
    상기 명령들은,
    각각의 원래의 데이터 스토어 성능 및 각각의 새로운 데이터 스토어 성능에 스코어를 할당하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  45. 제 44 항에 있어서,
    상기 명령들은,
    상기 새로운 데이터 스토어에서의 쿼리 및 대응하는 키 값 구조를 위해 원래의 데이터 스토어 성능들의 스코어들 및 새로운 데이터 스토어 성능들의 스코어들을 수집하는 것;
    상기 원래의 데이터 스토어 성능들의 스코어들 및 상기 새로운 데이터 스토어 성능들의 스코어들을 비교하는 것; 및
    상기 원래의 데이터 스토어 성능들의 스코어들이 상기 새로운 데이터 스토어 성능들의 스코어들과 실질적으로 동일하지 않으면, 상기 대응하는 키 값 구조를 폐기하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  46. 제 45 항에 있어서,
    상기 명령들은,
    상기 새로운 데이터 스토어 성능들의 스코어들이 상기 원래의 데이터 스토어 성능들의 스코어들과 실질적으로 동일하거나 더 낫다면, 상기 대응하는 키 값 구조를 위해 상기 새로운 데이터 스토어 성능들의 스코어들을 레코딩하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  47. 제 46 항에 있어서,
    상기 명령들은,
    복수의 가능한 키 값 구조들 중에서 상기 새로운 데이터 스토어에서의 추상화된 쿼리에 대응하는 최고 스코어를 갖는 키 값 구조를 선택하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  48. 제 44 항에 있어서,
    성능들은 프로세싱 시간, 판독 시간, 및 기록 시간 중 하나 이상을 포함하는, 컴퓨터 판독가능 저장 매체.
  49. 제 37 항에 있어서,
    상기 원래의 데이터 스토어는 관계형 데이터베이스인, 컴퓨터 판독가능 저장 매체.
  50. 제 49 항에 있어서,
    상기 관계형 데이터베이스는 구조화 질의 언어 (SQL) 데이터베이스인, 컴퓨터 판독가능 저장 매체.
  51. 제 37 항에 있어서,
    상기 원래의 데이터 스토어는 키 값들을 저장하는, 컴퓨터 판독가능 저장 매체.
  52. 제 37 항에 있어서,
    상기 원래의 데이터 스토어에 대한 상기 요청들의 상기 결과들은 상기 새로운 데이터 스토어에 사용자 데이터로서 저장되는, 컴퓨터 판독가능 저장 매체.
  53. 제 37 항에 있어서,
    상기 원래의 데이터 스토어에 대한 상기 요청들은 쿼리, 기록, 및 트랜잭션 중 하나 이상인, 컴퓨터 판독가능 저장 매체.
  54. 제 37 항에 있어서,
    상기 명령들은,
    상기 새로운 데이터 스토어에서의 키 값 구조들을 위한 기본 테이블을 훈련 프로세스의 시작 시 수신하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
KR1020147027254A 2012-04-01 2012-04-01 데이터베이스 마이그레이션 소스를 위한 머신 학습 KR101617987B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/073455 WO2013149371A1 (en) 2012-04-01 2012-04-01 Machine learning for database migration source

Publications (2)

Publication Number Publication Date
KR20140130217A true KR20140130217A (ko) 2014-11-07
KR101617987B1 KR101617987B1 (ko) 2016-05-03

Family

ID=49299910

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147027254A KR101617987B1 (ko) 2012-04-01 2012-04-01 데이터베이스 마이그레이션 소스를 위한 머신 학습

Country Status (3)

Country Link
US (1) US9286571B2 (ko)
KR (1) KR101617987B1 (ko)
WO (1) WO2013149371A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10635674B2 (en) * 2012-09-28 2020-04-28 Oracle International Corporation Migrating a pluggable database between database server instances with minimal impact to performance
US10102079B2 (en) 2013-06-13 2018-10-16 Hytrust, Inc. Triggering discovery points based on change
US8849764B1 (en) 2013-06-13 2014-09-30 DataGravity, Inc. System and method of data intelligent storage
US10089192B2 (en) * 2013-06-13 2018-10-02 Hytrust, Inc. Live restore for a data intelligent storage system
US9785645B1 (en) * 2013-09-24 2017-10-10 EMC IP Holding Company LLC Database migration management
US11283900B2 (en) 2016-02-08 2022-03-22 Microstrategy Incorporated Enterprise performance and capacity testing
US10440153B1 (en) 2016-02-08 2019-10-08 Microstrategy Incorporated Enterprise health score and data migration
US11093838B2 (en) 2017-05-10 2021-08-17 Microsoft Technology Licensing, Llc Adaptive selection of user to database mapping
US10650044B2 (en) 2017-07-18 2020-05-12 Datastrong, L.L.C. Method and apparatus for converting from a source database system to a destination database system
CN107689958B (zh) * 2017-09-03 2021-07-13 中国南方电网有限责任公司 一种应用于云审计系统的网络审计子系统
US11386058B2 (en) 2017-09-29 2022-07-12 Oracle International Corporation Rule-based autonomous database cloud service framework
US11269822B2 (en) * 2017-10-09 2022-03-08 Sap Se Generation of automated data migration model
US10715619B2 (en) * 2017-10-16 2020-07-14 Red Hat, Inc. Cache management using a probabilistic data structure
US10656980B2 (en) 2018-06-18 2020-05-19 Wipro Limited Method and system for processing data in a serverless computing environment
US11263111B2 (en) 2019-02-11 2022-03-01 Microstrategy Incorporated Validating software functionality
WO2020185234A1 (en) 2019-03-14 2020-09-17 Hewlett-Packard Development Company, L.P. Preprocessing sensor data for machine learning
US11983909B2 (en) 2019-03-14 2024-05-14 Hewlett-Packard Development Company, L.P. Responding to machine learning requests from multiple clients
US11637748B2 (en) 2019-08-28 2023-04-25 Microstrategy Incorporated Self-optimization of computing environments
US11210189B2 (en) 2019-08-30 2021-12-28 Microstrategy Incorporated Monitoring performance of computing systems
US11354216B2 (en) 2019-09-18 2022-06-07 Microstrategy Incorporated Monitoring performance deviations
US11360881B2 (en) 2019-09-23 2022-06-14 Microstrategy Incorporated Customizing computer performance tests
US11438231B2 (en) 2019-09-25 2022-09-06 Microstrategy Incorporated Centralized platform management for computing environments
CN111651507B (zh) * 2020-04-16 2023-10-10 杭州半云科技有限公司 一种大数据加工方法及系统
CN111881193B (zh) * 2020-06-12 2022-08-05 福建亿能达信息技术股份有限公司 一种基于机器学习的绩效方案测算系统、设备及介质

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1331018A (en) 1919-09-29 1920-02-17 Joseph O Luthy Separator for secondary batteries
US4356549A (en) 1980-04-02 1982-10-26 Control Data Corporation System page table apparatus
US7739381B2 (en) 1998-03-11 2010-06-15 Commvault Systems, Inc. System and method for providing encryption in storage operations in a storage network, such as for use by application service providers that provide data storage services
US6928428B1 (en) 2000-11-27 2005-08-09 Microsoft Corporation Distributed confidential contextual querying
US7499907B2 (en) 2001-10-12 2009-03-03 Teradata Us, Inc. Index selection in a database system
US7308449B2 (en) 2002-02-01 2007-12-11 John Fairweather System and method for managing collections of data on a network
US7690037B1 (en) 2005-07-13 2010-03-30 Symantec Corporation Filtering training data for machine learning
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US20080005144A1 (en) 2006-05-23 2008-01-03 Seapass Solutions Inc. Apparatus and method for transferring data between incompatible computer systems
US20080016095A1 (en) 2006-07-13 2008-01-17 Nec Laboratories America, Inc. Multi-Query Optimization of Window-Based Stream Queries
GB0622738D0 (en) 2006-11-15 2006-12-27 Ibm Methods and apparatus for assisted migration in a data processing environment
US8655939B2 (en) 2007-01-05 2014-02-18 Digital Doors, Inc. Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
US7966309B2 (en) 2007-01-17 2011-06-21 Google Inc. Providing relevance-ordered categories of information
US8013738B2 (en) 2007-10-04 2011-09-06 Kd Secure, Llc Hierarchical storage manager (HSM) for intelligent storage of large volumes of data
US7801994B2 (en) 2007-11-29 2010-09-21 Hitachi, Ltd. Method and apparatus for locating candidate data centers for application migration
US20090254529A1 (en) 2008-04-04 2009-10-08 Lev Goldentouch Systems, methods and computer program products for content management
US8301593B2 (en) 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system
US8238256B2 (en) * 2008-09-08 2012-08-07 Nugent Raymond M System and method for cloud computing
US10467633B2 (en) 2008-12-11 2019-11-05 Sugarcrm Inc. Business software application system and method
US8788655B2 (en) 2008-12-19 2014-07-22 Openpeak Inc. Systems for accepting and approving applications and methods of operation of same
US20100293147A1 (en) 2009-05-12 2010-11-18 Harvey Snow System and method for providing automated electronic information backup, storage and recovery
US20100333116A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
US8250198B2 (en) 2009-08-12 2012-08-21 Microsoft Corporation Capacity planning for data center services
US8489654B2 (en) 2009-08-28 2013-07-16 Beijing Innovation Works Technology Company Limited Method and system for forming a virtual file system at a computing device
US8706771B2 (en) 2009-09-30 2014-04-22 Smartshift Gmbh Systems and methods for analyzing and transforming an application from a source installation to a target installation
US20110126197A1 (en) 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US10348693B2 (en) 2009-12-15 2019-07-09 Microsoft Technology Licensing, Llc Trustworthy extensible markup language for trustworthy computing and data services
US20110178890A1 (en) 2010-01-15 2011-07-21 Endurance International Group, Inc. Common services web hosting architecture with multiple branding
US8429651B2 (en) 2010-01-20 2013-04-23 International Business Machines Corporation Enablement and acceleration of live and near-live migration of virtual machines and their associated storage across networks
US8874600B2 (en) 2010-01-30 2014-10-28 International Business Machines Corporation System and method for building a cloud aware massive data analytics solution background
GB201004449D0 (en) 2010-02-22 2010-05-05 Corbett Sean Data accelerator
US9009137B2 (en) 2010-03-12 2015-04-14 Microsoft Technology Licensing, Llc Query model over information as a networked service
US9875463B2 (en) 2010-03-17 2018-01-23 Infostreet, Inc. Cloud-based desktop and subscription application platform apparatuses, methods and systems
JP5190084B2 (ja) 2010-03-30 2013-04-24 株式会社日立製作所 仮想マシンのマイグレーション方法およびシステム
US20110246550A1 (en) 2010-04-02 2011-10-06 Levari Doron System and method for aggregation of data from a plurality of data sources
US8447754B2 (en) 2010-04-19 2013-05-21 Salesforce.Com, Inc. Methods and systems for optimizing queries in a multi-tenant store
EP2569712B1 (en) 2010-05-10 2021-10-13 Icontrol Networks, Inc. Control system user interface
US8910278B2 (en) 2010-05-18 2014-12-09 Cloudnexa Managing services in a cloud computing environment
US8359223B2 (en) * 2010-07-20 2013-01-22 Nec Laboratories America, Inc. Intelligent management of virtualized resources for cloud database systems
US9342832B2 (en) 2010-08-12 2016-05-17 Visa International Service Association Securing external systems with account token substitution
US8621052B2 (en) 2010-08-20 2013-12-31 International Business Machines Corporation Performance tuning for software as a performance level service
US20120054731A1 (en) 2010-08-24 2012-03-01 International Business Machines Corporation Method, System and Computer Programs to Assist Migration to a Cloud Computing Environment
US9239690B2 (en) * 2010-08-31 2016-01-19 Bruce R. Backa System and method for in-place data migration
US8578348B2 (en) 2010-09-02 2013-11-05 Code Value Ltd. System and method of cost oriented software profiling
US8892740B2 (en) 2010-09-10 2014-11-18 International Business Machines Corporation Dynamic application provisioning in cloud computing environments
CA2882602A1 (en) 2010-09-20 2012-03-29 Rick L. Orsini Systems and methods for secure data sharing
US8539175B2 (en) 2010-09-21 2013-09-17 International Business Machines Corporation Transferring learning metadata between storage servers having clusters via copy services operations on a shared virtual logical unit that stores the learning metadata
US20120117054A1 (en) 2010-11-08 2012-05-10 Lakshmikant Shrinivas Query Analysis in a Database
CN101969475A (zh) 2010-11-15 2011-02-09 张军 基于云计算的商业数据可控分发与融合应用系统
US9736252B2 (en) 2010-11-23 2017-08-15 Red Hat, Inc. Migrating subscribed services in a cloud deployment
US8447729B1 (en) * 2010-12-15 2013-05-21 Emc Corporation Techniques for performing indication management
US8839363B2 (en) 2011-04-18 2014-09-16 Bank Of America Corporation Trusted hardware for attesting to authenticity in a cloud environment
US8463765B2 (en) 2011-04-29 2013-06-11 Zachary C. LESAVICH Method and system for creating vertical search engines with cloud computing networks
US20130166550A1 (en) 2011-12-21 2013-06-27 Sap Ag Integration of Tags and Object Data
WO2013147821A1 (en) * 2012-03-29 2013-10-03 Empire Technology Development, Llc Determining user key-value storage needs from example queries

Also Published As

Publication number Publication date
WO2013149371A1 (en) 2013-10-10
US20140019387A1 (en) 2014-01-16
US9286571B2 (en) 2016-03-15
KR101617987B1 (ko) 2016-05-03

Similar Documents

Publication Publication Date Title
KR101617987B1 (ko) 데이터베이스 마이그레이션 소스를 위한 머신 학습
CN107122443B (zh) 一种基于Spark SQL的分布式全文检索系统及方法
CA2953969C (en) Interactive interfaces for machine learning model evaluations
US10963810B2 (en) Efficient duplicate detection for machine learning data sets
US20220261413A1 (en) Using specified performance attributes to configure machine learning pipepline stages for an etl job
US9773029B2 (en) Generation of a data model
Howe et al. Database-as-a-service for long-tail science
CN104699742A (zh) 使能扩展大型数据集的极端可视化
US11615076B2 (en) Monolith database to distributed database transformation
US20240070176A1 (en) Phrase Indexing
Russell Getting started with Impala: interactive SQL for Apache Hadoop
US9646048B2 (en) Declarative partitioning for data collection queries
Sinthong et al. AFrame: Extending DataFrames for large-scale modern data analysis (Extended Version)
US20220318258A1 (en) Search Guidance
US20210357398A1 (en) Intelligent Search Modification Guidance
US11947537B1 (en) Automatic index management for a non-relational database
Skripcak et al. Storage and databases for big data
Kanakaris et al. A Comparative Survey of Graph Databases and Software for Social Network Analytics: The Link Prediction Perspective
Tapdiya Large Scale Data Management for Enterprise Workloads
Liao et al. FIND-A Data Cloud Platform for Financial Data Services
Labouseur A query-oriented approach to graph series distribution and replication
Andonov A Dual-Layer Data Model for a Scalable Educational Social Network at a University
Dzhakishev NoSQL Databases in the Enterprise. An Experience with Tomra s Receipt Validation System

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 4