KR101595783B1 - 동적 데이터 저장을 위한 시스템 및 방법 - Google Patents

동적 데이터 저장을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101595783B1
KR101595783B1 KR1020157014580A KR20157014580A KR101595783B1 KR 101595783 B1 KR101595783 B1 KR 101595783B1 KR 1020157014580 A KR1020157014580 A KR 1020157014580A KR 20157014580 A KR20157014580 A KR 20157014580A KR 101595783 B1 KR101595783 B1 KR 101595783B1
Authority
KR
South Korea
Prior art keywords
data
data set
memory
data sets
sets
Prior art date
Application number
KR1020157014580A
Other languages
English (en)
Other versions
KR20150079950A (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 KR20150079950A publication Critical patent/KR20150079950A/ko
Application granted granted Critical
Publication of KR101595783B1 publication Critical patent/KR101595783B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • H04M1/72558
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data

Abstract

특정 데이터 세트를 기초로 동작하라는 명령어를 수신하는 단계; 상기 특정 데이터 세트가 상기 메모리 내에서 캐싱되었는 지 여부를 결정하는 단계; 특정 데이터 세트가 상기 메모리 내에서 캐싱되지 않을 때, 메모리 내에 현재 저장된 복수의 데이터 세트들에 대한 복수의 속성을 결정하는 단계, 이러한 속성들이 특정 데이터 세트를 저장하기 위한 데이터 캐싱 기준을 만족하는지 여부를 결정하는 단계, 및 추가로 데이터 캐싱 기준이 만족되지 않을 때, 데이터 대체 규칙에 따라 복수의 데이터 세트 중 하나 이상을 선택하는 단계, 선택된 데이터 세트의 적어도 일부를 메모리로부터 삭제하는 단계, 및 특정 데이터 세트를 원격 소스로부터 다운로드 하는 단계; 특정 데이터 세트를 사용자 명령어에 따라 동작하는 단계; 및 특정 데이터 세트의 적어도 일부를 메모리 내에 저장하는 단계를 수행하는 데이터 캐싱 방법.

Description

동적 데이터 저장을 위한 시스템 및 방법{SYSTEMS and METHODS for DYNAMIC DATA STORAGE}
본 발명은 데이터 처리 기술의 분야에 관한 것이고, 특히, 특정 데이터 세트를 포함하는 다수의 데이터 세트들을 기초로 동작하는 소프트웨어 어플리케이션을 실행하는 과정 동안 동적 방식으로 특정 데이터 세트를 캐싱하거나 저장하기 위한 방법, 시스템, 및 디바이스들에 관한 것이다.
본 출원은 2012년 11월 2일자로 출원된 중국 특허 출원 번호 제201210433837.6호, 명칭 "온라인 오디오 데이터를 저장하는 방법 및 장치(METHOD AND DEVICE FOR STORING ONLINE AUDIO)"에 대하여 우선권을 주장함, 이는 그 일체로서 참조되어 본 명세서에 합병된다.
클라이언트 디바이스들(예를 들어, 휴대폰들)은 우리의 매일의 삶에 광범위하게 적용되어, 그 쉬운 접근성 및 큰 수용성 속성들로 인해 전례 없는 사용자 경험을 제공한다. 2013년 1월 현재, 900,000 개의 어플리케이션들이 아이폰(iPhone) 또는 아이 패드(iPad) 사용자들에 의해 애플 앱 스토어(Apple App Store)에서 다운로딩 가능하다. 많은 수의 소프트웨어 어플리케이션들에 따라, 많은 용량의 데이터가 클라이언트 디바이스들 내에서 처리되며 종종 클라이언트 디바이스들이 강력한 데이터 처리 용량을 개발할 것을 요구한다.
세부적인 예시로서, 오디오 플레이어는 보통 클라이언트 디바이스 상에서 인터넷을 통해 수신된 오디오 데이터로부터 오디오 클립들을 재생하도록 구현된다. 하나의 상황에서, 각각의 오디오 클립에 대한 개별적인 데이터 세트가 각 클립이 재생될 때마다 메모리 내에 국부적으로 캐싱되나, 그후 메모리로부터 지워지지 않는다. 특히, 휴대폰은 일반 패킷 무선 서비스(General Packet Radio Service, “GPRS”)를 통해 개별적인 데이터 세트를 데이터 패킷으로서 수신하여야 하고, 개별적인 데이터 세트는 오디오 플레이어가 오디오 크립을 재생할 때마다 휴대폰 및 상응하는 데이터 소스 사이에서 종종 전송되어, 통신 네트워크의 대역폭을 불필요하게 낭비한다.
그러나, 다른 상황에서, 클라이언트 디바이스에서 재생되는 각각의 오디오 클립에 대한 개별적인 데이터 세트는 메모리 내에 국부적으로 캐싱되거나 저장되어, 그로써, 오디오 플레이어가 개별적인 오디오 클립을 재생할 필요가 있을 때, 개별적인 데이터 세트는 클라이언트 디바이스의 메모리로부터 직접 추출된다. 더 많은 오디오 데이터 세트들이 로컬 메모리 내에 캐싱됨에 따라, 가용한 메모리 공간은 클라이언트 디바이스 에서 감소되고, 몇몇 지점에서, 사용자는 몇몇 오디오 클립들을 삭제함으로써 오디오 클립들을 수동으로 조직하여야 한다. 그러한 오디오 클립들의 수동 조직화는 사용자를 불편하게 할 수 있고, 오디오 플레이를 이용한 상응하는 사용자 경험의 감소를 감수하여야한다.
그러므로, 소프트웨어 어플리케이션 내에서 데이터 세트들을 처리하라는 명령어들을 실행하는 과정 동안 통신 네트워크를 통해 수신되는, 오디오 클립과 같은, 데이터의 저장을 선행적으로 및 효과적으로 관리하는 시스템 및 방법을 제공하는 것이 요구된다.
통신 네트워크로부터 수신된 캐싱(caching) 데이터에 대한 종래의 접근 방식들에 연관되는 결함들 및 다른 문제들은 이하에서 기술되는 본 발명에 의해 감소되거나 제거된다. 몇몇 실시예들에서, 본 발명은 하나 또는 그 이상의 프로세서들, 메모리 및 하나 또는 그 이상의 모듈, 프로그램들 또는 다수의 기능들을 수행하기 위하여 메모리 내에 저장되는 명령어들의 세트들을 갖는 클라이언트 머신 내에서 구현된다. 이러한 기능들을 수행하기 위한 명령어들은 하나 또는 그 이상의 프로세서들에 의한 실행을 위해 구성되는 컴퓨터 프로그램 제품 내에 포함될 수 있다.
본 발명의 하나의 양태는 컴퓨터에서 구현되는 데이터의 캐싱 방법으로, 그 방법은, 하나 또는 그 이상의 프로세서들 및 하나 또는 그 이상의 프로세서들에 의해 실행될 프로그램들을 저장하기 위한 메모리를 포함하는 클라이언트 디바이스 에서, 특정 데이터 세트를 기초로 동작하라는 명령어를 수신하는 단계 및 상기 특정 데이터 세트가 상기 메모리 내에서 캐싱되었는 지 여부를 결정하는 단계를 포함한다.
상기 방법은, 상기 방법은 특정 데이터 세트가 상기 메모리 내에서 캐싱되지 않았다는 결정에 따라: 상기 메모리 내에 현재 저장된 복수의 데이터 세트들에 연관된 복수의 속성들-상기 복수의 속성들은 적어도, 복수의 데이터 세트들 내의 데이터 세트들의 개수 및 복수의 데이터 세트들의 전체 사이즈를 포함함-을 결정하는 단계; 상기 복수의 속성들이 상기 메모리 내에 특정 데이터를 저장하기 위한 데이터 캐싱 기준을 만족하는 지 여부를 결정하는 단계; 및 상기 데이터 캐싱 기준이 만족되지 않았다는 결정에 따라: 데이터 대체 규칙에 따라 복수의 데이터 세트들 중 하나 이상을 선택하는 단계; 선택된 데이터 세트의 적어도 일부를 상기 메모리로부터 삭제하는 단계; 및 상기 특정 데이터 세트를 원격 소스로부터 다운로딩하는 단계를 더 포함한다. 상기 특정 데이터의 적어도 일부를 상기 메모리 내에 저장하는 단계; 및 사용자 명령어에 따라 상기 특정 데이터를 동작시키는 단계를 더 포함한다.
본 발명의 다른 양태는 하나 또는 그 이상의 프로세서들; 및 그 상에 저장되는 명령어들을 포함하는 클라이언트 디바이스로서, 하나 또는 그 이상의 프로세서들에 의해 실행될 때 상기 프로세서가 특정 데이터 세트를 기초로 동작을 수행하라는 명령어를 수신하는 동작을 수행하게 하고 특정 데이터 세트가 메모리 내에 캐싱되었는지 여부를 결정하는, 클라이언트 디바이스이다. 상기 클라이언트 디바이스 내의 프로세서들은 추가로 특정 데이터 세트가 상기 메모리 내에서 캐싱되지 않았다는 결정에 따라: 상기 메모리 내에 현재 저장된 복수의 데이터 세트들에 연관된 복수의 속성들-상기 복수의 속성들은 적어도, 복수의 데이터 세트들 내의 데이터 세트들의 개수 및 복수의 데이터 세트들의 전체 사이즈를 포함함-을 결정하고; 상기 복수의 속성들이 상기 메모리 내에 특정 데이터를 저장하기 위한 데이터 캐싱 기준을 만족하는 지 여부를 결정하고; 추가로 상기 데이터 캐싱 기준이 만족되지 않았다는 결정에 따라: 데이터 대체 규칙에 따라 데이터 세트들 중 하나 이상을 선택하고; 선택된 데이터 세트의 적어도 일부를 상기 메모리로부터 삭제하고; 및 상기 특정 데이터 세트를 원격 소스로부터 다운로딩하는 동작을 수행한다. 상기 클라이언트 디바이스 내의 프로세서들은 추가로 상기 특정 데이터의 적어도 일부를 상기 메모리 내에 저장하고 및 사용자 명령어에 따라 상기 특정 데이터를 동작시키는 것을 수행한다.
본 발명의 다른 양태는, 그 상에 저장되는 명령어들을 포함하며, 하나 또는 그 이상의 프로세서들에 의해 실행될 때 상기 프로세서가 특정 데이터 세트를 기초로 동작하라는 명령어를 수신하게 하고 특정 데이터 세트가 메모리 내에 캐싱되었는 지 여부를 결정하는 동작들을 수행하게 하는 비일시적인 컴퓨터에서 판독가능한 매체로서, 그 클라이언트 디바이스 내의 프로세서들은 특정 데이터 세트를 기초로 동작하라는 명령어를 수신하고; 상기 특정 데이터 세트가 상기 메모리 내에서 캐싱되었는 지 여부를 결정하고; 특정 데이터 세트가 상기 메모리 내에서 캐싱되지 않았다는 결정에 따라: 상기 메모리 내에 현재 저장된 복수의 데이터 세트들에 연관된 복수의 속성들-상기 복수의 속성들은 적어도, 복수의 데이터 세트들 내의 데이터 세트들의 개수 및 복수의 데이터 세트들의 전체 사이즈를 포함함-을 결정하고; 상기 복수의 속성들이 상기 메모리 내에 특정 데이터를 저장하기 위한 데이터 캐싱 기준을 만족하는 지 여부를 결정하고; 및 상기 데이터 캐싱 기준이 만족되지 않았다는 결정에 따라: 데이터 대체 규칙에 따라 데이터 세트들 중 하나 이상을 선택하고; 선택된 데이터 세트의 적어도 일부를 상기 메모리로부터 삭제하고; 및 상기 특정 데이터 세트를 원격 소스로부터 다운로딩하는 동작을 추가로 수행한다.
다른 실시예들 및 이점들은 본 명세서 내의 기술 내용들과 도면들을 참조하여 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다.
앞서 기술한 본 발명의 특징들 및 이점들뿐만 아니라 그 추가적인 특징들 및 이점들은 이후의 도면들과 결부되는 바람직한 실시예들의 상세한 기술 내용에 의하여 더 명백하게 이해될 것이다.
도 1a 및 1b는 본 발명 내의 몇몇 실시예들에 따른 예시적인 컴퓨터에서 구현되는 데이터 캐싱 방법에 대한 순서도를 도시한다.
도 2는 본 발명 내의 다양한 실시예들에 따른 오디오 클립들을 재생하는 목적을 위한 예시적인 컴퓨터에서 구현되는 오디오 데이터 캐싱 방법에 대한 순서도를 도시한다.
도 3은 본 발명 내의 다양한 실시예들에 따른 예시적인 데이터 캐싱 시스템의 블록도를 도시한다.
도 4는 본 발명 내의 다양한 실시예들에 따른 예시적인 클라이언트 디바이스의 블로도를 도시한다.
유사한 식별 부호는 도면들의 여러 모습들을 통틀어 상응하는 부분들을 참조한다.
첨부된 도면에서 도시되는 예시들, 실시예들에 대하여 상세한 참조가 이제 이루어질 것이다. 이하의 상세한 설명에서, 본 명세서에서 제시되는 주요 사상의 완전한 이해를 제공하기 위하여 많은 세부 사항들이 기술된다. 그러나, 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 이러한 세부 사항들 없이도 실시될 수 있음은 명백할 것이다. 다른 예에서, 실시예들의 양태(aspects)를 불필요하게 모호하게 하지 않기 위해, 널리 알려진 방법들, 절차들, 구성들, 및 회로들은 상세히 기술되지 않았다.
본 발명에서 구현될 수 있는 세부적인 실시예들을 예시하기 위하여, 후술되는 각각의 실시예의 기술 내용들은 첨부된 도면들을 참조하여 이루어진다. 본 발명에서 언급되는 방향에 대한 단어들, 예를 들어, "상부(upper)", "lower(하부)", "전방(front)", "후방(back)", "좌측(left)", "우측(rign)", "내부(inner)", "외부(outer)", 및 "측면(side surface)"은 오직 첨부된 도면들에서의 방향들을 참조할 뿐이다. 그러므로, 사용된 방향에 대한 단어들은 본 발명을 예시하거나 이해하기 위하여 사용되며, 본 발명을 제한하기 위한 거이 아니다. 도면들에서, 유사한 구조를 갖는 유닛(unit)들은 동일한 식별 부호에 의해 표현된다.
도 1a 및 도 1b는 본 발명의 몇몇 실시예들에 따른 캐싱 데이터(caching data)의 예시적인 컴퓨터 구현 방법(100)에 대한 순서도를 도시한다. 방법(100)은, 선택적으로, 비일시적인 컴퓨터에서 판독가능한 저장 매체(non-transitory computer readable storage medium)에 저장되며 클라이언트 디바이스의 하나 또는 그 이상의 프로세서들에 의해 실행되는 명령어들(instructions)에 의해 운용된다. 도 1a 및 도 1b에 도시된 각각의 동작들은 컴퓨터 메모리 또는 비일시적인 컴퓨터에서 판독가능한 저장 매체 또는 컴퓨터 메모리 내에 저장된 명령어들 또는 프로그램들에 상응할 수 있다. 컴퓨터에서 판독가능한 저장 매체는 자기 또는 광학 디스크 저장 디바이스, 플래시 메모리와 같은 솔리드 스테이트 저장 디바이스(Solid state Storage Device), 또는 다른 비휘발성 메모리 디바이스 또는 디바이스들을 포함할 수 있다. 컴퓨터에서 판독가능한 저장 매체 상에 저장된 명령어들은 하나 또는 그 이상의: 소스 코드, 어셈블리 언어 코드, 오브젝트 코드, 또는 하나 또는 그 이상의 프로세서들에 의해 해석되는 다른 명령어 포맷을 포함할 수 있다. 방법(100) 내의 몇몇 동작들은 조합될 수 있고, 및/또는 몇몇 동작들의 순서는 변경될 수 있다.
방법(100)은 클라이언트 디바이스에 의해 수행되며, 클라이언트 디바이스는 데스크탑 또는 랩탑 컴퓨터, 휴대폰, 테블릿 컴퓨터, 또는 개인용 정보 단말기(Personal Digital Assistance, "PDA")를 바람직하게 포함하나, 이에 제한되지 않는다. 몇몇 구현예들에서, 명령어는 음악을 재생하는 클라이언트 디바이스에 설치된 소프트웨어 어플리케이션의 일부이고, 이에, 특정한 데이터 세트는 소프트웨어 어플리케이션에 의해 재생되는 오디오 데이터를 포함한다. 구체적인 예시로서, 특정 데이터 세트는 특정 노래에 대한 오디오 클립에 연관된다. 유사하게, 몇몇 다른 구현예들에서, 명령어는 일정한 비디오 클립을 재생하기 위하여 사용되고, 특정 데이터 세트는 그 비디오 클립에 대한 비디오 데이터를 포함한다. 대안적으로, 몇몇 구현예들에서, 명령어는 음성 메시지를 처리하기 위해 사용되고, 특정 데이터 세트는 그 음성 메시지에 대한 음성 데이터를 포함한다.
명령어를 수신한 이후에, 클라이언트 디바이스는 특정 데이터 세트가 그 메모리 내에 캐싱되었는(cached) 지 여부를 결정한다(104). 몇몇 상황 하에서, 특정 데이터 세트는 이미 메모리 내에 캐싱된 것으로 결정된다. 캐싱된 특정 데이터 세트는 이후 명령어의 실행을 위하여 메모리로부터 추출된다(extracted).
그러나, 특정 데이터 세트가 메모리 내에 캐싱되지 않은 것으로 결정된 때(106), 클라이언트 디바이스는 메모리 내에 현재 저장된 복수의 데이터 세트들에 연관된 복수의 속성들(attributes)을 추가로 결정한다(106). 복수의 속성들은 적어도 그 복수의 데이터 세트들 내의 데이터 세트들의 수(§the number of 오기 추정) 및 복수의 데이터 세트들의 전체 사이즈를 포함한다. 몇몇 구현예들에서, 복수의 데이터 세트들의 각각은 메모리 내의 임시 파일 내에 캐싱된다. 선택적으로, 복수의 데이터 세트들은 상응하는 소프트웨어 어플리케이션에 연관된 데이터 세트들을 캐싱하기 위해 할당된 가용한 메모리 공간의 일부 또는 전부를 점유한다.
복수의 속성들을 결정한 이후에, 클라이언트 머신은 복수의 속성들이 메모리 내에 특정 데이터 세트를 저장하기 위한 데이터 캐싱 기준(data caching criteria)을 만족하는 지 여부를 결정한다(110). 이러한 데이터 캐싱 기준은 클라이언트 디바이스가 더 많은 데이터 세트들을 기존의 데이터 세트들의 관점에서 그 메모리 내에 저장할 수 있는 지 여부를 결정하는 것을 나타낸다. 데이터 캐싱 기준의 구체적인 예시로서, 복수의 데이터 세트들의 데이터 세트들의 수는 임계 개수보다 작을 것을 요구하고, 복수의 데이터 세트들의 전체 사이즈가 상응하는 소프트웨어 어플리케이션의 데이터 세트들을 캐싱하기 위해 할당된 메모리의 전체 사이즈에 연관된 다른 임계치 를 초과할 수 없다. 몇몇 실시예들에서, 임계 개수는 복수의 데이터 세트들 내의 데이터 세트들의 개수에 대해 10으로 설정되고, 상응하는 소프트웨어 어플리케이션의 데이터 세트들을 캐싱하기 위한 메모리의 할당된 전체 사이즈는 100 메가 바이트(MB)이다. 그러므로, 복수의 데이터 세트들의 전체 사이즈는, 메모리의 할당된 전체 사이즈, 예를 들어, 100MB를 메모리 내에 저장될 특정 데이터 세트의 일부 또는 전부의 사이즈까지 공제함(deducting)으로써 계산되는 임계치 미만으로 제어하여야 한다.
몇몇 상황들에서, 데이터 캐싱 기준은 복수의 속성들(예를 들어, 복수의 데이터 세트들의 전체 사이즈 및 데이터 세트들의 개수)에 의해 만족된다. 충분한 메모리 공간은, 이미 메모리 내에 저장된 복수의 데이터 세트들 및 저장되기를 기다리는 특정 데이터 세트 모두를 저장할 수 있다. 특정 데이터 세트는 이에 메모리 내에 캐싱된 어떠한 복수의 데이터 세트들도 제거하지 않고 메모리 내에 저장되거나 캐싱될 수 있다.
다른 한편으로, 데이터 케싱 기준이 복수의 속성들에 의해 만족되지 않을 때(112), 일련의 동작들이 본 명세서에 기술된 바와 같이 구현된다. 클라이언트 디바이스는 데이터 대체 규칙(data replacement rule)에 따라 복수의 데이터 세트들 중 하나 이상을 선택한다(114). 선택된 데이터 세트의 적어도 일부는 특정 데이터 세트가 저장될 수 있도록 다소의 메모리 공간을 비우기 위해 메모리로부터 삭제된다(116). 이후에, 특정 데이터 세트는 이어 원격 소스(remote source), 예를 들어, 통신 서비스 제공자(communication service provider)에 의해 소유된 뮤직 서버, 비디오 서버, 및 메시지 서버로부터 다운로드 된다(118).
추가로, 특정 데이터 세트를 원격 소스로부터 다운로드 하자마자, 클라이언트 디바이스는, 그 메모리 내의 특정 데이터의 적어도 일부를 저장하고(120), 예를 들어, 어플리케이션 프로그램을 사용한 음악 재생과 같은 사용자 명령어에 따른 특정 데이터 세트를 작동한다(122). 몇몇 실시예들에서, 특정 데이터 세트의 일부는 특정 데이터 세트의 제1 서브 세트를 포함한다(124). 이어, 특정 데이터 세트의 일부가 특정 완전한 특정 데이터 세트를 포함하는지 여부를 결정한다(126). 특정 데이터 세트의 일부가 완전한 특정 데이터 세트를 포함하는 것이 아니라는 결정에 따라, 클라이언트 디바이스는 특정 데이터 세트의 제1 서브 세트를 기초로 명령어를 실행하는(126) 동시에 특정 데이터 세트의 제2 서브 세트를 캐싱한다(128).
데이터 대체 규칙은 복수의 데이터 세트들의 데이터 세트가, 일부 메모리 공간이 특정 데이터 세트를 캐싱하기 위하여 비워지도록, 삭제될 필요가 있는지 여부를 결정한다. 본 발명의 여러 실시예들에 따르면, 기본(default) 데이터 대체 규칙은 상응하는 소프트웨어 어플리케이션이 클라이언트 디바이스 상에 설치될 때에 미리 결정되고, 사용자는 기본 데이터 대체 규칙을 삭제하거나 변경함으로써 또는 하나 또는 그 이상의 맞춤(custom) 데이터 대체 규칙을 부가함으로써 소프트웨어 어플리케이션의 설정들을 선택적으로 변경할 수 있다.
몇몇 구현예들에서, 데이터 대체 규칙은 현재 클라이언트 디바이스의 메모리 내에 저장된 하나 또는 그 이상의 데이터 세트들이 선택되거나 삭제되는 것을 사용자가 면제하도록 한다. 다른 관점으로 볼 때, 사용자는 클라이언트 디바이스의 메모리 내에 현재 캐싱된 데이터 세트들의 리스트가 복수의 데이터 세트들 내에 포함되지 않는 것으로 결정하는 옵션(option)을 가지며, 이로써, 데이터 세트들의 리스트 내의 데이터 세트들이 데이터 대체 규칙에 따라 선택되지 않거나 특정 데이터 세트를 위해 메모리 공간으로부터 비워지도록 삭제되지 않는다. 하나의 예시에서, 중요한 음성 메시지는 많은 다른 메시지들에 비해 매우 이전 시간에 저장되었고 긴 시간 구간동안 리스트에 기록(listened)되지 않았을 지라도, 중요한 음성 메시지는 언제나 선택되지 않거나 삭제되지 않을 수 있다. 유사하게, 다른 예시에서, 어머니는 자식의 노래를 그녀의 휴대폰에 오랜 기간 동안 저장할 수 있다. 비록 그녀가 그녀의 아이를 위해 그 노래를 최근에 재생하지 않았더라도, 그녀는 아이가 요청하면 언제라도 이 노래를 재생할 수 있게 유지하는 것을 원한다. 그러므로, 다른 노래가 국부적으로 다운로드되고 저장될 필요가 있을 때, 어머니는 이러한 특정 노래가 선택되거나 삭제되는 것을 방지하도록 그녀의 휴대폰 내의 데이터 대체 규칙을 구성할 수 있다.
본 발명의 다양한 실시예들에 따르면, 데이터 대체 규칙은, 개별적 사이즈, 캐싱 시간, 사용 빈도, 가장 최근 사용의 시간, 및 복수의 데이터 세트들 내의 각각의 데이터 세트의 많은 다른 관련 특징들을 포함하는 하나 또는 그 이상의 인자들(factors)을 기초로 수식화된다(formulated). 예를 들어, 몇몇 구현예들에서, 특정 데이터 세트는 제1 데이터 세트를 구성하고, 복수의 데이터 세트들은 복수의 데이터 세트들 내의 다른 데이터 세트들 보다 먼저 메모리 내에 캐싱된 제2 데이터 세트를 포함한다. 데이터 대체 규칙에 따라, 제2 데이터 세트는 선택되고, 제2 데이터 세트의 적어도 일부가 메모리 내에 제1 데이터 세트의 일부를 캐싱하기 위한 메모리 공간을 비우기 위해 삭제된다.
선택적으로, 몇몇 구현 예들에서, 특정 데이터 세트의 사이즈는 복수의 데이터 세트들 내의 하나 이상의 데이터 세트의 개별적인 사이즈 보다 작고, 그 하나 이상의 데이터 세트는 특정 데이터 세트 보다 개별적으로 큰 사이즈를 갖는다. 데이터 대체 규칙에 따라, 제3 데이터 세트가 그 하나 이상의 데이터 세트로부터 선택되며 이는 제3 데이터 세트는 특정 데이터 세트의 사이즈에 가장 가까운 사이즈를 갖기 때문이다.
선택적으로, 몇몇 구현 예들에서, 특정 데이터 세트는 제1 데이터 세트를 포함하고, 복수의 데이터 세트는 아직 사용되지 않거나 복수의 데이터 세트들 주에서 가장 긴 기간 동안 접근되지(accessed) 않은 제4 데이터 세트를 포함한다. 데이터 대체 규칙에 따라, 제4 데이터 세트가 선택되고, 제4 데이터 세트의 적어도 일부가 메모리 내의 제1 데이터 세트의 부분을 캐싱하기 위한 메모리 공간을 비우기 위해 삭제된다. 선택적으로, 몇몇 구현 예들에서, 데이터 대체 규칙에 따라, 개별적인 실행 빈도가 복수의 데이터 세트들의 각각의 데이터 세트에 대하여 추적되고, 선택된 데이터 세트는 복수의 데이터 세트들 중에서 가장 낮은 사용 빈도를 갖는다.
도 1a 내지 도 1b내에서 기술되는 동작들의 특정한 순서는, 단지 예시적인 것이며, 기술된 순서가 동작들이 수행될 수 있는 유일한 순서를 나타내는 것을 의도하지는 않는 것으로 이해되어야 할 것이다. 본 기술 분야에서 통상의 지식을 가진 자라면 본 명세서에 기술된 바와 같이 특정 데이터를 캐싱하며 분배하기 위한 다양한 방법을 인식할 것이다.추가로, 본 명세서에서 방법(200)(예를 들어, 도2)를 참조하여 기술되는 다른 프로세스들의 세부 내용들은 또한 앞서 도1a 및 1b를 참조하여 기술된 방법(100)과 유사한 방식으로 적용가능하다. 간결성을 위해, 이러한 세부 내용은 여기서 반복 기술되지 않는다.
다른 관점으로 볼 때, 특정 데이터 세트가 클라이언트 디바이스 내에 저장된 이후에, 특정 데이터 세트는 복수의 데이터 세트들 내에 포함되는 하나의 데이터 세트가 된다. 다음에, 특정 데이터 세트를 동작시키는 명령어에 대한 응답으로서, 그 것들은 클라이언트 디바이스의 메모리로부터 직접 추출되며, GPRS를 통해 수신되는 것은 아니다. 그러므로, GPRS의 대역폭은 더 효육적인 방식으로 보존되며 관리되고, 이때, 데이터 로딩(loading)을 위한 대기 시간 역시 특정 데이터 세트의 그러한 로컬 추출에 따라 줄어든다.
도 1b에 도시된 바와 같은 몇몇 구현 예들에서, 특정 데이터 세트는 동적 데이터 저장(dynamic data storage)를 위해 다수의 데이터 서브 세트들로(예를 들어, 제1 서브 세트 및 제2 서브 세트) 쪼개어 진다. 그러한 실시예들은 특정 데이터 세트가 큰 데이터 부피를 가질 때 또는 남아있는 가용한 메모리 공간이 특정 데이터 세트의 전체 세트를 수용하기 위해 제한될 때에 특히 유용하다. 특정 데이터 세트의 제1 및 제2 서브 세트들은 중단점(break point)에서 분할된다(segmented). 동작(128) 에서의 동시 동작들 동안에, 중단점이 이러한 중단점으로부터 특정 데이터 세트의 캐싱을 시작하기 위하여 식별된다. 그러므로, 메모리 내에 존재하는 특정 데이터 세트의 제1 서브 세트는 다시 다운로드 됨이 없이 명령어를 실행하기 위하여 여전히 사용되고, 이 때, 특정 데이터의 제2 서브 세트는 백그라운드 태스크(background task)로서 다운로드 된다. 이러한 동시 배열관계는 특정 데이터 세트의 제2 서브 세트를 다운로드하며 저장하기 위한 충분한 시간을 확보하고, 사용자의 대기 시간을 감소시키고, 궁극적으로 상응하는 소프트웨어 어플리케이션의 사용자 경험을 향상시키는 목적을 달성한다.
또한, 클라이언트 디바이스는 데이터 캐싱 기준 및 데이터 대체 규칙(들)을 기초로 동적 데이터 저장 프로세스를 선행적으로(proactively) 유지할 수 있다. 선택적으로, 클라이언트 디바이스의 사용자는 요구하는 옵션들을 가능케 하거나 상응하는 소프트웨어 어플리케이션을 실행하는 과정 중에 및 그 전에 맞춤(custom) 기준 및 규칙을 정의한다. 선택적으로, 기본 기준 및 규칙들의 세트가 동적 데이터 저장 프로세스를 관리하기 위하여 미리결정되며 신용된다(relied on). 그러므로, 사용자는 특정한 소프트웨어 어플리케이션을 위하여 클라이언트 디바이스의 메모리 내에 저장된 복수의 데이터 세트들 내의 개별적인 데이터 세트들을 수동으로 관리할 필요가 없다. 이에 따라, 사용자 개입(intervention)이 줄어들고, 이로써, 사용자 경험이 더 향상된다.
도 2는 본 발명 내의 다양한 실시예들에 따른 오디오 클립들을 재생하는 목적을 위해 오디오 데이터를 캐싱하는 예시적인 컴퓨터 구현 방법에 대한 순서도를 도시한다. 방법(200)은, 선택적으로, 비일시적인 컴퓨터에서 판독가능한 저장 매체 내에 저장되며 클라이언트 디바이스의 하나 또는 그 이상의 프로세서들에 의해 실행되는 명령어들에 의해 운용된다. 도 2 내에 도시된 각각의 동작들은 컴퓨내 메모리 또는 비일시적인 컴퓨터에서 판독가능한 저장 매체 내에 저장된 프로그램들 또는 명령어들에 상응할 수 있다. 컴퓨터에서 판독가능한 저장 매체는 자기 또는 광학 디스크 저장 디바이스, 플래시 메모리와 같은 솔리드 스테이트 저장 디바이스(Solid state Storage Device), 또는 다른 비휘발성 메모리 디바이스 또는 디바이스들을 포함할 수 있다. 컴퓨터에서 판독가능한 저장 매체 상에 저장된 명령어들은 하나 또는 그 이상의: 소스 코드, 어셈블리 언어 코드, 오브젝트 코드, 또는 하나 또는 그 이상의 프로세서들에 의해 해석되는 다른 명령어 포맷을 포함할 수 있다. 방법(200) 내의 몇몇 동작들은 조합될 수 있고, 및/또는 몇몇 동작들의 순서는 변경될 수 있다.
방법(100)과 유사하게, 방법(200)은 클라이언트 디바이스에 의해 또한 수행되며, 클라이언트 디바이스는 데스크탑 또는 랩탑 컴퓨터, 휴대폰, 테블릿 컴퓨터, 또는 개인용 정보 단말기(Personal Digital Assistance, "PDA")를 바람직하게 포함하나, 이에 제한되지 않는다. 특히, 방법(200)은 클라이언트 디바이스 상에 설치된 소프트웨어 어플리케이션(예를 들어, 음악 플레이어)을 위한 오디오 데이터를 캐싱하도록 구현되는 일련의 동작들을 예시한다. 클라이언트 디바이스는 오디오 데이터의 세트를 기초로 오디오 클립을 재생하라는 재생 명령어를 수신한다(201). 몇몇 실시예들에서, 오디오 클립은 노래 도는 음성 메시지에 연관된다. 하나의 세부적인 예시에서, 재생 명령어는 클라이언트 디바이스의 사용자가 "Great China"라는 이름의 노래를 선택할 때 발행되고, 클라이언트 디바이스는 원격 소스, 예를 들어, 음악 서버로부터 통신 네트워크를 통해 상응하는 오디오 데이터를 획득한다.
본 발명의 다양한 실시예들에서, 클라이언트 디바이스는 오디오 데이터를 상이한 수단들에 의해 획득한다. 몇몇 실시예들에서, 클라이언트 디바이스가 휴대폰일 때, 클라이언트 디바이스는, 무선 네트워크 또는 Wi-fi 네터워크를 통해 인터넷에 통신상으로 연결되고, 인터넷을 통해 일반 패킷 무선 서비스(General Packet Radio Service, "GPRS")를 기초로 상응하는 오디오 데이터를 수신한다.
재생 명령어를 수신한 이후에, 클라이언트 머신은 특정 클립의 오디오 데이터의 세트가 클라이언트 디바이스의 메모리 내에 국부적으로 캐싱되었는 지 여부를 결정한다(202). 한편으로, 오디오 데이터의 세트가 클라이언트 디바이스 내에 국부적으로 캐싱되었는 지 여부를 결정하자마자, 재생 명령어에 대한 오디오 데이터의 세트가 완전한 지 여부를 추가로 결정한다(203). 몇몇 상황들에서, 오디오 데이터의 세트가 완전하지 않은 때에, 클라이언트 디바이스 상의 상응하는 미디어 플레이어는 클라이언트 머신에서 현재 캐싱된 오디오 데이터의 제1 서브 세트를 재생하는(204) 동시에, 그 메모리 내에 아직 저장되지 않은 오디오 데이터의 제2 서브 세트를 다운로드한다(204). 오디오 데이터의 제1 서브 세트 및 오디오 데이터의 제2 서브 세트는 오디오 데이터의 완전한 세트를 형성한다. 그러나, 몇몇 다른 상황들에서, 오디오 데이터의 세트는 메모리 내에 국부적으로 캐싱되고, 오디오 데이터의 세트는 완전하다. 상응하는 미디어 플레이어는 재생 명령어에 따라 클라이언트 디바이스로부터 오디오 데이터를 재생한다(205).
다른 한편으로, 오디오 데이터 세트가 클라이언트 디바이스 내에 국부적으로 캐싱되지 않은 때에, 오디오 데이터의 세트는 재생 명령어를 실행하는 목적을 위하여 원격 소스로부터 다운로드되고(206), 이어, 미디어 플레이어는 재생 명령어에 따라 클라이언트 디바이스로부터 오디오 데이터를 재생한다(205).
몇몇 구현 예들에서, 오디오 데이터의 세트는 다운로드 될 뿐만 아니라, 클라이언트 디바이스의 메모리 내에 저장되거나 캐싱된다. 오디오 데이터의 세트를 다운로드하는 과정 동안, 클라이언트 디바이스는 또한 오디오 데이터의 세트를 수신한다(207). 클라이언트 디바이스는 클라이언트 디바이스에 현재 저장된 다른 오디오 데이터 세트들에 대하여 복수의 속성들이 데이터 캐싱 기준을 만족하는 지 여부를 결정한다(208). 더 정확하게, 데이터 캐싱 기준은 클라이언트 디바이스가 기존의 오디오 데이터 세트들의 관점에서 더 많은 오디오 데이터 세트들을 저장할 수 있는 지 여부를 결정하는 것을 나타낸다. 앞서 설명된 바와 같이, 몇몇 구현 예들에서, 메모리 내에 현재 저장된 오디오 데이터 세트들 내의 데이터 세트들의 개수는 임계 개수보다 작을 것을 요구하고, 이러한 저장된 오디오 데이터 세트들의 전체 사이즈가 상응하는 미디어 플레이어의 오디오 데이터 세트들을 캐싱하기 위해 할당된 메모리의 전체 사이즈에 연관된 다른 임계치 를 초과할 수 없다. 간결성을 위하여, 메모리 내에 저장된 오디오 데이터에 대한 다른 임계치들 및 임계 개수에 관한 이러한 세부 사항들은 여기서는 반복되지 않는다.
클라이언트 디바이스에 현재 저장된 다른 오디오 데이터 세트들에 대한 복수의 속성들이 데이터 캐싱 기준을 만족하는 것으로 결정될 때, 국부적으로 저장되거나 캐싱되는 것에 필요한 오디오 데이터의 세트의 적어도 일부를 저장하기 위해 충분한 메모리 공간이 가용하고, 오디오 데이터의 세트의 일부는 이로써 클라이언트 디바이스 내에 캐싱된다(210).
반면에, 클라이언 디바이스에 현재 저장된 다른 오디오 데이터 세트들에 대한 복수의 속성들이 데이터 캐싱 기준을 만족하지 않을 때에, 기존의 오디오 데이터 중 하나 이상의 세트의 적어도 일부는 클라이언트 디바이스의 메모리로부터 삭제되고(209), 특히, 기존의 오디오 데이터의 하나 이상의 세트가 데이터 대체 규칙에 따라 선택된다(209). 기존의 오디오 데이터의 선택된 세트의 일부가 삭제된 때에, 오디오 데이터의 세트의 적어도 일부는 이로써 클라이언트 디바이스 내에 캐싱된다(210). 데이터 대체 규칙에 대한 더 많은 세부 내역 및 예시들은 도 1 내의 동작(114)을 참조하여 앞서 설명되었다.
또한, 몇몇 구현 예들에서, 재생될 필요가 있는 오디오 클립에 대한 오디오 데이터 세트는 동적 데이터 저장을 위하여 다수의 데이터 세브 세트들(예를 들어, 제1 서브 세트 및 제2 서브 세트)로 쪼개진다. 특정 데이터 세트의 제1 및 제2 서브 세트들은 중단점에서 분할된다. 재생 명령어에 대한 오디오 데이터의 세트가 동작(203)에서 완전하지 않다는 결정에 따라, 중단점은 동작(204) 내에서 중단점으로부터 오디오 데이터 세트의 캐싱을 시작하기 위해 식별된다. 그러므로, 메모리 내에 존재하는 오디오 클립의 제1 서브 세트는 원격 소스로부터 다시 다운로드됨이 없이 미디어 플레이어에 의해 즉각 재생되고, 오디오 클립의 제2 서브 세트는 백그라운드 테스크로서 동시에 다운로드된다. 이러한 동시적인 데이터 스트리밍 배열관계는 오디오 데이터 세트의 제2 서브 세트를 다운로드하며 저장하기 위한 충분한 시간을 확보한다. 미디어 플레이어를 사용하는 사용자의 관점으로 볼 때, 오디오 클립은 짧거나 무시할만한 대기 시간 내에 즉각 재생되고, 사용자 경험들은 상응하는 소프트웨어 어플리케이션에서 향상된다.
몇몇 실시예들에서, 개별적인 오디오 데이터의, 완전한 세트가 아닌, 제1 서브 세트는, 오디오 클립이 클라이언트 디바이스의 메모리 내에 국부적으로 다운로드 되고 저장될 것을 필요로 하는 모든 시간마다 저장된다. 개별적인 클립을 재생하라는 명령어에 응답하여, 개별적인 오디오 데이터 세트의 제1 서브 세트는 재생을 위해 즉각 로딩되나, 개별적인 오디오 데이터의 하나 또는 그 이상의 서브 세트들은 원결 소스로부터 옮겨질 것이 필요하며, 이 때, 클라이언트 디바이스의 통신 대역폭의 일부가 점유된다. 그러나, 짧아진 대기 시간 및 향상된 사용자 경험은 이러한 동시 데이터 스트리밍 배열관계에 의해 지속적으로 유지된다.
몇몇 구현 예들에서, 저장되면, 오디오 데이터의 세트 또는 메모리 내에 현존하는 기존의 오디오 데이터 세트들 각각은 임시 파일(temporary file)의 형태로 저장된다.
도 2 내에서 기술되는 동작들의 특정한 순서는, 단지 예시적인 것이며, 기술된 순서가 동작들이 수행될 수 있는 유일한 순서를 나타내는 것을 의도하지는 않는 것으로 이해되어야 할 것이다. 본 기술 분야에서 통상의 지식을 가진 자라면 본 명세서에 기술된 바와 같이 특정 데이터를 캐싱하며 분배하기 위한 다양한 방법을 인식할 것이다. 또한, 본 명세서에서 방법(200)(예를 들어, 도 2)을 참조하여 설명되는 다른 프로세스들의 세부 내용들은 앞서 도 1을 참조하여 설명된 방법(100)과 유사한 방식으로 또한 적용가능한 것을 유념하여야 한다.
도 3은 본 발명 내의 다양한 실시예들에 따른 예시적인 데이터 캐싱 시스템(300)의 블록도를 도시한다. 데이터 캐싱 시스템(300)은 명령어 수신 모듈(301), 결정 모듈(302), 재생 모듈(303), 다운로딩 모듈(304), 데이터 수신 모듈(305), 및 프로세싱 모듈(306)을 포함한다.데이터 캐싱 시스템(300)은 특정 데이터 세트를 기초로 동작하라는 명령어를 수신하고, 특정 데이터 세트를 식별하여 프로세싱하고, 이후 그 명령어를 실행한다. 많은 구현 예들에서, 데이터 캐싱 시스템(300)은 재생 명령어에 따라 오디오 클립을 재생하는 미디어 플레이어에 연관된다.
미디어 플레이어에 관한 몇몇 구현 예들에서, 명령어 구현 모듈(301)은 재생 명령어를 수신하고, 이러한 재생 명령어는 오디오 클립의 오디오 데이터 세트에 상응한다. 결정 모듈(302)는 재생 명령어에 상응하는 오디오 데이터 세트가 클라이언트 디바이스 내에 저장되었는 지 여부를 결정한다. 만일 결정 모듈(302)이 재생 명령어에 상응하는 오디오 데이터 세트가 클라이언트 디바이스 내에 저장된 것으로 결정하면, 재생 모듈(303)은 재생을 위하여 클라이언트 디바이스의 메모리로부터 상응하는 오디오 데이터를 추출한다. 반면에, 만일 결정 모듈(302)가 재생 명령어에 상응하는 오디오 데이터 세트가 클라이언트 디바이스 내에 저장되지 않은 것으로 결정하면, 다운로딩 모듈(304)는 음악 서버와 같은 원격 소스로부터 재생 명령어에 상응하는 오디오 데이터를 다운로드한다.
몇몇 실시예들에서, 결정 모듈(302)는 재생 명령어에 상응하는 오디오 데이터 세트가 상응하는 오디오 클립을 재생하는 목적을 위해 완전한지 여부를 추가로 결정한다. 만일 오디오 데이터 세트가 완전하지 않다면, 재생 모듈(303)이 클라이언트 디바이스 내에 저장된 오디오 데이터 세트의 제1 서브 세트를 재생 할 때에, 다운로딩 모듈(304)는 클라이언트 디바이스 내에서 가용하지 않은 오디오 데이터 세트의 제2 서브 세트를 다운로드한다. 선택적으로, 오디오 데이터 세트의 제1 서브 세트 및 제2 서브 세트는 완전한 오디오 데이터 세트를 형성한다.
다운로딩 모듈(304)이 오디오 데이터 세트를 다운로드한 이후에, 데이터 수신 모듈(305)는 오디오 데이터 세트를 수신하며 그것을 국부적인 캐싱 및 저장을 위해 준비한다. 결정 모듈(302)은 클라이언트 디바이스 내에 현재 저장된 다른 오디오 데이터 세트들에 대한 복수의 속성들이 데이터 캐싱 기준을 만족하는 지 여부를 추가로 결정한다. 특히, 할당된 메모리 공간은 이러한 다른 오디오 데이터 세트들에 의해 이미 점유될 수 있고, 저장될 필요가 있는 오디오 데이터 세트를 수용하기에 충분한 공간을 제공하지 못할 수 있다. 그러므로, 하나의 세부적인 예시에서, 결정 모듈(302)는 저장될 오디오 데이터 세트 및 클라이언트 디바이스 내에 현재 저장된 이러한 다른 오디오 데이터 세트들의 전체 사이즈가 미리결정된 임계치를 초과하는 지 여부를 결정한다.
위의 세부적인 예시에서 추가로, 만일 결정 모듈(302)가 이러한 오디오 데이터 세트 및 다른 오디오 데이터 세트들의 전체 사이즈가 미리 결정된 임계치를 초과하는 것으로 결정하면, 데이터 프로세싱 모듈(306)은 데이터 대체 규칙에 따라 클라이언트 디바이스의 메모리로부터 다른 오디오 데이터 세트들 중 하나 이상의 세트의 적어도 일부를 삭제하고, 메모리에 저장될 필요가 있는 오디오 데이터 세트의 적어도 일부를 저장한다. 데이터 대체 규칙의 하나의 세부적인 예시에서, 다른 오디오 데이터 세트들 중에서 가장 먼저 저장된 가장 오래된 오디오 데이터 세트가 저장될 필요가 있는 오디오 데이터 세트를 위한 메모리 공간을 비우기 위해 삭제된다. 데이터 대체 규칙들에 대핸 더 많은 예시들 및 세부 내용들은 도 1을 참조하여 앞에서 설명되었다.
비록 본 명세서에서 데이터 캐싱 시스템(300)은 오디오 클립을 재생하는 미디어 플레이어의 일부로서 설명되었지만, 본 발명의 기술 분야에서 통상의 지식을 가진 자는 데이터 캐싱 시스템(300)은 그렇게 제한되는 것이 아니며 상이한 데이터 세트들을 지속적으로 다운로드 하여 저장하는 것을 필요로 하는 임의의 소프트웨어 어플리케이션 내에서 광범위하게 적용될 수 있음을 알 것이다. 데이터 캐싱 시스템(300)이 그러한 소프트웨어 어플리케이션 내에서 사용될 때, 과도한 데이터 다운로딩 없이 사용자에 의한 대기 시간을 감소시키고 사용자 개입을 줄이면서, 그것은 상이한 데이터 세트들의 데이터 캐싱을 선행적으로 관리함으로써 사용자 경험을 증대시킨다.
도 4는 본 발명 내의 다양한 실시예들에 따른 동적으로 데이터를 캐싱하는 예시적인 클라이언트 디바이스(400)의 블록도를 도시한다. 본 발명의 다양한 실시예들에 따르면, 클리이언트 디바이스(400)은 도 1 및 2에 도시된 바와 같은 데이터 캐싱 방법들을 구현하도록 적용된다. 몇몇 구현 예들에서, 클라이언트 디바이스(400)는 적어도, 하나 또는 그 이상의 프로세서들(402)(예를 들어, 중앙 처리 장치) 및 하나 또는 그 이상의 프로세서들(402)에 대한 명령어들 및 프로그램들을 저장하기 위한 메모리(404)를 포함한다. 몇몇 구현 예들에서, 클라이언트 디바이스(400)는 하나 또는 그 이상의 통신 인터페이스들(406), 사용자 인터페이스(408), 및 이러한 구성들을 상호 연결하는 하나 또는 그 이상의 통신 버스들(410)을 더 포함한다.
몇몇 실시예들에서, 입력/ 출력 인터페이스(408)은 디스플레이(408A) 및 키보드(408B), 마우스 또는 트랙 패드와 같은 입력 디바이스들 포함한다. 몇몇 실시예들에서, 통신 버스들(410)은 시스템 구성들 사이의 통신들을 제어하며 상호 연결하는 회로(종종 칩셋으로 일컬어짐)를 포함한다. 몇몇 실시예들에서, 메모리(404)는, DRAM, SRAM, DDR RAM, 또는 다른 랜덤 엑세스 솔리드 스테이트 메모리 디바이스들 같은 고속 랜덤 엑세스 메모리를 포함하고 및 하나 또는 그 이상의 마그네틱 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드 스테이트 저장 디바이스들과 같은 비휘발성 메모리를 선택적으로 포함한다. 몇몇 실시예들에서, 메모리(404)는 하나 또는 그 이상의 프로세서들(402)로부터 원격으로 위치하는 하나 또는 그 이상의 저장 디바이스들을 포함한다. 몇몇 실시예들에서, 메모리(404), 또는 메모리 내의 대안적인 비휘발성 메모리 디바이스(들)은, 비일시적인 컴퓨터에서 판독가능한 저장 매체를 포함한다.
몇몇 실시예들에서, 메모리(404) 또는 메모리(404)의 대안적인 비일시적인 컴퓨터에서 판독가능한 저장 매체는 아래의 프로그램들, 모듈들 및 데이터 구조들, 명령어들, 또는 그 들의 하위 세트들을 포함한다:
- 다양한 기초 시스템 서비스들을 다루기 위하며 하드웨어 종속적인 테스크들을 수행하기 위한 프로시져들을 포함하는 운영 체제(412)
- 하나 또는 그 이상의 네트워크 통신(유선 또는 무선) 인터페이스(408) 및 인터넷, 다른 와이드 에어리어 네트워크들, 로컬 에어리어 네트워크들, 메트로폴리탄 에어리어 네트워크들 등과 같은 하나 또는 그 이상의 통신 네트워크들을 통해 로컬 네트워크 또는 서버들(예를 들어, 원격 음악 서버)을 통해 클라이언트 디바이스(400)를 다른 머신들에 연결하기 위해 사용되는 통신 모듈(414)
- 하나 또는 그 이상의 입력 및 출력 디바이스들을 통해 다양한 기본 입력 및 출력 기능들을 다루기 위한 프로시져들을 포함하는 사용자 인터페이스 모듈(416)
- 소프트웨어 어플리케이션의 명령어들을 실행하여 상이한 데이터 세트들 상에서 동작하는 명령어 실행 모듈(418)
몇몇 구현 예들에서, 명령어 실행 모듈(418)은 클라이언트 디바이스(400) 상에 설치되어 그 상에서 음악을 재생하는 미디어 플레이어와 관련되고, 이로써, 상이한 데이터 세트들은 미디어 플레이어에 의해 재생되는 오디오 데이터 세트들을 포함한다. 이에, 명령어 실행 모듈(418)에서, 미디어 플레이어 내의 각각의 개별적인 명령어들은, 오디오 데이터의 특정 세트를 기초로 구현되며, 하나의 노래, 음성 메시지 또는 임의의 다른 오디오 클립들을 재생한다. 선택적으로, 몇몇 다른 구현 예들에서, 명령어 실행 모듈(418)은 클라이언트 디바이스(400) 상에 설치되어 그 상에서 비디오 클립들을 재생하는 비디오 플레이어에 관련되고, 이로써, 상이한 데이터 세트들은 비디오 플레이어에 의해 재생되는 미디어 데이터 세트들을 포함한다. 이에, 비디오 플레이어 내의 각각의 개별적인 명령어는 비디오 데이터의 특정 세트를 기초로 한다.
소프트웨어 어플리케이션 내의 명령어를 실행하기 위하여, 명령어 실행 모듈(418)은 도 3에서 도시된 바와 같은 데이터 캐싱 시스템을 더 포함한다. 이러한 데이터 캐싱 시스템은 명령어 수신 모듈(301), 결정 모듈(302), 재생 모듈(303), 다운로딩 모듈(304), 데이터 수신 모듈(305), 및 데이터 처리 모듈(306)을 포함한다. 몇몇 구현 예들에서, 명령어 수신 모듈(301)은 특정 데이터 세트를 기초로 동작하기 위하여 실행되는 명령어들을 수신한다. 결정 모듈(302)는 명령어에 상응하는 특정 데이터 세트가 클라이언트 디바이스(400) 내에 저장되어 있는 지 여부를 결정한다. 만일 결정 모듈(302)가, 특정 데이터가 클라이언트 디바이스 내에 저장된 것으로 결정하면, 재생 모듈(303)은 명령어를 실행하기 위하여 클라이언트 디바이스(400)의 메모리로부터 특정 데이터 세트를 획득하고; 만일 결정 모듈(302)가 명령어에 상응하는 특정 데이터 세트가 클라이언트 디바이스(400) 내에 저장되지 않은 것으로 결정하면, 다운로딩 모듈(304)는 통신 네트워크를 통해 원격 소스로부터 특정 데이터 세트를 다운로딩한다.
또한, 몇몇 구현 예들에서, 결정 모듈(302)는 특정 데이터 세트가 명령어를 실행하는 목적을 위하여 완전한지 여부를 추가로 결정한다. 만일 특정 데이터 세트가 완전하지 않고 특정 데이터 세트의 제1 하위 세트가 클라이언트 디바이스 내에 저장되었다면, 재생 모듈(303)은 특정 데이터 세트의 제1 하위 세트를 기초로 명령어를 실행하는 것을 시작하고, 이 때, 다운로딩 모듈(304)은 클라이언트 디바이스(400) 내에서 가용하지 않은 특정 데이터 세트의 제2 하위 세트를 동시에 다운로딩한다. 선택적으로, 특정 데이터 세트의 제1 하위 세트 및 제2 하위 세트는 완전한 특정 데이터 세트를 형성한다.
다운로딩 모듈(304)이 특정 데이터 세트를 다운로딩한 후에, 데이터 수신 모듈(305)은 클라이언트 디바이스(400)의 메모리 내의 저장을 위해 특정 데이터 세트를 수신한다. 결정 모듈(302)은 데이터 캐싱 기준인 클라이언트 디바이스 내에 현재 저장된 복수의 데이터 세트들의 복수의 속성들을 만족하는 지 여부를 추가로 결정한다. 만일 결정 모듈(302)가 데이터 캐싱 기준이 만족된 것으로 결정하면, 데이터 처리 모듈(306)은 데이터 대체 규칙에 따라 선택된 복수의 데이터 세트들 내의 하나의 데이터 세트를 삭제하고 메모리 내에 저장될 필요가 있는 특정 데이터 세트의 적어도 일부를 저장한다. 데이터 캐싱 기준 및 데이터 대체 규칙들에 대한 더 많은 예시들 및 상세 내역은 앞서 도 1을 참조하여 설명되었다.
본 발명의 상세한 설명 및 첨부된 청구항들에서 사용된 바와 같이, 용어 "캐시(cache)" 및 "저장(store)"은 교환가능하고, 이것들은 서로가 완전히 다른 것은 아니다. "캐시" 및 "저장"의 개별적인 변형들 또한 교환가능하다.
특정한 실시예들이 앞서 기술되었으나, 그것은 본 발명은 그러한 특정 실시예들로 제한하는 의도가 아닌 것으로 이해될 것이다. 반면에, 본 발명은 부가 기술된 청구항들의 사상 및 범주 내의 대안예들, 변형예들 및 균등예들을 포함한다. 본 명세서에서 제시되는 주요 기술적 특징의 완전한 이해를 제공하기 위하여 많은 세부 사항들이 기술된다. 그러나, 본 기술 분야에서 통상의 지식을 가진 자에게 주요 사상은 이러한 구체적인 세부 사항들 없이도 실현될 수 있음은 명백할 것이다. 다른 경우에, 잘 알려진 방법들, 절차들, 구성들 및 회로들은, 실시예들의 양태들을 불필요하게 모호하게 하지 않기 위하여, 상세히 기술되지 않았다.
본 명세서에서 본 발명의 설명에서 사용된 용어는 특정 실시예들을 설명하는 목적을 위한 것이고 본 발명의 제한을 의도하지 않는다. 본 발명의 설명, 부가 기술된 청구항들에서 사용된 바와 같이, 단수형태("a", "an", "the")는 내용상 명확하게 단수를 지칭하는 것이 아니라면, 복수형태도 포함할 수 있다. 또한, 본 명세서에서 사용되는 바와 같이, 용어 "및/또는"은 하나 또는 그 이상의 연관된 나열되는 항목들의 임의의 및 모든 가능한 조합들을 포함하며 지칭하는 것으로 이해될 것이다. 또한, 용어 "포함하는"은 본 명세서에서 사용될 때, 기술된 특징들, 동작들, 요소들, 및/또는 구성들의 존재를 특정하는 것이나, 하나 또는 그 이상의 다른 특징들, 동작들, 요소들, 구성들 및 또는 그들의 그룹들의 존재 또는 부가를 제한하지 않는 것으로 이해될 것이다.
본 명세서에서 사용된 바와 같은, 용어 "만약"은 "~ 때", "~ 시에" 또는 "결정에 대한 응답으로" 또는 "결정에 따라" 또는 "검출(detecting)에 대한 응답으로"를 의미하는 것으로 해석될 수 있고, 그것은 문맥에 따라 앞에 기술된 조건이 "예"인 것이다. 유사하게, 문구 "만일 그것이 결정되면(이는 앞에서 기술된 조건이 예인 때임)" 또는 "만일(앞에서 기술된 조건이 예인 때임)" 또는 "~ 한 때(앞에서 기술된 조건이 예인 때임)"은 "결정시에" 또는 "결정에 대한 응답으로" 또는 "결정에 따라" 또는 "검출 시에" 또는 "검출에 대한 응답으로"로의 의미로 해석될 수 있고, 그것은 문맥에 따라 앞에 기술된 조건이 "예"인 것이다.
비록 몇몇의 다양한 도면들은 특정 순서를 갖는 많은 논리적인 단계들을 도시하였으나, 순서에 무관한 단계들은 다른 순서를 가질 수 있고, 다른 단계들은 이에 결합되거나 벗어날 수 있다. 몇몇의 다른 순서를 갖거나 다르게 그룹된 단계들이 세부적으로 언급되었으나, 다른 것들도 또한 본 기술분야의 통상의 기술자들에 자명할 수 있고, 이에 대안예들의 완전한 기술을 보여주지는 않는다. 또한, 단계들은 하드웨어, 펌웨어, 소프트웨어 또는 그것들의 조합으로 구현될 수 있음을 인식해야 한다.
설명의 목적을 위한 앞서의 기술은 특정한 실시예들을 참조하여 기술되었다. 그러나, 앞서의 예시적인 논의들은 완전한 것이거나 정확히 기술된 형태로 본 발명을 제한하는 것을 의도하지 않는다. 많은 변경들 및 변형들이 앞서의 기술들의 관점에서 가능할 수 있다. 실시예들은 선택되어 본 발명의 주요 사상과 그 그것의 실시를 위한 응용들을 가장 잘 설명하기 위하여 기술되었고, 그로써, 특정한 사용에 적합한 것으로 고려되는 다양한 변형들로 본 기술 분야의 통상의 기술자가 본 발명과 다양한 실시예들을 가장 잘 활용하도록 한다.

Claims (20)

  1. 하나 또는 그 이상의 프로세서들 및 하나 또는 그 이상의 프로세서들에 의해 실행될 프로그램들을 저장하기 위한 메모리를 포함하는 클라이언트 디바이스 에서:
    특정 데이터 세트를 기초로 동작하라는 명령어를 수신하는 단계;
    상기 특정 데이터 세트가 상기 메모리 내에서 캐싱되었는 지 여부를 결정하는 단계;
    특정 데이터 세트가 상기 메모리 내에서 캐싱되지 않았다는 결정에 따라:
    상기 메모리 내에 현재 저장된 복수의 데이터 세트들에 연관된 복수의 속성들-상기 복수의 속성들은 적어도, 복수의 데이터 세트들 내의 데이터 세트들의 개수 및 복수의 데이터 세트들의 전체 사이즈를 포함함-을 결정하는 단계;
    상기 복수의 속성들이 상기 메모리 내에 특정 데이터를 저장하기 위한 데이터 캐싱 기준을 만족하는 지 여부를 결정하는 단계; 및
    상기 데이터 캐싱 기준이 만족되지 않았다는 결정에 따라:
    데이터 대체 규칙에 따라 데이터 세트들 중 하나 이상을 선택하는 단계;
    선택된 데이터 세트의 적어도 일부를 상기 메모리로부터 삭제하는 단계; 및
    상기 특정 데이터 세트를 원격 소스로부터 다운로딩하는 단계;
    상기 특정 데이터의 적어도 일부를 상기 메모리 내에 저장하는 단계; 및
    사용자 명령어에 따라 상기 특정 데이터를 동작시키는 단계를 포함하되,
    상기 특정 데이터 세트의 사이즈가 복수의 데이터 세트들 내의 하나 이상의 데이터 세트의 개별적인 사이즈 보다 작을 때에, 상기 데이터 대체 규칙에 따라 제3 데이터 세트가 선택되며 특정 데이터 세트의 일부를 상기 메모리 내에 캐싱하기 위해 메모리 공간을 비우기 위하여 삭제되고, 특정 데이터 세트들에 비하여 개별적으로 더 큰 사이즈를 갖는 하나 이상의 데이터 세트들 중에서, 제3 데이터 세트는 특정 데이터 세트의 사이즈에 가장 가까운 사이즈를 갖고,
    클라이언트 디바이스의 사용자는, 상기 클라이언트 디바이스의 상기 메모리 내에 캐싱된 데이터 세트들의 리스트가 상기 복수의 데이터 세트들 내에 포함되지 않았는지 여부를 결정하여, 상기 데이터 세트들의 리스트 내의 데이터 세트들은 상기 데이터 대체 규칙에 따라 선택되지 않거나 특정 데이터 세트에 대한 메모리 공간을 비우기 위하여 삭제되지 않는,
    컴퓨터에서 구현되는 데이터의 캐싱 방법.
  2. 제1 항에 있어서,
    복수의 데이터 세트들의 각각은 오디오 데이터를 포함하는,
    컴퓨터에서 구현되는 데이터의 캐싱 방법.
  3. 제1 항에 있어서,
    데이터 캐싱 기준이 만족되지 않았다는 결정에 따라, 상기 메모리 내에 캐싱된 복수의 데이터 세트들 중 어느 것도 삭제하지 않고 상기 특정 데이터 세트가 상기 메모리 내에 캐싱되는,
    컴퓨터에서 구현되는 데이터의 캐싱 방법.
  4. 제1 항에 있어서,
    복수의 데이터 세트들 내의 데이터 세트들의 개수가 제1 임계치를 초과할 때, 및 복수의 데이터 세트들의 전체 사이즈와 제1 데이터 세트가 제2 임계치를 초과한 때에, 상기 데이터 캐싱 기준이 만족되지 않는,
    컴퓨터에서 구현되는 데이터의 캐싱 방법.
  5. 제1 항에 있어서,
    상기 특정 데이터 세트는 제1 데이터 세트를 포함하고, 상기 복수의 데이터 세트들은 복수의 데이터 세트들 내의 다른 데이터 세트들 보다 먼저 상기 메모리 내에 캐싱되는 제2 데이터 세트를 포함하고, 상기 데이터 대체 규칙에 따라 상기 제2 데이터 세트가 선택되고, 상기 제2 데이터 세트의 적어도 일부는 상기 제1 데이터 세트의 일부를 상기 메모리 내에 캐싱하기 위해 메모리 공간을 비우기 위하여 지워지는,
    컴퓨터에서 구현되는 데이터의 캐싱 방법.
  6. 삭제
  7. 제1 항에 있어서,
    상기 특정 데이터 세트는 제1 데이터 세트를 포함하고, 상기 복수의 데이터 세트들은 복수의 데이터 세트들 중에서 가장 오랜 기간 동안 엑세스되지 않았던 제4 데이터 세트를 포함하고, 상기 데이터 대체 규칙에 따라 제4 데이터 세트가 선택되고, 제4 데이터 세트의 적어도 일부는 상기 제1 데이터 세트의 일부를 상기 메모리 내에 캐싱하기 위해 메모리 공간을 비우기 위하여 삭제되는,
    컴퓨터에서 구현되는 데이터의 캐싱 방법.
  8. 제1 항에 있어서,
    상기 데이터 대체 규칙에 따라 개별적인 실행 빈도가 복수의 데이터 세트들의 각각의 데이터 세트에 대하여 추적되고, 선택된 데이터 세트는 복수의 데이터 세트들 중에서 가장 작은 실행 빈도를 갖는,
    컴퓨터에서 구현되는 데이터의 캐싱 방법.
  9. 삭제
  10. 제1 항에 있어서, 복수의 데이터 세트들의 각각은 임시 데이터 파일 내에 캐싱되는,
    컴퓨터에서 구현되는 데이터의 캐싱 방법.
  11. 제1 항에 있어서,
    상기 특정 데이터 세트의 일부는 상기 특정 데이터 세트의 제1 하위 세트를 포함하고,
    상기 컴퓨터에서 구현되는 데이터의 캐싱 방법은,
    상기 특정 데이터 세트의 일부가 완전한 특정 데이터 세트를 포함하는 지 여부를 결정하는 단계; 및
    상기 특정 데이터 세트의 일부가 완전한 특정 데이터 세트를 포함하지 않았다는 결정에 따라, 상기 특정 데이터 세트의 제1 하위 세트를 기초로 명령어를 실행하는 동시에 상기 특정 데이터 세트의 제2 하위 세트를 캐싱하는 단계를 더 포함하는,
    컴퓨터에서 구현되는 데이터의 캐싱 방법.
  12. 하나 또는 그 이상의 프로세서들; 및 상기 하나 또는 그 이상의 프로세서들에 의해 실행될 때 상기 프로세서가 동작을 수행하게 하는 명령어를 그 상에 저장하는 메모리를 포함하는 클라이언트 디바이스에 있어서,
    특정 데이터 세트를 기초로 동작하라는 명령어를 수신하고;
    상기 특정 데이터 세트가 상기 메모리 내에서 캐싱되었는 지 여부를 결정하고;
    특정 데이터 세트가 상기 메모리 내에서 캐싱되지 않았다는 결정에 따라:
    상기 메모리 내에 현재 저장된 복수의 데이터 세트들에 연관된 복수의 속성들-상기 복수의 속성들은 적어도, 복수의 데이터 세트들 내의 데이터 세트들의 개수 및 복수의 데이터 세트들의 전체 사이즈를 포함함-을 결정하고;
    상기 복수의 속성들이 상기 메모리 내에 특정 데이터를 저장하기 위한 데이터 캐싱 기준을 만족하는 지 여부를 결정하고; 및
    상기 데이터 캐싱 기준이 만족되지 않았다는 결정에 따라:
    데이터 대체 규칙에 따라 데이터 세트들 중 하나 이상을 선택하고;
    선택된 데이터 세트의 적어도 일부를 상기 메모리로부터 삭제하고; 및
    상기 특정 데이터 세트를 원격 소스로부터 다운로딩하고;
    상기 특정 데이터의 적어도 일부를 상기 메모리 내에 저장하고; 및
    사용자 명령어에 따라 상기 특정 데이터를 동작시키는 것을 포함하되,
    상기 특정 데이터 세트의 사이즈가 복수의 데이터 세트들 내의 하나 이상의 데이터 세트의 개별적인 사이즈 보다 작을 때에, 상기 데이터 대체 규칙에 따라 제3 데이터 세트가 선택되며 특정 데이터 세트의 일부를 상기 메모리 내에 캐싱하기 위해 메모리 공간을 비우기 위하여 삭제되고, 특정 데이터 세트들에 비하여 개별적으로 더 큰 사이즈를 갖는 하나 이상의 데이터 세트들 중에서, 제3 데이터 세트는 특정 데이터 세트의 사이즈에 가장 가까운 사이즈를 갖고,
    클라이언트 디바이스의 사용자는, 상기 클라이언트 디바이스의 상기 메모리 내에 캐싱된 데이터 세트들의 리스트가 상기 복수의 데이터 세트들 내에 포함되지 않았는지 여부를 결정하여, 상기 데이터 세트들의 리스트 내의 데이터 세트들은 상기 데이터 대체 규칙에 따라 선택되지 않거나 특정 데이터 세트에 대한 메모리 공간을 비우기 위하여 삭제되지 않는,
    클라이언트 디바이스.
  13. 제12 항에 있어서,
    복수의 데이터 세트들의 각각은 오디오 데이터를 포함하는,
    클라이언트 디바이스.
  14. 제12 항에 있어서,
    복수의 데이터 세트들 내의 데이터 세트들의 개수가 제1 임계치를 초과할 때, 및 복수의 데이터 세트들의 전체 사이즈와 제1 데이터 세트가 제2 임계치를 초과한 때에, 상기 데이터 캐싱 기준이 만족되지 않는,
    클라이언트 디바이스.
  15. 삭제
  16. 제12 항에 있어서,
    상기 데이터 대체 규칙에 따라 개별적인 실행 빈도가 복수의 데이터 세트들의 각각의 데이터 세트에 대하여 추적되고, 선택된 데이터 세트는 복수의 데이터 세트들 중에서 가장 작은 실행 빈도를 갖는,
    클라이언트 디바이스.
  17. 삭제
  18. 저장되는 명령어들을 포함하며, 하나 또는 그 이상의 프로세서들에 의해 실행될 때 상기 프로세서가 동작들을 수행하게 하는 비일시적인 컴퓨터에서 판독가능한 매체에 있어서,
    특정 데이터 세트를 기초로 동작하라는 명령어를 수신하고;
    상기 특정 데이터 세트가 메모리 내에서 캐싱되었는 지 여부를 결정하고;
    특정 데이터 세트가 상기 메모리 내에서 캐싱되지 않았다는 결정에 따라:
    상기 메모리 내에 현재 저장된 복수의 데이터 세트들에 연관된 복수의 속성들-상기 복수의 속성들은 적어도, 복수의 데이터 세트들 내의 데이터 세트들의 개수 및 복수의 데이터 세트들의 전체 사이즈를 포함함-을 결정하고;
    상기 복수의 속성들이 상기 메모리 내에 특정 데이터를 저장하기 위한 데이터 캐싱 기준을 만족하는 지 여부를 결정하고; 및
    상기 데이터 캐싱 기준이 만족되지 않았다는 결정에 따라:
    데이터 대체 규칙에 따라 데이터 세트들 중 하나 이상을 선택하고;
    선택된 데이터 세트의 적어도 일부를 상기 메모리로부터 삭제하고; 및
    상기 특정 데이터 세트를 원격 소스로부터 다운로딩하고;
    상기 특정 데이터의 적어도 일부를 상기 메모리 내에 저장하고; 및
    사용자 명령어에 따라 상기 특정 데이터를 동작시키는 것을 포함하되,
    상기 특정 데이터 세트의 일부는 상기 특정 데이터 세트의 제1 하위 세트를 포함하고,
    상기 컴퓨터에서 구현되는 데이터의 캐싱 방법은,
    상기 특정 데이터 세트의 일부가 완전한 특정 데이터 세트를 포함하는 지 여부를 결정하는 단계; 및
    상기 특정 데이터 세트의 일부가 완전한 특정 데이터 세트를 포함하지 않았다는 결정에 따라, 상기 특정 데이터 세트의 제1 하위 세트를 기초로 명령어를 실행하는 동시에 상기 특정 데이터 세트의 제2 하위 세트를 캐싱하는 단계를 더 포함하는,
    비일시적인 컴퓨터에서 판독가능한 매체.
  19. 제18 항에 있어서,
    상기 특정 데이터 세트는 제1 데이터 세트를 포함하고, 상기 복수의 데이터 세트들은 복수의 데이터 세트들 중에서 가장 오랜 기간 동안 엑세스되지 않았던 제4 데이터 세트를 포함하고, 제4 데이터 세트의 적어도 일부는 상기 제1 데이터 세트의 일부를 상기 메모리 내에 캐싱하기 위해 메모리 공간을 비우기 위하여 삭제되는,
    비일시적인 컴퓨터에서 판독가능한 매체.
  20. 삭제
KR1020157014580A 2012-11-02 2013-10-29 동적 데이터 저장을 위한 시스템 및 방법 KR101595783B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210433837.6A CN103794240B (zh) 2012-11-02 2012-11-02 在线音频数据的存储方法及装置
CN201210433837.6 2012-11-02
PCT/CN2013/086103 WO2014067440A1 (en) 2012-11-02 2013-10-29 Systems and methods for dynamic data storage

Publications (2)

Publication Number Publication Date
KR20150079950A KR20150079950A (ko) 2015-07-08
KR101595783B1 true KR101595783B1 (ko) 2016-02-19

Family

ID=50626487

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157014580A KR101595783B1 (ko) 2012-11-02 2013-10-29 동적 데이터 저장을 위한 시스템 및 방법

Country Status (3)

Country Link
KR (1) KR101595783B1 (ko)
CN (1) CN103794240B (ko)
WO (1) WO2014067440A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160050713A (ko) * 2014-10-30 2016-05-11 삼성전자주식회사 오디오 데이터 저장 방법 및 이를 지원하는 전자 장치
CN105744371B (zh) * 2014-12-09 2019-05-10 深圳Tcl数字技术有限公司 流媒体数据的播放方法及装置
CN106131142A (zh) * 2016-06-27 2016-11-16 乐视控股(北京)有限公司 多媒体数据存储方法及装置
CN108124188B (zh) * 2017-11-29 2021-01-01 深圳市高声高电子有限公司 一种影音系统运行方法
KR102193969B1 (ko) 2019-03-29 2020-12-22 한국전자통신연구원 동적 데이터의 안전한 분산 데이터 관리를 위한 방법 및 시스템
CN112380175B (zh) * 2021-01-15 2021-07-02 北京东方通软件有限公司 一种针对操作系统接收临时文件的时间管理方法
CN117032620A (zh) * 2023-06-30 2023-11-10 荣耀终端有限公司 音频焦点控制方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191858A1 (en) * 2002-04-05 2003-10-09 Koteshwerrao Adusumilli Response time of transformed documents based on caching and dynamic transformation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272598B1 (en) * 1999-03-22 2001-08-07 Hewlett-Packard Company Web cache performance by applying different replacement policies to the web cache
US20060248287A1 (en) * 2005-04-29 2006-11-02 Ibm Corporation Methods and arrangements for reducing latency and snooping cost in non-uniform cache memory architectures
JP5028381B2 (ja) * 2008-10-22 2012-09-19 株式会社日立製作所 ストレージ装置およびキャッシュ制御方法
CN101626399B (zh) * 2009-08-11 2012-03-28 华中科技大学 一种音乐在线播放的调度及控制方法
CN102143258A (zh) * 2010-01-28 2011-08-03 比亚迪股份有限公司 一种用于移动终端的铃声设定装置、移动通讯设备
CN102280132A (zh) * 2010-06-11 2011-12-14 希姆通信息技术(上海)有限公司 基于http协议的在线流式音频播放方法
CN102006368B (zh) * 2010-12-03 2013-06-19 重庆新媒农信科技有限公司 基于移动终端记忆卡缓存技术的流媒体音频文件播放方法
CN102622347A (zh) * 2011-01-26 2012-08-01 腾讯科技(深圳)有限公司 图片管理方法及移动终端

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191858A1 (en) * 2002-04-05 2003-10-09 Koteshwerrao Adusumilli Response time of transformed documents based on caching and dynamic transformation

Also Published As

Publication number Publication date
KR20150079950A (ko) 2015-07-08
WO2014067440A1 (en) 2014-05-08
CN103794240B (zh) 2017-07-14
CN103794240A (zh) 2014-05-14

Similar Documents

Publication Publication Date Title
KR101595783B1 (ko) 동적 데이터 저장을 위한 시스템 및 방법
US20090193338A1 (en) Reducing network and battery consumption during content delivery and playback
US8108579B2 (en) Mechanism and method for managing data storage
US9201810B2 (en) Memory page eviction priority in mobile computing devices
US20140095667A1 (en) Mobile device application streaming
KR101587631B1 (ko) 클라우드 기반 로컬 장치와 로컬 장치의 파일 읽기 및 저장 방법
EP2631820B1 (en) Computer-implemented method, mobile device, computer network system, and computer program product for optimized audio data provision
US10862992B2 (en) Resource cache management method and system and apparatus
US20150302903A1 (en) System and method for deep coalescing memory management in a portable computing device
US20120296882A1 (en) Method and apparatus for splitting media files
JP2007082231A (ja) デジタルマルチメディア機器で保存されたマルチメディアコンテンツを管理する方法及び装置
JP2008507160A (ja) バックグラウンド・トランスコード
US20130145001A1 (en) Utility-based model for caching programs in a content delivery network
KR20140004799A (ko) 피어 투 피어 데이터 마이그레이션
US20170091197A1 (en) Multimedia Display Method, Apparatus, and Device
KR102402780B1 (ko) 메모리 관리 방법 및 장치
WO2009109699A1 (en) Storage management
CN103365977A (zh) 非易失性存储介质上数据的存储处理方法和装置
US20140129777A1 (en) Systems and methods for dynamic data storage
US9454328B2 (en) Controlling hierarchical storage
KR101531284B1 (ko) 클라우드 스트리밍 서비스를 제공하기 위한 장치, 이를 위한 방법 및 이를 위한 시스템
CN110971962B (zh) 切片缓存的方法、装置及存储介质
US8281091B2 (en) Automatic selection of storage volumes in a data storage system
US10205989B2 (en) Optimized storage of media items
US11481088B2 (en) Dynamic data density display

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200206

Year of fee payment: 5