KR20220045389A - 캐시 데이터를 처리하는 방법 및 장치 - Google Patents

캐시 데이터를 처리하는 방법 및 장치 Download PDF

Info

Publication number
KR20220045389A
KR20220045389A KR1020200128065A KR20200128065A KR20220045389A KR 20220045389 A KR20220045389 A KR 20220045389A KR 1020200128065 A KR1020200128065 A KR 1020200128065A KR 20200128065 A KR20200128065 A KR 20200128065A KR 20220045389 A KR20220045389 A KR 20220045389A
Authority
KR
South Korea
Prior art keywords
query
result
cache
client device
user
Prior art date
Application number
KR1020200128065A
Other languages
English (en)
Other versions
KR102519559B1 (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 경희대학교 산학협력단
Priority to KR1020200128065A priority Critical patent/KR102519559B1/ko
Publication of KR20220045389A publication Critical patent/KR20220045389A/ko
Application granted granted Critical
Publication of KR102519559B1 publication Critical patent/KR102519559B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines

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)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 개시는 캐시 데이터를 처리하는 방법 및 장치에 관한 것이다. 일 실시 예에 의하면, 클라이언트 장치가 캐시 데이터를 처리하는 방법은 상기 클라이언트 장치의 사용자 입력에 기초하여 웹 데이터를 요청하는 쿼리를 획득하는 단계; 상기 획득된 쿼리에 대한 쿼리 결과가 상기 클라이언트 장치 내의 결과 캐시(result cache)로 부터 이용가능한지 여부를 식별하는 단계; 상기 이용 가능 여부를 식별한 결과에 기초하여, 상기 클라이언트 장치와 연결된 서버 또는 상기 결과 캐시 중 하나로부터 상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과를 획득하는 단계; 및 상기 획득된 쿼리 결과를 출력하는 단계; 를 포함할 수 있다.

Description

캐시 데이터를 처리하는 방법 및 장치 {APPARATUS AND METHOD FOR PROCESSING CACHE DATA}
본 개시는 Linked Open Data(LOD) 데이터를 처리하는 방법에 관한 것이다. 보다 상세하게는, 쿼리 언어를 이용하여 서버 및 클라이언트 사이에서 캐시 데이터를 처리하는 방법 및 장치에 관한 것이다.
웹 서버는 글로벌 정보 공간으로, 디지털 시스템의 확장으로 인하여 웹 서버의 정보 처리 방식은 플랫폼에서 중요한 이슈가 되고 있다. 웹 서버의 정보 처리 방식은 검색, 쿼리 및 추론에 의해 수행될 수 있다. 웹 데이터의 량은 지속적으로 빠르게 증가하고 있으므로 데이터를 요청하고 수신하기 위한 쿼리(Query)를 효과적으로 사용하기 위한 기술들이 연구되고 있다.
끊임 없는 기술 개발에도 불구하고, 데이터 소비자들은 방대한 양의 서로 링크된 데이터(Linked Data)의 원활한 쿼리 처리를 원하고, 웹 데이터의 양이 증가할 수록, 쿼리 부하는 증가하고 있으며, 쿼리 솔루션이 부족한 상황에서 서버로 입력되는 많은 양의 쿼리 요청으로 인해, 쿼리의 가용성이 낮아지는 문제점이 있다.
또한, 서로 링크된 데이터(Linked Data)의 고유한 분산 특성으로 인해 SPARQL 엔드 포인트를 쿼리 시 검색 대기 시간이 길고, SPARQL 엔드 포인트를 연결하기 위한 도구가 부족한 문제점이 있으며, 이로 인하여 컨텐츠 검색 대기 시간이 길어지고, 쿼리시에 연결된 데이터 클라우드에 원활한 접근이 이루어지지 않는 문제점이 있다.
상술한 문제점들을 해결하기 위하여, 서버의 데이터들을 로컬로 이동하고, 서버측의 웹 데이터 처리량의 부담을 낮추기 위해 서버에서 클라이언트로 데이터 처리 인텔리전스를 이동하기 위한 기술의 개발이 요구되고 있다. 또한, 로컬 엔드 포인트의 저장된 데이터를 지속적으로 업데이트 하고, 링크된 데이터(Linked Data)의 효과적 처리를 위하여, 캐싱 기술의 개발이 요구되고 있다.
한국공개특허 제2014-0105298호
일 실시 예에 의하면, 쿼리 실행을 효율적으로 처리하기 위한 캐시 데이터 처리 하는 방법 및 이를 수행하는 클라이언트 장치가 제공될 수 있다.
보다 상세하게는, 쿼리 유사도 및 쿼리 빈도수에 기초하여, 캐시 데이터를 처리하는 방법 및 이를 수행하는 장치가 제공될 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시 예에 의하면, 클라이언트 장치가 캐시 데이터를 처리하는 방법은 상기 클라이언트 장치의 사용자 입력에 기초하여 웹 데이터를 요청하는 쿼리를 획득하는 단계; 상기 획득된 쿼리에 대한 쿼리 결과가 상기 클라이언트 장치 내의 결과 캐시(result cache)로 부터 이용가능한지 여부를 식별하는 단계; 상기 이용 가능 여부를 식별한 결과에 기초하여, 상기 클라이언트 장치와 연결된 서버 또는 상기 결과 캐시 중 하나로부터 상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과를 획득하는 단계; 및 상기 획득된 쿼리 결과를 출력하는 단계; 를 포함할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 또 다른 실시 예에 의하면, 네트워크 인터페이스; 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션을 실행하는 적어도 하나의 프로세서; 를 포함하고, 상기 클라이언트 장치의 사용자로부터 웹 데이터를 요청하는 쿼리를 획득하고, 상기 획득된 쿼리에 대한 쿼리 결과가 상기 클라이언트 장치 내의 결과 캐시(result cache)로 부터 이용가능한지 여부를 식별하고, 상기 이용 가능 여부를 식별한 결과에 기초하여, 상기 클라이언트 장치와 연결된 서버 또는 상기 결과 캐시 중 하나로부터 상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과를 획득하고, 상기 획득된 쿼리 결과를 출력하는, 클라이언트 장치가 제공될 수 있다.
또 다른 실시 예에 의하면, 클라이언트 장치가 캐시 데이터를 처리하는 방법에 있어서, 상기 클라이언트 장치의 사용자로부터 웹 데이터를 요청하는 쿼리를 획득하는 단계; 상기 획득된 쿼리에 대한 쿼리 결과가 상기 클라이언트 장치 내의 결과 캐시(result cache)로 부터 이용가능한지 여부를 식별하는 단계; 상기 이용 가능 여부를 식별한 결과에 기초하여, 상기 클라이언트 장치와 연결된 서버 또는 상기 결과 캐시 중 하나로부터 상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과를 획득하는 단계; 및 상기 획득된 쿼리 결과를 출력하는 단계; 를 포함하는, 방법을 수행하도록 하는 프로그램이 저장된 컴퓨터로 읽을 수 있는 기록매체가 제공될 수 있다.
일 실시 예에 의하면 클라이언트의 결과 캐시 처리를 통하여 쿼리 실행을 효율적으로 처리할 수 있다.
일 실시 예에 의하면 클라이언트의 서버의 비용을 낮추고, 쿼리의 적중률을 향상시킬 수 있다.
도 1은 일 실시 예에 따라 캐시 데이터를 처리하는 과정을 개략적으로 나타내는 도면이다.
도 2는 HTTP cache를 이용하여 클라이언트 장치가 웹 데이터 쿼리를 질의하는 과정을 나타내는 도면이다.
도 3은 일 실시 예에 따른 캐시 데이터를 처리하는 클라이언트 장치 및 서버의 동작 과정을 나타내는 도면이다.
도 4는 일 실시 예에 따른 캐시 데이터를 처리하는 방법의 흐름도이다.
도 5는 또 다른 실시 예에 따른 캐시 데이터를 처리하는 방법의 흐름도이다.
도 6은 또 다른 실시 예에 따른 캐시 데이터를 처리하는 방법의 흐름도이다.
도 7은 본 개시의 일 실시 예에 따라 서버의 비용이 분산되는 효과를 나타내는 도면이다.
도 8은 일 실시 예에 따른 클라이언트 장치의 블록도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 일 실시 예에 따라 전자 장치가 뉴스 기사를 오디오로 출력하는 과정을 개략적으로 나타내는 도면이다.
일 실시 예에 의하면, 클라이언트 장치(1000)는 웹 데이터 쿼리에 발생 가능한 병목 현상을 식별하고, 서버(2000)에서 클라이언트 장치(1000)로 인텔리전스를 이동함으로써 실시간 쿼리가 효율적으로 이루어지도록 클라이언트 장치(1000)의 캐시 데이터를 처리할 수 있다.
일 실시 예에 의하면, 클라이언트 장치(1000)는 사용자 입력(102)에 기초하여, 쿼리(Query, 172)를 생성하고, 생성된 쿼리(172)를 서버(2000)로 전송할 수 있다. 클라이언트 장치(1000)는 쿼리(172)를 서버(2000)로 전송하고, 서버의 응답 결과로써, 쿼리 결과(174)를 서버(2000)로부터 획득할 수 있다. 클라이언트 장치(1000)는 획득된 쿼리 결과(174)를 응답(104)으로써 출력할 수 있다.
일 실시 예에 의하면, 클라이언트 장치(1000)는 네트워크 인터페이스(120), 프로세서(140) 및 메모리(160)를 포함할 수 있다. 예를 들어, 클라이언트 장치(1000)는 네트워크 인터페이스(120)를 통하여 서버(2000)와 연결될 수 있고, 서버(2000)와 연동함으로써, 클라이언트 측 결과 캐시를 프록시(Proxy) 역할로써 활용할 수 있다. 일 실시 예에 의하면, 클라이언트 장치(1000)는 클라이언트 측 분산 캐시를 통해 서버에서 클라이언트 장치(1000)로 쿼리 실행이 효과적으로 이루어지도록 하고, 한번 수행된 쿼리는 나중에도 다시 사용될 것이라는 가정하에 향후 쿼리로 사용될 가능성이 높은 내용을 클라이언 측 로컬 캐시(또는 결과 캐시)에 미리 저장함으로써 쿼리 적중률을 향상시킬 수 있다.
일 실시 예에 의하면 클라이언트 장치(1000)의 프로세서(140)는 클라이언트 장치(1000)내 네트워크 인터페이스(120) 및 메모리(160)의 전반적인 동작을 제어함으로써, 캐시 데이터를 처리할 수 있다. 일 실시 예에 의하면, 프로세서(140)는 메모리(160)에 저장된 하나 이상의 인스트럭션을 실행할 수 있다. 일 실시 예에 의하면, 메모리(160)는 쿼리 에이전트(162), 캐시 매니저(164), 결과 캐시(166), 쿼리 프리페칭(Query prefetching, 168), 캐시 교체(169)를 위한 하나 이상의 인스트럭션을 포함할 수 있다.
또한, 일 실시 예에 의하면, 메모리(160)에 저장된 상술한 하나 이상의 인스트럭션들은 본 명세서에서 기재되는 "...부", "모듈" 등의 용어로 표현될 수 있고, 적어도 하나의 기능이나 동작을 처리하는 단위로써, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로써, 클라이언트 장치(1000)내에 구현될 수 있다.
일 실시 예에 의하면, 클라이언트 장치(1000)는 다양한 형태로 구현될 수 있다. 예를 들어, 본 명세서에서 기술되는 클라이언트 장치(1000)는 디지털 카메라, 모바일 단말, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 태블릿 PC, 전자북 단말기, 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
일 실시 예에 의하면 서버(2000)는 네트워크 인터페이스(182), 프로세서(184) 및 데이터 베이스(186)를 포함할 수 있다. 일 실시 예에 의하면, 서버(2000)는 클라이언트 장치(1000)로부터 쿼리(172)를 획득하고, 획득된 쿼리에 따른 요청에 응답하여 쿼리 결과(174)를 클라이언트 장치로 전송할 수 있다. 일 실시 예에 의하면 서버(2000)는 네트워크 인터페이스(182)를 통하여 클라이언트 장치(1000)와 연결될 수 있다.
일 실시 예에 의하면, 클라이언트 장치(1000) 및 서버(2000)의 각각에 포함된 네트워크 인터페이스(120) 및 네트워크 인터페이스(182)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다.
일 실시 예에 의하면, 프로세서(184)는 서버(2000)내의 네트워크 인터페이스 및 데이터 베이스(186)의 전반적인 동작을 제어할 수 있다. 일 실시 예에 의하면, 프로세서(184)는 적어도 하나의 쿼리 프로세서(Query Processor)를 포함할 수 있다. 또한, 일 실시 예에 의하면, 데이터 베이스(186)는 적어도 하나의 Linked Open Data를 포함할 수 있다.
도 2는 HTTP cache를 이용하여 클라이언트 장치가 웹 데이터 쿼리를 질의하는 과정을 나타내는 도면이다.
클라이언트 장치(1000)는 HTTP cache(201)를 이용하여 서버측으로 쿼리를 질의할 수 있다. 일 실시 예에 의하면 쿼리를 질의하는 과정은 클라이언트 장치(1000)가 쿼리를 서버측으로 전송하는 과정에 대응될 수 있다. 일 실시 예에 따라 쿼리를 질의하는 클라이언트 장치를 Querying Client(204)로 도시된다. 클라이언트 장치(1000)는 로컬 캐시(Local Cache, 202)를 포함할 수 있고, 로컬 캐시에 서버로부터 미리 획득된 쿼리 및 쿼리 결과에 대한 정보를 저장할 수 있다. 일 실시 예에 의하면, 클라이언트 장치(1000)는 Linked Open Data(LOD, 200)를 제공하는, 엔드포인트인 Data Provider(예컨대 서버)로 쿼리를 질의하고, 쿼리 질의에 대한 응답으로써 쿼리 결과를 수신할 수 있다.
도 3은 일 실시 예에 따른 캐시 데이터를 처리하는 클라이언트 장치 및 서버의 동작 과정을 나타내는 도면이다.
일 실시 예에 의하면, 쿼리 시스템(300)은 클라이언트 장치(1000) 및 서버(315)를 포함할 수 있다. 쿼리 시스템(300)은 클라이언트 측 분산 캐시를 통하여 유연한 쿼리 처리(Processing) 과정을 수행할 수 있다. 일 실시 예에 의하면, 클라이언트 장치(1000)는 캐시 관리부(303), 쿼리 프리페칭부(302), 결과 캐시(304), 캐시 교체부(317)를 포함할 수 있다. 그러나 상술한 구성에 한정되는 것은 아니며, 클라이언트 장치(1000)는 더 많은 구성을 포함할 수 있다. 또 다른 실시 예에 의하면, 클라이언트 장치(1000)는 도1 에서 상술한 바와 같이, 프로세서, 메모리 및 네트워크 인터페이스를 포함하고, 메모리는 캐시 관리부(303), 쿼리 프리페칭부(302), 결과 캐시(304), 캐시 교체부(317)에 대한 하나 이상의 인스트럭션을 포함할 수 있다.
일 실시 예에 의하면, 클라이언트 장치(1000)는 클라이언트 장치의 사용자 입력에 기초하여 웹 데이터를 요청하는 쿼리를 획득하고, 클라이언트 장치 내의 결과 캐시(304) 또는 서버(315)를 이용하여, 클라이언트(301)가 요청하는 쿼리에 대한 쿼리 결과를 쿼리에 대한 응답으로써 클라이언트(301)에게 제공할 수 있다. 일 실시 예에 의하면, 클라이언트 장치(1000)의 캐시 관리부(303)는 클라이언트 장치(1000)의 사용자 입력에 기초하여 웹 데이터를 요청하는 쿼리를 획득할 수 있다. 캐시 관리부(303)는 획득된 쿼리에 대한 쿼리 결과가 결과 캐시(Result Cache, 304)로부터 이용가능한지 여부를 식별할 수 있다.
일 실시 예에 의하면, 캐시 관리부(303)는 획득된 쿼리에 매칭되는 쿼리를 상기 결과 캐시에서 검색하고, 상기 검색 결과에 따라 매칭 쿼리가 식별되는 경우 상기 결과 캐시로부터 상기 획득된 쿼리에 대한 쿼리 결과가 이용 가능한 것으로 식별할 수 있다. 일 실시 예에 의하면, 캐시 관리부(303)는 클라이언트로부터 획득된 쿼리가 결과 캐시에서 이용 가능하지 않은 것으로 식별되는 경우, 사용자로부터 획득된 쿼리를 쿼리 프리페칭부(302)로 전달할 수 있다. 또한, 캐시 관리부(303)는 관리하는 쿼리 중 미싱 쿼리가 발생하는 경우, 해당 미싱 쿼리에 대한 정보를 캐시 교체부(317)로 전송할 수 있다.
일 실시 예에 의하면, 쿼리 프리페칭부(302)는 캐시 관리부(303)로부터, 클라이언트(301)가 요청한 쿼리 정보를 획득하고, 획득된 쿼리에 대한 유사도(305)를 결정할 수 있다. 일 실시 예에 의하면, 쿼리 프리페칭부(302)는 쿼리 유사도 결정부(305)를 포함하고, 쿼리 유사도 결정부(304)를 이용하여 사용자로부터 획득된 쿼리의 유사도를 결정할 수도 있다. 일 실시 예에 의하면, 쿼리 프리페칭부(302)는 소정의 사용자(예컨대 클라이언트, 301)로부터 획득된 쿼리에 대한 쿼리 결과가 결과 캐시로부터 이용 가능하지 않은 것으로 식별되는 경우, 하기 수학식 1에 따른 미리 설정된 거리 기반 유사도 함수를 이용하여 사용자로부터 획득된 쿼리의 유사도를 결정할 수 있다.
Figure pat00001
상기 수학식 1에서, DistanceScore는 유사도 함수를 나타내고, 유사도 함수의 출력 값은 0 내지 1사이의 임의의 값일 수 있다. 일 실시 예에 의하면, 상기 수학식 1에서, Q1 및 Q2는 각각 쿼리 1 및 쿼리 2를 의미하고, Levenshtein은 쿼리 사이의 차이를 측정하기 위한 문자열 메트릭으로 Levenshtein 거리를 출력하는 함수이며, stringlen은 쿼리의 길이를 출력하는 함수이고, max는 함수 입력 값 중 더 큰 값을 출력하는 함수이다.
본 개시에 따른 쿼리 프리페칭부(302)는 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 결과 캐시로부터 이용 가능하지 않은 것으로 식별되는 경우, 상기 수학식 1에 따른 거리 기반 유사도 함수를 이용하여 사용자로부터 획득된 쿼리의 유사도를 결정할 수 있다. 일 실시 예에 의하면, 쿼리 프리페칭부(302)는 수학식 1에 따른 거리 기반 유사도 함수를 이용하여 클라이언트로부터 획득된 쿼리와 결과 캐시에 미리 저장된 쿼리의 유사도를 비교할 수 있다.
쿼리 프리페칭부(302)는 상기 결정된 쿼리 유사도에 기초하여, 사용자로부터 획득된 쿼리와 관련된 적어도 하나의 후보 쿼리를 생성할 수 있다. 일 실시 예에 의하면, 쿼리 프리페칭부(302)는 후보 쿼리 생성부(310)를 포함하고, 후보 쿼리 생성부(310)를 이용하여, 결정된 쿼리 유사도에 기초하여, 사용자로부터 획득된 쿼리에 유사한 적어도 하나의 후보 쿼리를 생성할 수도 있다.
일 실시 예에 의하면, 클라이언트 측 장치(1000)는 서버에 어떤 쿼리 데이터가 저장되어 있는지 알 수 없는 상태일 수 있다. 따라서, 본 개시에 따른 클라이언트 장치(1000)내의 쿼리 프리페칭부(302)는 사용자로부터 획득된 쿼리의 유사도에 기초하여 적어도 하나의 후보 쿼리를 생성하고, 생성된 후보 쿼리를 활용하여 유연한 쿼리 처리 과정을 수행할 수 있다. 일 실시 예에 의하면, 쿼리 프리페칭부(302)가 생성한 적어도 하나의 후보 쿼리는 사용자로부터 획득된 쿼리와 유사한 쿼리일 수 있다.
일 실시 예에 의하면, 쿼리 프리페칭부(302)는 사용자로부터 획득된 쿼리 및 생성된 적어도 하나의 후보 쿼리를 서버(315)측으로 전송할 수 있다. 쿼리 프리페칭부(302)는 사용자로부터 획득된 쿼리 및 적어도 하나의 후보 쿼리를 서버(315)로 전송한 후, 서버(315)로부터 상기 쿼리에 대한 쿼리 결과 및 상기 적어도 하나의 후보 쿼리에 대한 후보 쿼리 결과를 획득할 수 있다. 쿼리 프리페칭부(302)는 상술한 쿼리 및 적어도 하나의 후보 쿼리에 대한 각각의 응답 결과로써, 쿼리 결과 및 후보 쿼리 결과를 획득하고, 쿼리 및 쿼리 결과를 매칭하며, 후보 쿼리 및 후보 쿼리 결과를 매칭함으로써 소정의 템플릿으로 저장할 수 있다. 일 실시 예에 의하면, 쿼리 프리페칭부(302)는 쿼리 및 쿼리 결과를 매칭함으로써 쿼리 조합을 생성하고, 후보 쿼리 및 후보 쿼리 결과를 매칭함으로써 후보 쿼리 조합을 생성하며, 생성된 쿼리 조합 및 후보 쿼리 조합을 템플릿에 저장할 수도 있다.
일 실시 예에 의하면, 쿼리 프리페칭부(302)는 탐색적 프리페칭부(311)를 포함하고, 탐색적 프리페칭부(311)를 이용하여, 상술한 쿼리 조합 및 후보 쿼리 조합을 템플릿에 저장하는 과정을 수행할 수 있다. 일 실시 예에 의하면, 쿼리 프리페칭부(302)가 상술한 쿼리 조합 및 후보 쿼리 조합을 템플릿에 저장하는 과정은 유사한 쿼리들 및 상기 쿼리들에 대한 쿼리 결과들의 조합을 획득하는 프리페칭(prefetching)과정에 대응될 수 있다.
일 실시 예에 의하면, 쿼리 프리페칭부(302)는 상술한 쿼리 조합 및 후보 쿼리 조합을 기 설정된 순서에 따라 저장할 수 있다. 일 실시 예에 의하면, 쿼리 프리페칭부(302)는 상술한 쿼리 조합 및 후보 쿼리 조합을 시계열적 순서에 따라 저장할 수도 있다. 일 실시 예에 의하면, 쿼리 프리페칭부(302)는 쿼리 배열부(312)를 포함하고, 쿼리 배열부를 이용하여 쿼리, 또는 쿼리 조합들을 시계열적 순서에 따라 배열할 수 있다. 일 실시 예에 의하면, 쿼리 프리페칭부(302)는 시계열적 순서에 따라 배열된 쿼리, 쿼리 조합, 후보 쿼리 조합들을 캐시 교체부(317)로 전송할 수 있다.
일 실시 예에 의하면, 캐시 교체부(317)는 쿼리 기록부(307), 쿼리 빈도수 식별부(308), 쿼리 처리부(309) 및 쿼리 조합부(306)를 포함할 수 있다. 일 실시 예에 의하면, 캐시 교체부(317)는 쿼리 프리페칭부(302)로부터 쿼리 및 후보 쿼리를 획득하고, 쿼리 결과 및 후보 쿼리 결과를 서버(315)로 전송하며, 서버(315)로부터 획득된 쿼리 결과 및 후보 쿼리 결과와 쿼리 및 후보 쿼리를 조합할 수 있다. 또한, 캐시 교체부(317)는 쿼리 조합 및 후보 쿼리 조합 각각의 쿼리들의 쿼리 빈도수를 식별하고, 식별된 쿼리 빈도수에 기초하여 선택된 하나의 조합을 캐시 관리부(303)로 전송할 수 있다.
일 실시 예에 의하면, 쿼리 기록부(307)는 캐시 관리부(303)로부터 미싱 쿼리에 대한 정보를 획득하거나, 쿼리 프리페칭부(302)로부터 미싱 쿼리에 대한 정보를 획득할 수 있다. 쿼리 기록부(307)는 미싱 쿼리에 대한 정보를 쿼리 처리부(309)로 전달할 수 있다.
쿼리 처리부(309)는 순차적으로 쿼리 기록부(307)로부터 스케쥴링된 쿼리를 획득한다. 예를 들어, 쿼리 처리부(309)는 쿼리 기록부(307)로부터 미리 스케쥴링된 쿼리들을 순차로 획득하고, 순차로 획득된 쿼리들을 버퍼에 저장하며, 버퍼에 저장된 쿼리들을, 먼저 획득된 쿼리들부터 차례대로 쿼리 빈도수 식별부(308)로 전달한다.
일 실시 예에 의하면, 쿼리 빈도수 식별부(308)는 쿼리 조합 또는 후보 쿼리 조합 내 소정의 쿼리에 대한 클라이언트 장치의 접근 빈도(access frequency)에 기초하여 결정되는 쿼리 빈도 함수를 이용하여, 쿼리 빈도수를 식별할 수 있다. 일 실시 예에 의하면, 쿼리 빈도수 식별부(308)는 쿼리 처리부(309)로부터 순차로 쿼리를 획득하고, 획득된 쿼리의 쿼리 빈도를 식별할 수 있다. 일 실시 예에 의하면, 쿼리 빈도수 식별부(308)가 이용하는 쿼리 빈도 함수는 하기의 수학식에 기초하여 결정될 수 있다.
Figure pat00002
상기 수학식 2에서 Et는 이동 평균(moving average)이고, xt는 이산 시간 t에서 관측되는 접근 빈도수(access frequency)이며,
Figure pat00003
는 0 또는 1에 포함되는 스무딩 상수로써 새로운 관측에 대해서는 높은 값을 가지는 상수이며, Et-1은 시간 t-1에서의 이동 평균을 의미한다. 일 실시 예에 의하면, 쿼리 빈도수 식별부(308)는 상기 수학식 2에 따른 쿼리 빈도 함수를 이용하여, 쿼리 조합 또는 후보 쿼리 조합 내 소정의 쿼리에 대한 쿼리 빈도수를 식별할 수 있다.
또한, 일 실시 예에 의하면, 쿼리 빈도수 식별부(308)는 쿼리 프리페칭부(302)로부터 쿼리 및 후보 쿼리를 획득하고, 획득된 쿼리 및 후보 쿼리의 빈도수를 식별할 수 있다. 또한, 일 실시 예에 의하면, 쿼리 빈도수 식별부(308)는 쿼리 조합 및 후보 쿼리 조합들을 획득하고, 쿼리 조합 및 후보 쿼리 조합 각각에 포함된 쿼리들의 쿼리 빈도수를 식별할 수도 있다.
쿼리 조합부(306)는 쿼리 프리페칭부(302)로부터 획득된 쿼리와, 상기 쿼리에 대해 서버(315)로부터 획득된 쿼리 결과를 매칭함으로써 쿼리 조합을 생성할 수 있다. 또한, 쿼리 조합부(306)는 쿼리 프리페칭부(302)로부터 획득된 후보 쿼리와, 상기 후보 쿼리에 대해 서버(315)로부터 획득된 후보 쿼리 결과를 매칭함으로써 후보 쿼리 조합을 생성할 수 있다. 일 실시 예에 의하면, 쿼리 조합부(306)는 생성된 쿼리 조합 또는 후보 쿼리 조합 중 적어도 하나의 조합을 쿼리 빈도수 식별부(308) 또는 캐시 관리부(303)로 전송할 수 있다.
일 실시 예에 의하면, 쿼리 조합부(306)는 쿼리의 빈도수에 기초하여 쿼리 조합 또는 후보 쿼리 조합 중 선택된 하나의 조합을 캐시 관리부(303)로 전송할 수도 있다. 캐시 관리부(303)는 캐시 교체부(317)로부터 조합(예컨대 쿼리 조합 또는 후보 쿼리 조합 중 적어도 하나의 조합)을 이용하여 결과 캐시(304)를 갱신할 수 있다. 결과 캐시(304) 는 쿼리, 상기 쿼리에 대한 쿼리 결과, 상기 쿼리 및 상기 쿼리 결과를 매칭함으로써 생성된 쿼리 조합, 후보 쿼리 및 후보 쿼리 결과를 매칭함으로써 생성된 후보 쿼리 조합을 저장할 수 있다.
일 실시 예에 의하면, 결과 캐시(304)는 미리 설정된 주기에 따라, 수정 및 갱신될 수 있다. 예를 들어, 클라이언트 장치(1000)는 클라이언트로부터 획득된 쿼리의 유사도 및 쿼리의 빈도수에 기초하여, 상기 클라이언트로부터 획득된 쿼리 및 상기 쿼리 결과를 포함하는 쿼리 조합 값이 결과 캐시(304)에 반영될지 여부를 결정할 수 있다. 결과적으로 결과 캐시(304)에는 접근 빈도수가 높은 쿼리 및 쿼리 결과에 대한 정보가 갱신되고, 클라이언트(301)는 자주 사용하는 쿼리에 대한 쿼리 결과를 결과 캐시(304)로부터 직접(direct) 획득할 수 있다.
서버(315)는 적어도 하나의 프로세서 및 데이터 베이스를 포함할 수 있다. 일 실시 예에 의하면, 서버(315)에 포함된 적어도 하나의 프로세서는 적어도 하나의 쿼리 프로세서(313)를 포함할 수 있다. 또한, 데이터 베이스는 적어도 하나의 Linked Open Data(314)를 포함할 수 있다. 일 실시 예에 의하면, 쿼리 프로세서는 캐시 교체부(317)로부터 쿼리 또는 후보 쿼리 중 적어도 하나를 획득하고, 획득된 쿼리 또는 후보 쿼리에 매칭되는 쿼리 결과 또는 후보 쿼리 결과 중 적어도 하나를 데이터 베이스로부터 획득할 수 있다. 서버(315)는 쿼리 또는 후보 쿼리에 매칭되는 쿼리 결과 또는 후보 쿼리 결과를 캐시 교체부(317)로 전송할 수 있다.
도 4는 일 실시 예에 따른 캐시 데이터를 처리하는 방법의 흐름도이다.
S410에서, 클라이언트 장치(1000)는 클라이언트 장치의 사용자 입력에 기초하여 웹 데이터를 요청하는 쿼리를 획득할 수 있다. 예를 들어, 클라이언트 장치(1000)는 적어도 하나의 사용자 입력 인터페이스를 포함할 수 있고, 사용자 입력 인터페이스에 대한 사용자 입력을 획득할 수 있다. 클라이언트 장치(1000)는 사용자 입력 인터페이스를 통하여 획득된 사용자 입력에 기초하여, 서버로 전송할 쿼리를 식별할 수 있다.
S420에서, 클라이언트 장치(1000)는 획득된 쿼리에 대한 쿼리 결과가 클라이언트 장치 내의 결과 캐시로부터 이용 가능한지 여부를 식별할 수 있다. S420은 도 3에서 상술한 캐시 관리부의 동작에 대응될 수 있다. S430에서, 클라이언트 장치(1000)는 이용 가능 여부를 식별한 결과에 기초하여 클라이언트 장치와 연결된 서버 또는 결과 캐시 중 하나로부터 사용자로부터, 획득된 쿼리에 대한 쿼리 결과를 획득할 수 있다. S440에서, 클라이언트 장치(1000)는 획득된 쿼리 결과를 출력할 수 있다. 일 실시 예에 의하면, 클라이언트 장치(1000)는 클라이언트의 사용자 입력에 기초하여 식별된 쿼리 및 상기 쿼리에 대한 쿼리 결과를 함께 출력할 수도 있다.
도 5는 또 다른 실시 예에 따른 캐시 데이터를 처리하는 방법의 흐름도이다.
도 5를 참조하여 또 다른 실시 예에 따른, 클라이언트 장치가 캐시 데이터를 처리하는 방법을 설명하기로 한다. S510에서, 클라이언트 장치(1000)는 클라이언트 장치의 사용자 입력에 기초하여, 웹 데이터를 요청하는 쿼리를 획득할 수 있다. S510은 도 4의 S410에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다. S520에서, 클라이언트 장치(1000)는 획득된 쿼리에 대한 쿼리 결과가 클라이언트 장치내의 결과 캐시로부터 이용가능한지 여부를 식별할 수 있다. S520은 S420에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다.
S530에서, 클라이언트 장치(1000)는 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 결과 캐시로부터 이용 가능한 것으로 식별되는 경우, 사용자로부터 획득된 쿼리에 대응되는 쿼리 결과를 결과 캐시로부터 획득할 수 있다. 일 실시 예에 의하면, 클라이언트 장치(1000)는 상기 획득된 쿼리에 매칭되는 쿼리를 상기 결과 캐시에서 검색하고, 상기 검색 결과에 따라 매칭 쿼리가 식별되는 경우, 상기 결과 캐시로부터 상기 획득된 쿼리에 대한 쿼리 결과가 이용 가능한 것으로 식별할 수 있다.
S540에서, 클라이언트 장치(1000)는 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 상기 결과 캐시로부터 이용 가능하지 않은 것으로 식별되는 경우, 사용자로부터 획득된 쿼리를 서버로 전송하고, 상기 서버의 응답으로써 쿼리 결과를 획득할 수 있다. S540에서, 클라이언트 장치(1000)가 결과 캐시로부터 쿼리 결과가 이용 가능하지 않은 것으로 식별되는 경우, 쿼리를 서버로 전송하고, 서버로부터 쿼리 결과를 획득하는 과정은 도 6을 참조하여 더 구체적으로 설명하기로 한다.
S550에서, 클라이언트 장치(1000)는 결과 캐시 또는 서버로부터 획득된 쿼리 결과를 상기 획득된 쿼리에 대한 응답인 쿼리 결과로써 출력할 수 있다. 일 실시 예에 의하면, 클라이언트 장치(1000)는 클라이언트로부터 획득된 쿼리와 쿼리 결과를 매칭함으로써 생성된 쿼리 조합을, 응답으로써 출력할 수도 있다.
도 6은 또 다른 실시 예에 따른 캐시 데이터를 처리하는 방법의 흐름도이다.
S610에서, 클라이언트 장치(1000)는 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 상기 결과 캐시로부터 이용 가능하지 않은 것으로 식별되는 경우, 기 설정된 거리 기반 유사도 함수를 이용하여 상기 사용자로부터 획득된 쿼리의 유사도를 결정할 수 있다. 클라이언트 장치(1000)가 쿼리에 대한 쿼리 유사도를 결정하는 과정은 도 3에서 쿼리 프리페칭부에 의해 쿼리 유사도를 결정하는 과정에 대응될 수 있으므로 구체적인 설명은 생략하기로 한다.
S620에서, 클라이언트 장치(1000)는 결정된 유사도에 기초하여 사용자로부터 획득된 쿼리와 관련된 적어도 하나의 후보 쿼리를 생성할 수 있다. 일 실시 예에 의하면, 적어도 하나의 후보 쿼리는 사용자로부터 획득된 쿼리와 유사한 쿼리일 수 있다.
S630에서, 클라이언트 장치(1000)는 사용자로부터 획득된 쿼리에 더하여, 상기 생성된 적어도 하나의 후보 쿼리를 서버로 함께 전송할 수 있다. S640에서, 클라이언트 장치(1000)는 서버로 전송된 적어도 하나의 후보 쿼리에 대한 응답으로써 후보 쿼리 결과를 서버로부터 획득할 수 있다. 예를 들어, 클라이언트 장치(1000)는 사용자로부터 획득된 쿼리를 서버로 전송하고, 서버로부터 쿼리에 대한 응답으로써 쿼리 결과를 획득할 수도 있지만, 적어도 하나의 후보 쿼리를 서버로 전송하고, 서버로부터 적어도 하나의 후보 쿼리에 대한 응답으로써 적어도 하나의 후보 쿼리 결과를 획득할 수도 있다.
S660에서, 클라이언트 장치(1000)는 서버로부터 획득된 후보 쿼리 결과 및 상기 적어도 하나의 후보 쿼리를 매칭함으로써 후보 쿼리 조합을 생성할 수 있다. 즉 본 개시에 따른 클라이언트 장치(1000)는 클라이언트로부터 획득된 쿼리를 이용하여 쿼리 조합을 생성하고, 스스로 생성한 후보 쿼리들에 대한 후보 쿼리 조합들을 생성할 수 있다.
S670에서, 클라이언트 장치(1000)는 상기 생성된 쿼리 조합 및 후보 쿼리 조합의 쿼리 빈도수를 식별할 수 있다. 예를 들어, 클라이언트 장치(1000)는 쿼리 조합 및 후보 쿼리 조합 내 쿼리 각각의 쿼리 빈도수를 식별할 수 있다. 일 실시 예에 의하면, 클라이언트 장치(1000)는 상기 쿼리 조합 또는 상기 후보 쿼리 조합 내 소정의 쿼리에 대한 상기 클라이언트 장치의 접근 빈도(access frequency)에 기초하여 결정되는 쿼리 빈도 함수에 기초하여, 상기 쿼리 조합 및 상기 후보 쿼리 조합 내 각각의 쿼리들의 쿼리 빈도수를 식별할 수 있다.
S680에서, 클라이언트 장치(1000)는 식별된 쿼리 빈도수에 기초하여, 쿼리 조합 또는 후보 쿼리 조합 중 적어도 하나의 조합을 선택하고, 선택된 조합을 이용하여 클라이언트 장치 내의 결과 캐시를 갱신할 수 있다. 예를 들어, 클라이언트 장치(1000)는 쿼리 조합 또는 후보 쿼리 조합 내 각각의 쿼리의 쿼리 빈도수가 소정의 임계 빈도수 이상인 조합(예컨대 쿼리 조합 또는 후보 쿼리 조합 중 적어도 하나)만을 식별하고, 식별된 조합을 결과 캐시로 전송함으로써, 결과 캐시를 갱신할 수 있다.
보다 상세하게는, 클라이언트 장치(1000)는 쿼리 조합 또는 상기 후보 쿼리 조합의 쿼리 빈도수와, 상기 결과 캐시에 저장된 쿼리들의 쿼리 빈도수를 비교하고, 상기 비교 결과에 기초하여, 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리 및 상기 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리에 대한 쿼리 결과를 식별하며, 상기 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리 및 상기 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리에 대한 쿼리 결과를 이용하여 상기 결과 캐시를 갱신할 수 있다.
일 실시 예에 의하면, 클라이언트 장치(1000)는 쿼리 빈도수가 소정의 임계 빈도 이상인 조합을 이용하여 결과 캐시를 갱신함과 함께, 해당 조합을 클라이언트에게 제공할 수도 있다. 또한, 일 실시 예에 의하면 클라이언트 장치(1000)는 결과 캐시가 갱신되면, 갱신된 결과 캐시를 이용하여, 향후 클라이언트 장치의 사용자로부터 획득된 쿼리에 대한 쿼리 결과가, 상기 갱신된 결과 캐시로부터 이용 가능한지 여부를 식별할 수 있다.
도 7은 본 개시의 일 실시 예에 따라 서버의 비용이 분산되는 효과를 나타내는 도면이다.
도 7을 참조하여 본 개시에 따른 클라이언트 장치가 캐시 데이터를 처리하는 방법을 수행함에 따른 효과를 설명하기로 한다. 일반적인 쿼리 시스템의 서버(702)는 방대?? 양의 링크된 데이터를 모두 서버에서 처리함으로써, SPARQL 엔드 포인트의 성능이 향상되었음에도 불구하고, 가용성이 낮은 한계가 있다. 결과적으로, 쿼리를 처리하기 위한 부담은 클라이언트 장치(703)가 아닌 서버(702)로 집중되기 때문에, 서버의 부담이 향상되고, 서버의 쿼리 가용성은 낮아지는 문제가 발생할 수 있다.
그러나, 본 개시에 따른 캐시 데이터를 처리하는 방법을 수행하는 클라이언트 장치(705) 및 SPARQL 서버(704)를 포함하는 쿼리 시스템은, SPARQL 쿼리 처리를 클라이언트측에 일부 리소스를 할당함으로써, 서버의 부담을 감소시킬 수 있기 때문에, 유연한 쿼리 처리 결과에 따른 웹 쿼리 효율성이 향상되는 장점이 있다. 즉, 본 개시에 따른 쿼리 시스템 내 클라이언트 장치(705)는, 기존의 서버 측 복잡한 쿼리 처리를 감소시키기 위한 클라이언트 측 캐싱을 수행함으로써, 쿼리 실행의 효율성을 향상시킬 수 있다. 또한, 본 개시에 따른 클라이언트 장치(705)는 향후 클라이언트가 나중에 다시 사용될 가능성이 높은 쿼리를 로컬 캐시에 캐싱함으로써, 향후 서버로의 쿼리 전송 비용을 줄임과 함께 쿼리 적중률을 향상시킬 수 있다.
도 8은 일 실시 예에 따른 클라이언트 장치의 블록도이다.
일 실시 예에 의하면, 클라이언트 장치(1000)는 프로세서(1300), 네트워크 인터페이스(1500) 및 메모리(1700)를 포함할 수 있다. 그러나, 이에 한정되는 것은 아니며 클라이언트 장치(1000)는 캐시 데이터를 처리하기 위한 더 많은 구성을 포함할 수도 있다.
일 실시 예에 의하면, 프로세서(13000는 클라이언트 장치(1000)내의 구성들의 동작을 전반적으로 제어할 수 있다. 일 실시 예에 의하면, 프로세서(1300)는 상기 클라이언트 장치의 사용자로부터 웹 데이터를 요청하는 쿼리를 획득하고, 상기 획득된 쿼리에 대한 쿼리 결과가 상기 클라이언트 장치 내의 결과 캐시(result cache)로 부터 이용가능한지 여부를 식별하고, 상기 이용 가능 여부를 식별한 결과에 기초하여, 상기 클라이언트 장치와 연결된 서버 또는 상기 결과 캐시 중 하나로부터 상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과를 획득하고, 상기 획득된 쿼리 결과를 출력할 수 있다.
일 실시 예에 의하면, 상기 적어도 하나의 프로세서는 상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 상기 결과 캐시로부터 이용 가능한 것으로 식별되는 경우, 상기 사용자로부터 획득된 쿼리에 대응되는 쿼리 결과를 상기 결과 캐시로부터 획득하고, 상기 결과 캐시로부터 획득된 쿼리 결과를 상기 획득된 쿼리에 대한 응답인 쿼리 결과로써 출력할 수 있다.
일 실시 예에 의하면, 상기 적어도 하나의 프로세서는 상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 상기 결과 캐시로부터 이용 가능하지 않은 것으로 식별되는 경우, 상기 사용자로부터 획득된 쿼리를 상기 서버로 전송하고, 상기 서버로부터 상기 전송된 쿼리에 대한 응답으로써 쿼리 결과를 획득하고, 상기 서버로부터 획득된 쿼리 결과 및 상기 사용자로부터 획득된 쿼리를 매칭함으로써 쿼리 조합을 생성하고, 상기 생성된 쿼리 조합을 상기 사용자로부터 획득된 쿼리에 대한 응답으로써 출력할 수 있다.
일 실시 예에 의하면, 상기 적어도 하나의 프로세서는 상기 획득된 쿼리에 매칭되는 쿼리를 상기 결과 캐시에서 검색하고, 상기 검색 결과에 따라 매칭 쿼리가 식별되는 경우, 상기 결과 캐시로부터 상기 획득된 쿼리에 대한 쿼리 결과가 이용 가능한 것으로 식별할 수 있다.
일 실시 예에 의하면, 상기 적어도 하나의 프로세서는 상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 상기 결과 캐시로부터 이용 가능하지 않은 것으로 식별되는 경우, 기 설정된 거리 기반 유사도 함수를 이용하여 상기 사용자로부터 획득된 쿼리의 유사도를 결정하고, 상기 결정된 유사도에 기초하여 상기 사용자로부터 획득된 쿼리와 관련된 적어도 하나의 후보 쿼리를 생성하고, 상기 사용자로부터 획득된 쿼리에 더하여, 상기 생성된 적어도 하나의 후보 쿼리를 상기 서버로 전송할 수 있다.
일 실시 예에 의하면, 상기 적어도 하나의 프로세서는 상기 서버로 전송된 적어도 하나의 후보 쿼리에 대한 응답으로써 후보 쿼리 결과를 상기 서버로부터 획득하고, 상기 서버로부터 획득된 후보 쿼리 결과 및 상기 생성된 적어도 하나의 후보 쿼리를 매칭함으로써 후보 쿼리 조합을 생성하고, 상기 생성된 쿼리 조합 및 상기 후보 쿼리 조합의 쿼리 빈도수를 식별하고, 상기 식별된 쿼리 빈도수에 기초하여, 상기 쿼리 조합 또는 상기 후보 쿼리 조합 중 적어도 하나의 조합을 이용하여 상기 결과 캐시를 갱신할 수 있다.
일 실시 예에 의하면, 상기 적어도 하나의 프로세서는 상기 쿼리 조합 또는 상기 후보 쿼리 조합 내 소정의 쿼리에 대한 상기 클라이언트 장치의 접근 빈도(access frequency)에 기초하여 결정되는 쿼리 빈도 함수에 기초하여, 상기 쿼리 조합 및 상기 후보 쿼리 조합 내 각각의 쿼리들의 쿼리 빈도수를 식별할 수 있다.
일 실시 예에 의하면, 상기 적어도 하나의 프로세서는 상기 갱신된 결과 캐시를 이용하여 상기 클라이언트 장치의 사용자로부터 획득된 쿼리에 대한 쿼리 결과가, 상기 갱신된 결과 캐시로부터 이용가능한지 여부를 식별할 수 있다.
일 실시 예에 의하면, 적어도 하나의 프로세서는 상기 쿼리 조합 또는 상기 후보 쿼리 조합의 쿼리 빈도수와, 상기 결과 캐시에 저장된 쿼리들의 쿼리 빈도수를 비교하고, 상기 비교 결과에 기초하여, 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리 및 상기 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리에 대한 쿼리 결과를 식별하고, 상기 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리 및 상기 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리에 대한 쿼리 결과를 이용하여 상기 결과 캐시를 갱신할 수 있다.
일 실시 예에 의하면, 네트워크 인터페이스(1500)는 서버(2000)로 쿼리 또는 후보 쿼리를 전송하고, 전송된 쿼리에 대한 쿼리 결과, 또는 전송된 후보 쿼리에 대한 후보 쿼리 결과를 획득할 수 있다.
메모리(1700)는, 프로세서(1300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 클라이언트 장치(1000)로 입력되거나 클라이언트 장치(1000)로부터 출력되는 데이터를 저장할 수도 있다. 또한, 메모리(1700)는 결과 캐시 내에 저장된 쿼리 및 쿼리 결과의 조합에 대한 정보, 클라이언트 장치의 쿼리 사용 기록에 대한 정보, 사용자가 쿼리를 이용하여 서버로 질의한 이력에 대한 정보, 쿼리의 사용 빈도에 대한 정보, 쿼리의 유사도에 대한 정보를 더 저장할 수도 있다. 또한, 일 실시 예에 의하면 메모리(1700)는 쿼리 유사도 함수 또는 쿼리 빈도수 함수에 대한 정보가 더 저장될 수도 있다.
일 실시 예에 의하면, 메모리(1700)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
일 실시예에 따른 클라이언트 장치가 캐시 데이터를 처리하는 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
또한, 클라이언트 장치(1000)가 캐시 데이터를 처리하는 방법을 수행하도록 하는 프로그램이 저장된 기록 매체를 포함하는 컴퓨터 프로그램 장치가 제공될 수 있다.
컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. 또한, 일부 실시예는 컴퓨터에 의해 실행되는 컴퓨터 프로그램과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램 또는 컴퓨터 프로그램 제품(computer program product)으로도 구현될 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.

Claims (19)

  1. 클라이언트 장치가 캐시 데이터를 처리하는 방법에 있어서,
    상기 클라이언트 장치의 사용자 입력에 기초하여 웹 데이터를 요청하는 쿼리를 획득하는 단계;
    상기 획득된 쿼리에 대한 쿼리 결과가 상기 클라이언트 장치 내의 결과 캐시(result cache)로 부터 이용가능한지 여부를 식별하는 단계;
    상기 이용 가능 여부를 식별한 결과에 기초하여, 상기 클라이언트 장치와 연결된 서버 또는 상기 결과 캐시 중 하나로부터 상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과를 획득하는 단계; 및
    상기 획득된 쿼리 결과를 출력하는 단계; 를 포함하는, 방법.
  2. 제1항에 있어서, 상기 방법은
    상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 상기 결과 캐시로부터 이용 가능한 것으로 식별되는 경우, 상기 사용자로부터 획득된 쿼리에 대응되는 쿼리 결과를 상기 결과 캐시로부터 획득하는 단계; 및
    상기 결과 캐시로부터 획득된 쿼리 결과를 상기 획득된 쿼리에 대한 응답인 쿼리 결과로써 출력하는 단계; 를 포함하는, 방법.
  3. 제1항에 있어서, 상기 방법은
    상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 상기 결과 캐시로부터 이용 가능하지 않은 것으로 식별되는 경우, 상기 사용자로부터 획득된 쿼리를 상기 서버로 전송하는 단계;
    상기 서버로부터 상기 전송된 쿼리에 대한 응답으로써 쿼리 결과를 획득하는 단계;
    상기 서버로부터 획득된 쿼리 결과 및 상기 사용자로부터 획득된 쿼리를 매칭함으로써 쿼리 조합을 생성하는 단계; 및
    상기 생성된 쿼리 조합을 상기 사용자로부터 획득된 쿼리에 대한 응답으로써 출력하는 단계; 를 포함하는, 방법.
  4. 제1항에 있어서, 상기 쿼리 결과가 상기 결과 캐시로부터 이용 가능한지 여부를 식별하는 단계는
    상기 획득된 쿼리에 매칭되는 쿼리를 상기 결과 캐시에서 검색하는 단계; 및
    상기 검색 결과에 따라 매칭 쿼리가 식별되는 경우, 상기 결과 캐시로부터 상기 획득된 쿼리에 대한 쿼리 결과가 이용 가능한 것으로 식별하는 단계; 를 포함하는, 방법.
  5. 제3항에 있어서, 상기 방법은
    상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 상기 결과 캐시로부터 이용 가능하지 않은 것으로 식별되는 경우, 기 설정된 거리 기반 유사도 함수를 이용하여 상기 사용자로부터 획득된 쿼리의 유사도를 결정하는 단계;
    상기 결정된 유사도에 기초하여 상기 사용자로부터 획득된 쿼리와 관련된 적어도 하나의 후보 쿼리를 생성하는 단계; 및
    상기 사용자로부터 획득된 쿼리에 더하여, 상기 생성된 적어도 하나의 후보 쿼리를 상기 서버로 전송하는 단계; 를 더 포함하는, 방법.
  6. 제5항에 있어서, 상기 방법은
    상기 서버로 전송된 적어도 하나의 후보 쿼리에 대한 응답으로써 후보 쿼리 결과를 상기 서버로부터 획득하는 단계;
    상기 서버로부터 획득된 후보 쿼리 결과 및 상기 생성된 적어도 하나의 후보 쿼리를 매칭함으로써 후보 쿼리 조합을 생성하는 단계;
    상기 생성된 쿼리 조합 및 상기 후보 쿼리 조합의 쿼리 빈도수를 식별하는 단계; 및
    상기 식별된 쿼리 빈도수에 기초하여, 상기 쿼리 조합 또는 상기 후보 쿼리 조합 중 적어도 하나의 조합을 이용하여 상기 결과 캐시를 갱신하는 단계; 를 포함하는, 방법.
  7. 제6항에 있어서, 상기 쿼리 빈도수를 식별하는 단계는
    상기 쿼리 조합 또는 상기 후보 쿼리 조합 내 소정의 쿼리에 대한 상기 클라이언트 장치의 접근 빈도(access frequency)에 기초하여 결정되는 쿼리 빈도 함수에 기초하여, 상기 쿼리 조합 및 상기 후보 쿼리 조합 내 각각의 쿼리들의 쿼리 빈도수를 식별하는 단계; 를 포함하는, 방법.
  8. 제6항에 있어서, 상기 방법은
    상기 갱신된 결과 캐시를 이용하여 상기 클라이언트 장치의 사용자로부터 획득된 쿼리에 대한 쿼리 결과가, 상기 갱신된 결과 캐시로부터 이용가능한지 여부를 식별하는 단계; 를 더 포함하는, 방법.
  9. 제6항에 있어서, 상기 결과 캐시를 갱신하는 단계는
    상기 쿼리 조합 또는 상기 후보 쿼리 조합의 쿼리 빈도수와, 상기 결과 캐시에 저장된 쿼리들의 쿼리 빈도수를 비교하는 단계;
    상기 비교 결과에 기초하여, 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리 및 상기 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리에 대한 쿼리 결과를 식별하는 단계; 및
    상기 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리 및 상기 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리에 대한 쿼리 결과를 이용하여 상기 결과 캐시를 갱신하는 단계; 를 포함하는, 방법.
  10. 캐시 데이터를 처리하는 클라이언트 장치에 있어서,
    네트워크 인터페이스;
    하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 하나 이상의 인스트럭션을 실행하는 적어도 하나의 프로세서; 를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 클라이언트 장치의 사용자로부터 웹 데이터를 요청하는 쿼리를 획득하고,
    상기 획득된 쿼리에 대한 쿼리 결과가 상기 클라이언트 장치 내의 결과 캐시(result cache)로 부터 이용가능한지 여부를 식별하고,
    상기 이용 가능 여부를 식별한 결과에 기초하여, 상기 클라이언트 장치와 연결된 서버 또는 상기 결과 캐시 중 하나로부터 상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과를 획득하고,
    상기 획득된 쿼리 결과를 출력하는, 클라이언트 장치.
  11. 제10항에 있어서, 상기 적어도 하나의 프로세서는
    상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 상기 결과 캐시로부터 이용 가능한 것으로 식별되는 경우, 상기 사용자로부터 획득된 쿼리에 대응되는 쿼리 결과를 상기 결과 캐시로부터 획득하고,
    상기 결과 캐시로부터 획득된 쿼리 결과를 상기 획득된 쿼리에 대한 응답인 쿼리 결과로써 출력하는, 클라이언트 장치.
  12. 제10항에 있어서, 상기 적어도 하나의 프로세서는
    상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 상기 결과 캐시로부터 이용 가능하지 않은 것으로 식별되는 경우, 상기 사용자로부터 획득된 쿼리를 상기 서버로 전송하고,
    상기 서버로부터 상기 전송된 쿼리에 대한 응답으로써 쿼리 결과를 획득하고,
    상기 서버로부터 획득된 쿼리 결과 및 상기 사용자로부터 획득된 쿼리를 매칭함으로써 쿼리 조합을 생성하고,
    상기 생성된 쿼리 조합을 상기 사용자로부터 획득된 쿼리에 대한 응답으로써 출력하는, 클라이언트 장치.
  13. 제10항에 있어서, 상기 적어도 하나의 프로세서는
    상기 획득된 쿼리에 매칭되는 쿼리를 상기 결과 캐시에서 검색하고,
    상기 검색 결과에 따라 매칭 쿼리가 식별되는 경우, 상기 결과 캐시로부터 상기 획득된 쿼리에 대한 쿼리 결과가 이용 가능한 것으로 식별하는, 클라이언트 장치.
  14. 제12항에 있어서, 상기 적어도 하나의 프로세서는
    상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과가 상기 결과 캐시로부터 이용 가능하지 않은 것으로 식별되는 경우, 기 설정된 거리 기반 유사도 함수를 이용하여 상기 사용자로부터 획득된 쿼리의 유사도를 결정하고,
    상기 결정된 유사도에 기초하여 상기 사용자로부터 획득된 쿼리와 관련된 적어도 하나의 후보 쿼리를 생성하고,
    상기 사용자로부터 획득된 쿼리에 더하여, 상기 생성된 적어도 하나의 후보 쿼리를 상기 서버로 전송하는, 클라이언트 장치.
  15. 제14항에 있어서, 상기 적어도 하나의 프로세서는
    상기 서버로 전송된 적어도 하나의 후보 쿼리에 대한 응답으로써 후보 쿼리 결과를 상기 서버로부터 획득하고,
    상기 서버로부터 획득된 후보 쿼리 결과 및 상기 생성된 적어도 하나의 후보 쿼리를 매칭함으로써 후보 쿼리 조합을 생성하고,
    상기 생성된 쿼리 조합 및 상기 후보 쿼리 조합의 쿼리 빈도수를 식별하고,
    상기 식별된 쿼리 빈도수에 기초하여, 상기 쿼리 조합 또는 상기 후보 쿼리 조합 중 적어도 하나의 조합을 이용하여 상기 결과 캐시를 갱신하는, 클라이언트 장치.
  16. 제15항에 있어서, 상기 적어도 하나의 프로세서는
    상기 쿼리 조합 또는 상기 후보 쿼리 조합 내 소정의 쿼리에 대한 상기 클라이언트 장치의 접근 빈도(access frequency)에 기초하여 결정되는 쿼리 빈도 함수에 기초하여, 상기 쿼리 조합 및 상기 후보 쿼리 조합 내 각각의 쿼리들의 쿼리 빈도수를 식별하는, 클라이언트 장치.
  17. 제15항에 있어서, 상기 적어도 하나의 프로세서는
    상기 갱신된 결과 캐시를 이용하여 상기 클라이언트 장치의 사용자로부터 획득된 쿼리에 대한 쿼리 결과가, 상기 갱신된 결과 캐시로부터 이용가능한지 여부를 식별하는, 클라이언트 장치.
  18. 제15항에 있어서, 상기 적어도 하나의 프로세서는
    상기 쿼리 조합 또는 상기 후보 쿼리 조합의 쿼리 빈도수와, 상기 결과 캐시에 저장된 쿼리들의 쿼리 빈도수를 비교하고,
    상기 비교 결과에 기초하여, 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리 및 상기 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리에 대한 쿼리 결과를 식별하고,
    상기 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리 및 상기 쿼리 빈도수가 소정의 임계 빈도수 이상인 쿼리에 대한 쿼리 결과를 이용하여 상기 결과 캐시를 갱신하는, 클라이언트 장치.
  19. 클라이언트 장치가 캐시 데이터를 처리하는 방법에 있어서,
    상기 클라이언트 장치의 사용자로부터 웹 데이터를 요청하는 쿼리를 획득하는 단계;
    상기 획득된 쿼리에 대한 쿼리 결과가 상기 클라이언트 장치 내의 결과 캐시(result cache)로 부터 이용가능한지 여부를 식별하는 단계;
    상기 이용 가능 여부를 식별한 결과에 기초하여, 상기 클라이언트 장치와 연결된 서버 또는 상기 결과 캐시 중 하나로부터 상기 사용자로부터 획득된 쿼리에 대한 쿼리 결과를 획득하는 단계; 및
    상기 획득된 쿼리 결과를 출력하는 단계; 를 포함하는, 방법을 수행하도록 하는 프로그램이 저장된 컴퓨터로 읽을 수 있는 기록매체.
KR1020200128065A 2020-10-05 2020-10-05 캐시 데이터를 처리하는 방법 및 장치 KR102519559B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200128065A KR102519559B1 (ko) 2020-10-05 2020-10-05 캐시 데이터를 처리하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200128065A KR102519559B1 (ko) 2020-10-05 2020-10-05 캐시 데이터를 처리하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20220045389A true KR20220045389A (ko) 2022-04-12
KR102519559B1 KR102519559B1 (ko) 2023-04-06

Family

ID=81188047

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200128065A KR102519559B1 (ko) 2020-10-05 2020-10-05 캐시 데이터를 처리하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102519559B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102576226B1 (ko) * 2023-02-28 2023-09-06 오병율 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187393A (ja) * 2008-02-07 2009-08-20 Nec Corp アクセス頻度の高い情報を事前にキャッシュする予測型キャッシュ方法、そのシステム及びそのプログラム
JP2010128831A (ja) * 2008-11-28 2010-06-10 Nomura Research Institute Ltd データ検索システム、方法及びコンピュータプログラム
JP2010128928A (ja) * 2008-11-28 2010-06-10 Ntt Docomo Inc 検索システム及び検索方法
KR20140105298A (ko) 2013-02-22 2014-09-01 삼성전자주식회사 클라이언트에서 캐시를 이용하여 서버의 멀티 미디어 컨텐트를 스트리밍 재생하는 방법 및 이를 위한 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187393A (ja) * 2008-02-07 2009-08-20 Nec Corp アクセス頻度の高い情報を事前にキャッシュする予測型キャッシュ方法、そのシステム及びそのプログラム
JP2010128831A (ja) * 2008-11-28 2010-06-10 Nomura Research Institute Ltd データ検索システム、方法及びコンピュータプログラム
JP2010128928A (ja) * 2008-11-28 2010-06-10 Ntt Docomo Inc 検索システム及び検索方法
KR20140105298A (ko) 2013-02-22 2014-09-01 삼성전자주식회사 클라이언트에서 캐시를 이용하여 서버의 멀티 미디어 컨텐트를 스트리밍 재생하는 방법 및 이를 위한 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102576226B1 (ko) * 2023-02-28 2023-09-06 오병율 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템

Also Published As

Publication number Publication date
KR102519559B1 (ko) 2023-04-06

Similar Documents

Publication Publication Date Title
KR102294326B1 (ko) 연결 해제의 기간을 위한 애플리케이션 데이터의 프리페치
US9384297B2 (en) Systems and methods of accelerating delivery of remote content
US8438474B1 (en) Speculative rendering during cache revalidation
US10936645B2 (en) Method and apparatus for generating to-be-played multimedia content
US10015280B2 (en) Content delivery acceleration system
US8909863B2 (en) Cache for storage and/or retrieval of application information
US20140172429A1 (en) Local recognition of content
US20170330239A1 (en) Methods and systems for near real-time lookalike audience expansion in ads targeting
CN105488205B (zh) 页面生成方法和装置
US8965862B2 (en) Directory oplock
CN102419768A (zh) 用于文档搜索的搜索高速缓存
JP2020042784A (ja) インテリジェント端末操作用の方法及び装置
JP2019511017A (ja) コンテンツ検索エンジン
US7979386B1 (en) Method and system for performing search engine optimizations
CN110502699B (zh) 用于获取信息的方法和装置
US20160357865A1 (en) System and method for locating data feeds
EP3058458A1 (en) Cloud service hosting on client device
US9197716B2 (en) Pre-fetching resources by predicting user actions
WO2021258575A1 (zh) 请求处理系统、方法、装置、电子设备和计算机可读介质
KR102519559B1 (ko) 캐시 데이터를 처리하는 방법 및 장치
CN102375881A (zh) 内容签名通知
CN108255898B (zh) 页面显示方法和装置
US20230267126A1 (en) Caching Historical Embeddings in Conversational Search
CN110168513A (zh) 在不同存储系统中对大文件的部分存储
US20170208143A1 (en) Technologies for pre-action execution

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant