In this thesis, a server caching strategy and an object prefetch strategy are introduced. In a client-server system, when LRU or its variant buffer replacement strategy is used on both the client and the server, the cache performance on the server side is very poor mainly because of pages duplicated in both systems. This paper introduces a server buffer replacement strategy which uses a replaced page-id than a request page-id, for the primary information for its operations. The importance of the corresponding pages in the server cache is decided according to the replaced page-ids that are delivered from clients to the server, so that locations of the pages are altered. Consequently, if a client uses LRU as its buffer replacement strategy, then the server cache is seen by the client as a long virtual client LRU cache extended to the server. Since the replaced page-id is only sent to the server by piggybacking whenever a new page fetch request is sent, the operation to deliver the replaced page-id is simple and induces a minimal overhead. We show that the proposed strategy reveals good performance characteristics in diverse situations, such as single and multiple clients, as well as with various access patterns.
We present a new object prefetch strategy, based on exploiting object structure semantics, the object type and the location that the object resides in the disk. Whenever an application fetches an object from the server side, a few OIDs of the previous access objects are delivered to the server by piggybacking. Then the fetch module in the server classifies the access pattern, and then decides the number of objects to be prefetched. In addition,
We discus several issues related to the performance such as cache consistency and clustering strategies. We show that the proposed strategy provides good performance on the real system and the simulation environment.
본 논문에서는 서버 버퍼 교체 및 객체 선인출 전략을 소개된다. 클라이언트-서버 시스템에서 만일 클라이언트 및 서버에 LRU 또는 유사한 버퍼 교체 알고리즘이 사용되면, 양측 시스템에서의 페이지 중복에 의해 그 성능이 매우 떨어지게 된다. 본 논문에서는 클라이언트에서 방출된 페이지(객체)의 식별자를 서버 버퍼 교체 동작에 있어서 주요 정보로 사용하는 서버 버퍼 교체 전략을 소개한다. 즉 클라이언트로부터 받은 방출된 페이지의 식별자는 새로운 페이지가 요청될 때 함께 서버에 전달되고, 서버에서는 이 식별자에 해당되는 페이지를 중요하게 생각하여, 해당 페이지의 위치를 조정한다. 따라서 만일 클라이언트의 버퍼 교체 전략으로 LRU를 사용한다면 서버 캐시는 클라이언트에 연결되어 있는 하나의 가상적 LRU 캐시로 보여질 수 있다. 클라이언트에서 방출된 페이지 식별자는 항상 새로운 페이지 요청과 함께 서버에 전달됨으로써 이에 따른 부담은 크지 않으며, 이들에 연산은 매우 간단하게 된다. 제안된 전략을 구현하여 여러 참조 패턴 뿐만 아니라 다수의 클라이언트가 존재하는 다양한 환경에서 실험하여 그 성능의 우수함을 보였다.
또한 본 논문에서는 클라이언트-서버 객체지향 데이터베이스 시스템에서의 새로운 객체 선인출 전략을 소개한다. 제안된 선인출 전략은 선인출된 객체가 클라이언트에서 얼마나 사용되었는가에 대한 정보와 객체들간의 구조정보, 객체들의 타입 및 객체들이 저장되어 있는 위치 정보를 이용하는 것이다. 클라이언트에서 객체를 서버로 요청할 때마다 최근에 엑세스된 몇 개의 객체 식별자들이 함께 서버로 전달된다. 서버는 이들 식별자들을 이용하여 엑세스 패턴을 파악하고, 선인출할 객체들을 선정한다. 클러스터링 및 캐시 일관성 전략등과 같은 선인출에서의 성능에 관련된 문제들이 논의된다. 실 시스템 및 시뮬레이션을 통하여 제안된 선인출 전략의 우수성을 보인다.