KR20140130217A - 데이터베이스 마이그레이션 소스를 위한 머신 학습 - Google Patents
데이터베이스 마이그레이션 소스를 위한 머신 학습 Download PDFInfo
- 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
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 17
- 230000005012 migration Effects 0.000 title claims description 49
- 238000013508 migration Methods 0.000 title claims description 49
- 238000000034 method Methods 0.000 claims abstract description 97
- 238000004458 analytical method Methods 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 20
- 238000012549 training Methods 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101100005559 Mus musculus Ccl22 gene Proteins 0.000 description 2
- 101150045969 abcD1 gene Proteins 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003153 chemical reaction reagent Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000010454 slate Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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)
- 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
본 명세서에서 달리 지시되지 않는 한, 이 섹션에 기재된 내용들은 본 출원에 대한 선행 기술이 아니고, 이 섹션에 포함되었다고 선행기술이라고 인정된 것은 아니다.
네트워킹 및 데이터 저장 기술들의 진보로, 점점 더 많은 수의 컴퓨팅 서비스들이 다양한 레벨들에서 컴퓨팅 리소스들에 대한 액세스를 가능하게 할 수 있는 클라우드 기반 데이터센터들에 의해 사용자들 또는 고객들에 제공되고 있다. 클라우드 기반 서비스 제공자들은 시스템들의 구축 및 운영을 위한 솔루션들의 범위를 개인들 및 조직들에 제공할 수도 있다. 고객 요구, 데이터센터 능력들, 및 연관된 비용에 의존하여, 고객들에 제공되는 서비스들은, 서버 레이턴시, 저장 한계들 또는 한도들, 프로세싱 능력, 확장성 팩터들, 백업 보장, 가동시간 (uptime) 보장, 리소스 사용 보고, 및 유사한 것들과 같은 양태들을 기술하는 서비스 수준 협약서 (Service Level Agreement; SLA) 들에 의해 정의될 수도 있다.
클라우드 기반 서비스들의 성공은 점점 더 많은 애플리케이션들 및 데이터베이스들이 클라우드로 이동되고 있다는 것을 의미한다. 고객들 (또는 테넌트들) 은 성능, 단가, 신뢰도, 및 유사한 것들과 같은 서비스 파라미터들을 유지하면서도 애플리케이션들 및 데이터베이스들을 하나의 서비스 제공자로부터 다른 서비스 제공자로 이동시키는 선택사항을 가지는 것을 보통 선호한다. 서비스 제공자들은 애플리케이션의 성능 및 서비스 레벨을 유지하면서도 애플리케이션 또는 데이터베이스를 하나의 사이트로부터 다른 사이트로 이동시키는 선택사항을 가지는 것을 선호할 수도 있다.
데이터베이스들이 상이한 서비스 제공자들 사이에서 이동되는 경우, 데이터베이스 성능은 반드시 유지되지 않을 수도 있다. 더욱이, 특정 데이터베이스의 데이터 구조들은 서비스 제공자들 간에 쉽게 이전가능한 것이 아닐 수도 있고, 새로운 서비스 제공자를 위해 데이터베이스를 재설계하는 것은 리소스 손실이 크다.
본 개시물은 동등한 또는 상이한 리소스 믹스들을 갖는 클라우드 서비스들 사이에서의 이전 (transfer) 시 클라우드 서버가 데이터베이스 성능들을 유지관리하는 것을 가능하게 하는 기술들을 대체로 기술한다.
일부 예들에 따르면, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법은, 소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하는 것, 그 데이터 요청들을 레코딩 및 분석을 위한 필터에 제출하는 것, 및 머신 학습을 채용하는 필터에 의한 분석들 및 원래의 데이터 스토어에 대한 요청들의 결과들에 기초하여 타겟 데이터센터에서의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성하는 것을 포함할 수도 있다.
다른 예들에 따르면, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 컴퓨팅 디바이스는, 명령들을 저장하도록 구성된 메모리와 그 명령들과 연계하여 마이그레이션 모듈을 실행하도록 구성된 프로세싱 유닛을 포함할 수도 있다. 마이그레이션 모듈은, 소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하며, 그 데이터 요청들을 레코딩 및 분석을 위한 필터에 제출하고, 머신 학습을 채용하는 필터에 의한 분석들 및 원래의 데이터 스토어에 대한 요청들의 결과들에 기초하여 타겟 데이터센터의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성할 수도 있다.
추가의 예들에 따르면, 컴퓨터 판독가능 저장 매체는 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하기 위한 명령들을 저장하고 있을 수도 있다. 그 명령들은, 소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하는 것, 그 데이터 요청들을 레코딩 및 분석을 위한 필터에 제출하는 것, 머신 학습을 채용하는 필터에 의한 분석들 및 원래의 데이터 스토어에 대한 요청들의 결과들에 기초하여 타겟 데이터센터의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성하는 것을 포함할 수도 있다.
전술한 개요는 단지 예시적인 것이고 어떠한 방식으로든 제한하는 것으로 의도되지 않았다. 위에서 설명된 예시적인 양태들, 실시형태들, 및 특징들 외에도, 추가의 양태들, 실시형태들, 및 특징들이 도면들 및 다음의 상세한 설명을 참조하여 명확하게 될 것이다.
본 개시물의 전술한 및 다른 특징들은 첨부 도면들을 참조하여 취해진 다음의 설명 및 첨부의 청구항들로부터 더욱 완전히 명확하게 될 것이다. 이들 도면들이 본 개시물을 따르는 여러 실시형태들을 묘사하고, 그러므로, 그것의 범위를 제한하는 것으로 간주되지 않는다고 이해한 후에, 본 개시물은 부가적인 특수성 및 상세함을 가지고서 다음의 첨부 도면들의 사용을 통해 설명될 것이다:
도 1은 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들의 유지관리가 구현될 수도 있는 예의 시스템을 도시한다;
도 2는 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리함에 있어서 소스 데이터센터 및 타겟 데이터센터의 주요 컴포넌트들 사이의 예의 상호작용들을 도시한다;
도 3은 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 시스템에서의 일 예의 원래의 데이터베이스를 도시한다;
도 4는 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 시스템에서 키 값 스토어를 재구축함에 있어서 예의 데이터 및 유형들의 세트를 도시한다;
도 5는 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 데 사용될 수도 있는 범용 컴퓨팅 디바이스를 도시한다;
도 6은 도 5의 디바이스와 같은 컴퓨팅 디바이스에 의해 수행될 수도 있는 일 예의 방법을 도시하는 흐름도이다; 그리고
도 7은 본원에서 설명되는 적어도 몇몇의 실시형태들에 따라 모두가 배열되는 일 예의 컴퓨터 프로그램 제품의 블록도를 도시한다.
도 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 항에 있어서,
상기 필터는 상기 원래의 데이터 스토어에 대한 각각의 요청을 추상화하도록 추가로 구성되는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 3 항에 있어서,
상기 추상화는 각각의 요청의 유형, 각각의 요청과 연관된 테이블, 각각의 요청과 연관된 열, 및 비교 연산의 결정을 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 3 항에 있어서,
추상화된 요청은 상기 원래의 데이터 스토어에 대한 상기 요청을 충족하는 가능한 키 값 구조들의 리스트를 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 5 항에 있어서,
상기 원래의 데이터 스토어에 대한 상기 요청을 후속하는 테스팅을 위해 대체하는 것과 연관된 커맨드들과 상기 가능한 키 값 구조들을 레코딩하는 것을 더 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 2 항에 있어서,
상기 필터는 상기 새로운 데이터 스토어를 훈련시키기 위해 새로운 데이터 스토어에 대한 일련의 레코딩된 요청들을 시뮬레이션하고 반복하도록 추가로 구성되는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 1 항에 있어서,
각각의 원래의 데이터 스토어 성능 및 각각의 새로운 데이터 스토어 성능에 스코어를 할당하는 것을 더 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 8 항에 있어서,
상기 새로운 데이터 스토어에서의 쿼리 및 대응하는 키 값 구조를 위해 원래의 데이터 스토어 성능들의 스코어들 및 새로운 데이터 스토어 성능들의 스코어들을 수집하는 것;
상기 원래의 데이터 스토어 성능들의 스코어들 및 상기 새로운 데이터 스토어 성능들의 스코어들을 비교하는 것; 및
상기 원래의 데이터 스토어 성능들의 스코어들이 상기 새로운 데이터 스토어 성능들의 스코어들과 실질적으로 동일하지 않으면, 상기 대응하는 키 값 구조를 폐기하는 것을 더 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 9 항에 있어서,
상기 새로운 데이터 스토어 성능들의 스코어들이 상기 원래의 데이터 스토어 성능들의 스코어들과 실질적으로 동일하거나 더 낫다면, 상기 대응하는 키 값 구조를 위해 상기 새로운 데이터 스토어 성능들의 스코어들을 레코딩하는 것을 더 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 10 항에 있어서,
복수의 가능한 키 값 구조들 중에서 상기 새로운 데이터 스토어에서의 추상화된 쿼리에 대응하는 최고 스코어를 갖는 키 값 구조를 선택하는 것을 더 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 8 항에 있어서,
성능들은 프로세싱 시간, 판독 시간, 및 기록 시간 중 하나 이상을 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 1 항에 있어서,
상기 원래의 데이터 스토어는 관계형 데이터베이스인, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 13 항에 있어서,
상기 관계형 데이터베이스는 구조화 질의 언어 (Structured Query Language; SQL) 데이터베이스인, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 1 항에 있어서,
상기 원래의 데이터 스토어는 키 값들을 저장하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 1 항에 있어서,
상기 원래의 데이터 스토어에 대한 상기 요청들의 상기 결과들은 상기 새로운 데이터 스토어에 사용자 데이터로서 저장되는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 1 항에 있어서,
상기 원래의 데이터 스토어에 대한 상기 요청들은 쿼리, 기록, 및 트랜잭션 중 하나 이상인, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 제 1 항에 있어서,
상기 새로운 데이터 스토어에서의 키 값 구조들을 위한 기본 테이블을 훈련 프로세스의 시작 시 수신하는 것을 더 포함하는, 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 방법. - 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하는 컴퓨팅 디바이스로서,
명령들을 저장하도록 구성된 메모리; 및
상기 명령들과 연계하여 마이그레이션 모듈을 실행하도록 구성된 프로세싱 유닛을 포함하며,
상기 마이그레이션 모듈은,
소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하고;
레코딩 및 분석을 위한 필터에 상기 데이터 요청들을 제출하고; 그리고
머신 학습을 채용하는 상기 필터에 의한 분석들 및 상기 원래의 데이터 스토어에 대한 상기 요청들의 결과들에 기초하여 타겟 데이터센터에서의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성하도록 구성되는, 컴퓨팅 디바이스. - 제 19 항에 있어서,
상기 필터는 상기 원래의 데이터 스토어에 대한 상기 요청들의 유형들의 확률에 기초하여 상기 새로운 키 값 구조를 결정하도록 구성되는, 컴퓨팅 디바이스. - 제 20 항에 있어서,
상기 필터는 상기 원래의 데이터 스토어에 대한 각각의 요청을 추상화하도록 추가로 구성되는, 컴퓨팅 디바이스. - 제 21 항에 있어서,
상기 추상화는 각각의 요청의 유형, 각각의 요청과 연관된 테이블, 각각의 요청과 연관된 열, 및 비교 연산의 결정을 포함하는, 컴퓨팅 디바이스. - 제 21 항에 있어서,
추상화된 요청은 상기 원래의 데이터 스토어에 대한 상기 요청을 충족하는 가능한 키 값 구조들의 리스트를 포함하는, 컴퓨팅 디바이스. - 제 23 항에 있어서,
상기 마이그레이션 모듈은,
상기 원래의 데이터 스토어에 대한 상기 요청을 후속하는 테스팅을 위해 대체하는 것과 연관된 커맨드들과 상기 가능한 키 값 구조들을 레코딩하도록 추가로 구성되는, 컴퓨팅 디바이스. - 제 20 항에 있어서,
상기 필터는 상기 새로운 데이터 스토어를 훈련시키기 위해 상기 새로운 데이터 스토어에 대한 일련의 레코딩된 요청들을 시뮬레이션하고 반복하도록 추가로 구성되는, 컴퓨팅 디바이스. - 제 19 항에 있어서,
상기 마이그레이션 모듈은,
각각의 원래의 데이터 스토어 성능 및 각각의 새로운 데이터 스토어 성능에 스코어를 할당하도록 추가로 구성되는, 컴퓨팅 디바이스. - 제 26 항에 있어서,
상기 마이그레이션 모듈은,
상기 새로운 데이터 스토어에서의 쿼리 및 대응하는 키 값 구조를 위해 원래의 데이터 스토어 성능들의 스코어들 및 새로운 데이터 스토어 성능들의 스코어들을 수집하며;
상기 원래의 데이터 스토어 성능들의 스코어들 및 상기 새로운 데이터 스토어 성능들의 스코어들을 비교하며; 및
상기 원래의 데이터 스토어 성능들의 스코어들이 상기 새로운 데이터 스토어 성능들의 스코어들과 실질적으로 동일하지 않으면, 상기 대응하는 키 값 구조를 폐기하도록 추가로 구성되는, 컴퓨팅 디바이스 하는. - 제 27 항에 있어서,
상기 마이그레이션 모듈은,
상기 새로운 데이터 스토어 성능들의 스코어들이 상기 원래의 데이터 스토어 성능들의 스코어들과 실질적으로 동일하거나 더 낫다면, 상기 대응하는 키 값 구조를 위해 상기 새로운 데이터 스토어 성능들의 스코어들을 레코딩하도록 추가로 구성되는, 컴퓨팅 디바이스. - 제 28 항에 있어서,
상기 마이그레이션 모듈은,
복수의 가능한 키 값 구조들 중에서 상기 새로운 데이터 스토어에서의 추상화된 쿼리에 대응하는 최고 스코어를 갖는 키 값 구조를 선택하도록 추가로 구성되는, 컴퓨팅 디바이스. - 제 26 항에 있어서,
성능들은 프로세싱 시간, 판독 시간, 및 기록 시간 중 하나 이상을 포함하는, 컴퓨팅 디바이스. - 제 19 항에 있어서,
상기 원래의 데이터 스토어는 관계형 데이터베이스인, 컴퓨팅 디바이스. - 제 31 항에 있어서,
상기 관계형 데이터베이스는 구조화 질의 언어 (SQL) 데이터베이스인, 컴퓨팅 디바이스. - 제 19 항에 있어서,
상기 원래의 데이터 스토어는 키 값들을 저장하는, 컴퓨팅 디바이스. - 제 19 항에 있어서,
상기 원래의 데이터 스토어에 대한 상기 요청들의 상기 결과들은 상기 새로운 데이터 스토어에 사용자 데이터로서 저장되는, 컴퓨팅 디바이스. - 제 19 항에 있어서,
상기 원래의 데이터 스토어에 대한 상기 요청들은 쿼리, 기록, 및 트랜잭션 중 하나 이상인, 컴퓨팅 디바이스. - 제 19 항에 있어서,
상기 마이그레이션 모듈은,
상기 새로운 데이터 스토어에서의 키 값 구조들을 위한 기본 테이블을 훈련 프로세스의 시작 시 수신하도록 추가로 구성되는, 컴퓨팅 디바이스. - 클라우드 컴퓨팅 환경들 사이에서의 이전 시 데이터 스토어 성능들을 유지관리하기 위한 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
상기 명령들은,
소스 데이터센터에서의 원래의 데이터 스토어에 데이터 요청들을 제출하는 것;
레코딩 및 분석을 위한 필터에 상기 데이터 요청들을 제출하는 것; 및
머신 학습을 채용하는 상기 필터에 의한 분석들 및 상기 원래의 데이터 스토어에 대한 상기 요청들의 결과들에 기초하여 타겟 데이터센터에서의 새로운 데이터 스토어에서의 새로운 키 값 구조를 생성하는 것을 포함하는, 컴퓨터 판독가능 저장 매체. - 제 37 항에 있어서,
상기 필터는 상기 원래의 데이터 스토어에 대한 상기 요청들의 유형들의 확률에 기초하여 상기 새로운 키 값 구조를 결정하도록 구성되는, 컴퓨터 판독가능 저장 매체. - 제 38 항에 있어서,
상기 필터는 상기 원래의 데이터 스토어에 대한 각각의 요청을 추상화하도록 추가로 구성되는, 컴퓨터 판독가능 저장 매체. - 제 39 항에 있어서,
상기 추상화는 각각의 요청의 유형, 각각의 요청과 연관된 테이블, 각각의 요청과 연관된 열, 및 비교 연산의 결정을 포함하는, 컴퓨터 판독가능 저장 매체. - 제 39 항에 있어서,
추상화된 요청은 상기 원래의 데이터 스토어에 대한 상기 요청을 충족하는 가능한 키 값 구조들의 리스트를 포함하는, 컴퓨터 판독가능 저장 매체. - 제 41 항에 있어서,
상기 명령들은,
상기 원래의 데이터 스토어에 대한 상기 요청을 후속하는 테스팅을 위해 대체하는 것과 연관된 커맨드들과 상기 가능한 키 값 구조들을 레코딩하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체. - 제 38 항에 있어서,
상기 필터는 상기 새로운 데이터 스토어를 훈련시키기 위해 상기 새로운 데이터 스토어에 대한 일련의 레코딩된 요청들을 시뮬레이션하고 반복하도록 추가로 구성되는, 컴퓨터 판독가능 저장 매체. - 제 37 항에 있어서,
상기 명령들은,
각각의 원래의 데이터 스토어 성능 및 각각의 새로운 데이터 스토어 성능에 스코어를 할당하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체. - 제 44 항에 있어서,
상기 명령들은,
상기 새로운 데이터 스토어에서의 쿼리 및 대응하는 키 값 구조를 위해 원래의 데이터 스토어 성능들의 스코어들 및 새로운 데이터 스토어 성능들의 스코어들을 수집하는 것;
상기 원래의 데이터 스토어 성능들의 스코어들 및 상기 새로운 데이터 스토어 성능들의 스코어들을 비교하는 것; 및
상기 원래의 데이터 스토어 성능들의 스코어들이 상기 새로운 데이터 스토어 성능들의 스코어들과 실질적으로 동일하지 않으면, 상기 대응하는 키 값 구조를 폐기하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체. - 제 45 항에 있어서,
상기 명령들은,
상기 새로운 데이터 스토어 성능들의 스코어들이 상기 원래의 데이터 스토어 성능들의 스코어들과 실질적으로 동일하거나 더 낫다면, 상기 대응하는 키 값 구조를 위해 상기 새로운 데이터 스토어 성능들의 스코어들을 레코딩하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체. - 제 46 항에 있어서,
상기 명령들은,
복수의 가능한 키 값 구조들 중에서 상기 새로운 데이터 스토어에서의 추상화된 쿼리에 대응하는 최고 스코어를 갖는 키 값 구조를 선택하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체. - 제 44 항에 있어서,
성능들은 프로세싱 시간, 판독 시간, 및 기록 시간 중 하나 이상을 포함하는, 컴퓨터 판독가능 저장 매체. - 제 37 항에 있어서,
상기 원래의 데이터 스토어는 관계형 데이터베이스인, 컴퓨터 판독가능 저장 매체. - 제 49 항에 있어서,
상기 관계형 데이터베이스는 구조화 질의 언어 (SQL) 데이터베이스인, 컴퓨터 판독가능 저장 매체. - 제 37 항에 있어서,
상기 원래의 데이터 스토어는 키 값들을 저장하는, 컴퓨터 판독가능 저장 매체. - 제 37 항에 있어서,
상기 원래의 데이터 스토어에 대한 상기 요청들의 상기 결과들은 상기 새로운 데이터 스토어에 사용자 데이터로서 저장되는, 컴퓨터 판독가능 저장 매체. - 제 37 항에 있어서,
상기 원래의 데이터 스토어에 대한 상기 요청들은 쿼리, 기록, 및 트랜잭션 중 하나 이상인, 컴퓨터 판독가능 저장 매체. - 제 37 항에 있어서,
상기 명령들은,
상기 새로운 데이터 스토어에서의 키 값 구조들을 위한 기본 테이블을 훈련 프로세스의 시작 시 수신하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
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)
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)
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 |
-
2012
- 2012-04-01 US US13/879,799 patent/US9286571B2/en not_active Expired - Fee Related
- 2012-04-01 KR KR1020147027254A patent/KR101617987B1/ko active IP Right Grant
- 2012-04-01 WO PCT/CN2012/073455 patent/WO2013149371A1/en active Application Filing
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 |