Spelling suggestions: "subject:"[een] CACHING"" "subject:"[enn] CACHING""
131 |
Understanding and automating application-level caching / Entendendo e automatizando cache a nível de aplicaçãoMertz, Jhonny Marcos Acordi January 2017 (has links)
O custo de serviços na Internet tem encorajado o uso de cache a nível de aplicação para suprir as demandas dos usuários e melhorar a escalabilidade e disponibilidade de aplicações. Cache a nível de aplicação, onde desenvolvedores manualmente controlam o conteúdo cacheado, tem sido adotada quando soluções tradicionais de cache não são capazes de atender aos requisitos de desempenho desejados. Apesar de sua crescente popularidade, este tipo de cache é tipicamente endereçado de maneira ad-hoc, uma vez que depende de detalhes específicos da aplicação para ser desenvolvida. Dessa forma, tal cache consiste em uma tarefa que requer tempo e esforço, além de ser altamente suscetível a erros. Esta dissertação avança o trabalho relacionado a cache a nível de aplicação provendo uma compreensão de seu estado de prática e automatizando a identificação de conteúdo cacheável, fornecendo assim suporte substancial aos desenvolvedores para o projeto, implementação e manutenção de soluções de caching. Mais especificamente, este trabalho apresenta três contribuições: a estruturação de conhecimento sobre caching derivado de um estudo qualitativo, um levantamento do estado da arte em abordagens de cache estáticas e adaptativas, e uma técnica que automatiza a difícil tarefa de identificar oportunidades de cache O estudo qualitativo, que envolveu a investigação de dez aplicações web (código aberto e comercial) com características diferentes, permitiu-nos determinar o estado de prática de cache a nível de aplicação, juntamente com orientações práticas aos desenvolvedores na forma de padrões e diretrizes. Com base nesses padrões e diretrizes derivados, também propomos uma abordagem para automatizar a identificação de métodos cacheáveis, que é geralmente realizado manualmente por desenvolvedores. Tal abordagem foi implementada como um framework, que pode ser integrado em aplicações web para identificar automaticamente oportunidades de cache em tempo de execução, com base na monitoração da execução do sistema e gerenciamento adaptativo das decisões de cache. Nós avaliamos a abordagem empiricamente com três aplicações web de código aberto, e os resultados indicam que a abordagem é capaz de identificar oportunidades de cache adequadas, melhorando o desempenho das aplicações em até 12,16%. / Latency and cost of Internet-based services are encouraging the use of application-level caching to continue satisfying users’ demands, and improve the scalability and availability of origin servers. Application-level caching, in which developers manually control cached content, has been adopted when traditional forms of caching are insufficient to meet such requirements. Despite its popularity, this level of caching is typically addressed in an adhoc way, given that it depends on specific details of the application. Furthermore, it forces application developers to reason about a crosscutting concern, which is unrelated to the application business logic. As a result, application-level caching is a time-consuming and error-prone task, becoming a common source of bugs. This dissertation advances work on application-level caching by providing an understanding of its state-of-practice and automating the decision regarding cacheable content, thus providing developers with substantial support to design, implement and maintain application-level caching solutions. More specifically, we provide three key contributions: structured knowledge derived from a qualitative study, a survey of the state-of-the-art on static and adaptive caching approaches, and a technique and framework that automate the challenging task of identifying cache opportunities The qualitative study, which involved the investigation of ten web applications (open-source and commercial) with different characteristics, allowed us to determine the state-of-practice of application-level caching, along with practical guidance to developers as patterns and guidelines to be followed. Based on such patterns and guidelines derived, we also propose an approach to automate the identification of cacheable methods, which is often manually done and is not supported by existing approaches to implement application-level caching. We implemented a caching framework that can be seamlessly integrated into web applications to automatically identify and cache opportunities at runtime, by monitoring system execution and adaptively managing caching decisions. We evaluated our approach empirically with three open-source web applications, and results indicate that we can identify adequate caching opportunities by improving application throughput up to 12.16%. Furthermore, our approach can prevent code tangling and raise the abstraction level of caching.
|
132 |
Proposition d'un modèle pour la représentation de contexte d'exécution de simulations informatiques à des fins de reproductibilité / Proposing a representation model of computational simulations’ execution context for reproducibility purposesCongo, Faïçal Yannick Palingwendé 19 December 2018 (has links)
La reproductibilité en informatique est un concept incontournable au 21ème siècle. Les évolutions matérielles des calculateurs font que le concept de reproductibilité connaît un intérêt croissant au sein de la communauté scientifique. Pour les experts en simulation, ce concept est indissociable de celui de vérification, de confirmation et de validation, que ce soit pour la crédibilité des résultats de recherches ou pour l’établissement de nouvelles connaissances. La reproductibilité est un domaine très vaste. Dans le secteur computationnel et numérique, nous nous attacherons, d’une part, à la vérification de la provenance et de la consistance des données de recherches. D’autre part, nous nous intéressons à la détermination précise des paramètres des systèmes d’exploitation, des options de compilation et de paramétrage des modèles de simulation permettant l’obtention de résultats fiables et reproductibles sur des architectures modernes de calcul. Pour qu’un programme puisse être reproduit de manière consistante il faut un certain nombre d’information de base. On peut citer entre autres le système d’exploitation, l’environnement de virtualisation, les diverses librairies utilisées ainsi que leurs versions, les ressources matérielles utilisées (CPU, GPU, accélérateurs de calcul multi coeurs tel que le précédent Intel Xeon Phi, Mémoires, ...), le niveau de parallélisme et éventuellement les identifiants des threads, le statut du ou des générateurs pseudo-aléatoires et le matériel auxquels ils accèdent, etc. Dans un contexte de calcul scientifique, même évident, il n’est actuellement pas possible d’avoir de manière cohérente toutes ces informations du fait de l’absence d’un modèle standard commun permettant de définir ce que nous appellerons ici contexte d'exécution. Un programme de simulation s'exécutant sur un ordinateur ou sur un noeud de calcul, que ce soit un noeud de ferme de calcul (cluster), un noeud de grille de calcul ou de supercalculateur, possède un état et un contexte d'exécution qui lui sont propres. Le contexte d'exécution doit être suffisamment complet pour qu’à partir de celui-ci, hypothétiquement,l'exécution d’un programme puisse être faite de telle sorte que l’on puisse converger au mieux vers un contexte d’exécution identique à l’original dans une certaine mesure. Cela, en prenant en compte l'architecture de l’environnement d’exécution ainsi que le mode d'exécution du programme. Nous nous efforçons, dans ce travail, de faciliter l'accès aux méthodes de reproductibilité et de fournir une méthode qui permettra d’atteindre une reproductibilité numérique au sens strict. En effet, de manière plus précise, notre aventure s’articule autour de trois aspects majeurs. Le premier aspect englobe les efforts de collaboration, qui favorisent l'éveil des consciences vis à vis du problème de la reproductibilité, et qui aident à implémenter des méthodes pour améliorer la reproductibilité dans les projets de recherche. Le deuxième aspect se focalise sur la recherche d’un modèle unifiant de contexte d'exécution et un mécanisme de fédération d’outils supportant la reproductibilité derrière une plateforme web pour une accessibilité mondiale. Aussi, nous veillons à l’application de ce deuxième aspect sur des projets de recherche. Finalement, le troisième aspect se focalise sur une approche qui garantit une reproductibilité numérique exacte des résultats de recherche. / Computational reproducibility is an unavoidable concept in the 21st century. Computer hardware evolutions have driven a growing interest into the concept of reproducibility within the scientificcommunity. Simulation experts press that this concept is strongly correlated to the one ofverification, confirmation and validation either may it be for research results credibility or for theestablishment of new knowledge. Reproducibility is a very large domain. Within the area ofnumerical and computational Science, we aim to ensure the verification of research dataprovenance and integrity. Furthermore, we show interest on the precise identification ofoperating systems parameters, compilation options and simulation models parameterizationwith the goal of obtaining reliable and reproducible results on modern computer architectures.To be able to consistently reproduce a software, some basic information must be collected.Among those we can cite the operating system, virtualization environment, the softwarepackages used with their versions, the hardware used (CPU, GPU, many core architectures suchas the former Intel Xeon Phi, Memory, …), the level of parallelism and eventually the threadsidentifiers, the status of pseudo-random number generators, etc. In the context of scientificcomputing, even obvious, it is currently not possible to consistently gather all this informationdue to the lack of a common model and standard to define what we call here execution context.A scientific software that runs in a computer or a computing node, either as a cluster node, a gridcluster or a supercomputer possesses a unique state and execution context. Gatheringinformation about the latter must be complete enough that it can be hypothetically used toreconstruct an execution context that will at best be identical to the original. This of course whileconsidering the execution environment and the execution mode of the software. Our effortduring this journey can be summarized as seeking an optimal way to both ease genuine access toreproducibility methods to scientists and aim to deliver a method that will provide a strictscientific numerical reproducibility. Moreover, our journey can be laid out around three aspects.The first aspect involves spontaneous efforts in collaborating either to bring awareness or toimplement approaches to better reproducibility of research projects. The second aspect focusesin delivering a unifying execution context model and a mechanism to federate existingreproducibility tools behind a web platform for World Wide access. Furthermore, we investigateapplying the outcome of the second aspect to research projects. Finally, the third aspect focusesin completing the previous one with an approach that guarantees an exact numerical reproducibility of research results.
|
133 |
Illumination Globale par Monte Carlo Bayésien et cache d'éclairement généré à partir d'une carte de photonsBrouillat, Jonathan 24 November 2009 (has links) (PDF)
Le rendu réaliste est devenu essentiel dans l'industrie (cinéma, jeux vidéo, prototypage et design...). Cela nécessite de simuler l'interaction entre la lumière et les objets d'une scène 3D, un calcul connu sous le nom d'Illumination Globale et habituellement très coûteux en temps de calcul. Nous présentons une technique d'illumination globale combinant deux méthodes usuelles : les cartes de photons et le cache d'éclairement. Les cartes de photons ne dépendent pas de la vue, mais nécessitent une passe coûteuse appelée regroupement final. Le cache d'éclairement est plus rapide mais dépend de la vue : pour couvrir la scène entière, l'utilisateur doit placer manuellement plusieurs caméras dans la scène. Notre méthode exploite les avantages de chaque méthode, sans intervention de l'utilisateur. Elle génère un cache d'éclairement de qualité indépendant de la vue à partir d'une carte de photons, affichable interactivement. Nous étudions également une nouvelle approche pour réduire la variance inhérente aux méthodes de Monte Carlo. En règle générale, les emplacements des échantillons sont ignorés : deux échantillons proches se voient attribuer la même importance, bien qu'ayant probablement des valeurs similaires. L'approche bayésienne que nous proposons dans cette thèse utilise la valeur et la position des échantillons et se base sur un modèle probabiliste de l'intégrant pour inférer une valeur de l'intégrale. L'estimée bayésienne ne dépend que des échantillons, et non pas de la manière dont ils ont été choisis. Nous montrons que cette approche peut être appliquée au calcul du regroupement final et nous présentons des résultats démontrant l'intérêt du Monte Carlo Bayésien.
|
134 |
Hit and Bandwidth Optimal Caching for Wireless Data Access NetworksAkon, Mursalin January 2011 (has links)
For many data access applications, the availability of the most updated information is a fundamental and rigid requirement. In spite of many technological improvements, in wireless networks, wireless channels (or bandwidth) are the most scarce resources and hence are expensive. Data access from remote sites heavily depends on these expensive resources. Due to affordable smart mobile devices and tremendous popularity of various Internet-based services, demand for data from these mobile devices are growing very fast. In many cases, it is becoming impossible for the wireless data service providers to satisfy the demand for data using the current network infrastructures. An efficient caching scheme at the client side can soothe the problem by reducing the amount of data transferred over the wireless channels. However, an update event makes the associated cached data objects obsolete and useless for the applications. Frequencies of data update, as well as data access play essential roles in cache access and replacement policies. Intuitively, frequently accessed and infrequently updated objects should be given higher preference while preserving in the cache. However, modeling this intuition is challenging, particularly in a network environment
where updates are injected by both the server and the clients, distributed all over networks.
In this thesis, we strive to make three inter-related contributions. Firstly, we propose two enhanced cache access policies. The access policies ensure strong consistency of the cached data objects
through proactive or reactive interactions with the data server. At the same time, these policies collect information about access and update frequencies of hosted objects to facilitate efficient deployment of the cache replacement policy. Secondly, we design a replacement policy which plays the decision maker role when there is
a new object to accommodate in a fully occupied cache. The statistical information collected by the access policies enables the
decision making process. This process is modeled around the idea of preserving frequently accessed but less frequently updated objects in the cache. Thirdly, we analytically show that a cache management
scheme with the proposed replacement policy bundled with any of the cache access policies guarantees optimum amount of data transmission by increasing the number of effective hits in the cache system.
Results from both analysis and our extensive simulations demonstrate that the proposed policies outperform the popular Least Frequently Used (LFU) policy in terms of both effective hits and bandwidth
consumption. Moreover, our flexible system model makes the proposed policies equally applicable to applications for the existing 3G, as well as upcoming LTE, LTE Advanced and WiMAX wireless data access networks.
|
135 |
Content-aware Caching and Traffic Management in Content Distribution NetworksAmble, Meghana Mukund 2010 December 1900 (has links)
The rapid increase of content delivery over the Internet has lead to the proliferation of content distribution networks (CDNs). Management of CDNs requires algorithms for request routing, content placement, and eviction in such a way that user delays are small. Our objective in this work is to design feasible algorithms that solve this trio of problems. We abstract the system of front-end source nodes and back-end caches of the CDN in the likeness of the input and output nodes of a switch. In this model, queues of requests for different pieces of content build up at the source nodes, which route these requests to a cache that contains the content. For each request that is routed to a cache, a corresponding data file is transmitted back to the source across links of finite capacity. Caches are of finite size, and the content of the caches can be refreshed periodically. A requested but missing item is fetched to the cache from the media vault of the CDN. In case of a lack of adequate space at the cache, an existing, unrequested item may be evicted from the cache in order to accommodate a new item. Every such cache refresh or media vault access incurs a finite cost. Hence the refresh periodicity allowed to the system represents our system cost. In order to obtain small user delays, our algorithms must consider the lengths of the request queues that build up at the nodes. Stable policies ensure the finiteness of the request queues, while good polices also lead to short queue lengths. We first design a throughput-optimal algorithm that solves the routing-placement eviction problem using instantaneous system state information. The design yields insight into the impact of different cache refresh and eviction policies on queue length. We use this and construct throughput optimal algorithms that engender short queue lengths. We then propose a regime of algorithms which remedies the inherent problem of wastage of capacity. We also develop heuristic variants, and we study their performance. We illustrate the potential of our approach and validate all our claims and results through simulations on different CDN topologies.
|
136 |
Optimierte Visualisierung auf segmentierten AnzeigenLorenz, Mario 27 July 2005 (has links) (PDF)
Diese Arbeit beschreibt den Entwurf und die Funktionsweise einer parallelen OpenGL-Renderingschnittstelle, die den effizienten Betrieb unmodifizierter graphischer Anwendungen auf segmentierten Anzeigen ermöglicht. Diese Schnittstelle integriert sich vollständig in eine verteilte graphische Benutzeroberfläche. Die herausragende Eigenschaft der entwickelten parallelen OpenGL-Schnittstelle ist ihre gleich bleibende Bildrate bei wachsender Anzahl von Segmenten. Als Erweiterung des frei verfügbaren Chromium-Systems stellt die Implementation eine virtuelle Graphikpipeline mit der Gesamtauflösung der segmentierten Anzeige bereit, die den eingehenden Datenstrom über ein Kommunikationsnetzwerk an die Knoten eines Visualisierungsclusters überträgt. Jeder Knoten des Clusters rendert einen Ausschnitt des Gesamtbildes und bringt diesen auf dem zugehörigen Segment synchronisiert zur Anzeige. Die interne Verarbeitung der von der Applikation generierten OpenGL-Datenströme unterscheidet sich jedoch grundlegend von der existierenden Lösung. Während die Tilesort-SPU von Chromium die Daten entsprechend der Segmentierung der Anzeige sortiert und sequenziell an die relevanten Knoten versendet, überträgt die in der Arbeit vorgestellte Schnittstelle die Graphikbefehle simultan. Die dadurch erreichte Vermeidung redundanter Übertragungen bewirkt bereits einen besseren Durchsatz der Kommunikationskanäle und zusätzlich eine signifikante Verringerung der Prozessorbelastung des Applikationsrechners. Die freie gewordene Kapazität schafft wiederum die Voraussetzung für die Anwendung verschiedener Optimierungsverfahren zur weiteren Steigerung der graphischen Gesamtleistung der parallelen Schnittstelle. Dazu zählt neben der Zwischenspeicherung von Datensequenzen in einem Stream Cache die Filterung der OpenGL-Kommandoströme mit graphischen Culling-Verfahren. Speziell zum aktiv-stereoskopischen Rendern auf dem an der Professur vorhandenen zylindrischen Projektionssystem enthält die Schnittstelle Anpassungen für die Synchronisationshardware und die bildbasierte Korrektur der Parallaxe.
|
137 |
Hit and Bandwidth Optimal Caching for Wireless Data Access NetworksAkon, Mursalin January 2011 (has links)
For many data access applications, the availability of the most updated information is a fundamental and rigid requirement. In spite of many technological improvements, in wireless networks, wireless channels (or bandwidth) are the most scarce resources and hence are expensive. Data access from remote sites heavily depends on these expensive resources. Due to affordable smart mobile devices and tremendous popularity of various Internet-based services, demand for data from these mobile devices are growing very fast. In many cases, it is becoming impossible for the wireless data service providers to satisfy the demand for data using the current network infrastructures. An efficient caching scheme at the client side can soothe the problem by reducing the amount of data transferred over the wireless channels. However, an update event makes the associated cached data objects obsolete and useless for the applications. Frequencies of data update, as well as data access play essential roles in cache access and replacement policies. Intuitively, frequently accessed and infrequently updated objects should be given higher preference while preserving in the cache. However, modeling this intuition is challenging, particularly in a network environment
where updates are injected by both the server and the clients, distributed all over networks.
In this thesis, we strive to make three inter-related contributions. Firstly, we propose two enhanced cache access policies. The access policies ensure strong consistency of the cached data objects
through proactive or reactive interactions with the data server. At the same time, these policies collect information about access and update frequencies of hosted objects to facilitate efficient deployment of the cache replacement policy. Secondly, we design a replacement policy which plays the decision maker role when there is
a new object to accommodate in a fully occupied cache. The statistical information collected by the access policies enables the
decision making process. This process is modeled around the idea of preserving frequently accessed but less frequently updated objects in the cache. Thirdly, we analytically show that a cache management
scheme with the proposed replacement policy bundled with any of the cache access policies guarantees optimum amount of data transmission by increasing the number of effective hits in the cache system.
Results from both analysis and our extensive simulations demonstrate that the proposed policies outperform the popular Least Frequently Used (LFU) policy in terms of both effective hits and bandwidth
consumption. Moreover, our flexible system model makes the proposed policies equally applicable to applications for the existing 3G, as well as upcoming LTE, LTE Advanced and WiMAX wireless data access networks.
|
138 |
Understanding and automating application-level caching / Entendendo e automatizando cache a nível de aplicaçãoMertz, Jhonny Marcos Acordi January 2017 (has links)
O custo de serviços na Internet tem encorajado o uso de cache a nível de aplicação para suprir as demandas dos usuários e melhorar a escalabilidade e disponibilidade de aplicações. Cache a nível de aplicação, onde desenvolvedores manualmente controlam o conteúdo cacheado, tem sido adotada quando soluções tradicionais de cache não são capazes de atender aos requisitos de desempenho desejados. Apesar de sua crescente popularidade, este tipo de cache é tipicamente endereçado de maneira ad-hoc, uma vez que depende de detalhes específicos da aplicação para ser desenvolvida. Dessa forma, tal cache consiste em uma tarefa que requer tempo e esforço, além de ser altamente suscetível a erros. Esta dissertação avança o trabalho relacionado a cache a nível de aplicação provendo uma compreensão de seu estado de prática e automatizando a identificação de conteúdo cacheável, fornecendo assim suporte substancial aos desenvolvedores para o projeto, implementação e manutenção de soluções de caching. Mais especificamente, este trabalho apresenta três contribuições: a estruturação de conhecimento sobre caching derivado de um estudo qualitativo, um levantamento do estado da arte em abordagens de cache estáticas e adaptativas, e uma técnica que automatiza a difícil tarefa de identificar oportunidades de cache O estudo qualitativo, que envolveu a investigação de dez aplicações web (código aberto e comercial) com características diferentes, permitiu-nos determinar o estado de prática de cache a nível de aplicação, juntamente com orientações práticas aos desenvolvedores na forma de padrões e diretrizes. Com base nesses padrões e diretrizes derivados, também propomos uma abordagem para automatizar a identificação de métodos cacheáveis, que é geralmente realizado manualmente por desenvolvedores. Tal abordagem foi implementada como um framework, que pode ser integrado em aplicações web para identificar automaticamente oportunidades de cache em tempo de execução, com base na monitoração da execução do sistema e gerenciamento adaptativo das decisões de cache. Nós avaliamos a abordagem empiricamente com três aplicações web de código aberto, e os resultados indicam que a abordagem é capaz de identificar oportunidades de cache adequadas, melhorando o desempenho das aplicações em até 12,16%. / Latency and cost of Internet-based services are encouraging the use of application-level caching to continue satisfying users’ demands, and improve the scalability and availability of origin servers. Application-level caching, in which developers manually control cached content, has been adopted when traditional forms of caching are insufficient to meet such requirements. Despite its popularity, this level of caching is typically addressed in an adhoc way, given that it depends on specific details of the application. Furthermore, it forces application developers to reason about a crosscutting concern, which is unrelated to the application business logic. As a result, application-level caching is a time-consuming and error-prone task, becoming a common source of bugs. This dissertation advances work on application-level caching by providing an understanding of its state-of-practice and automating the decision regarding cacheable content, thus providing developers with substantial support to design, implement and maintain application-level caching solutions. More specifically, we provide three key contributions: structured knowledge derived from a qualitative study, a survey of the state-of-the-art on static and adaptive caching approaches, and a technique and framework that automate the challenging task of identifying cache opportunities The qualitative study, which involved the investigation of ten web applications (open-source and commercial) with different characteristics, allowed us to determine the state-of-practice of application-level caching, along with practical guidance to developers as patterns and guidelines to be followed. Based on such patterns and guidelines derived, we also propose an approach to automate the identification of cacheable methods, which is often manually done and is not supported by existing approaches to implement application-level caching. We implemented a caching framework that can be seamlessly integrated into web applications to automatically identify and cache opportunities at runtime, by monitoring system execution and adaptively managing caching decisions. We evaluated our approach empirically with three open-source web applications, and results indicate that we can identify adequate caching opportunities by improving application throughput up to 12.16%. Furthermore, our approach can prevent code tangling and raise the abstraction level of caching.
|
139 |
Understanding and automating application-level caching / Entendendo e automatizando cache a nível de aplicaçãoMertz, Jhonny Marcos Acordi January 2017 (has links)
O custo de serviços na Internet tem encorajado o uso de cache a nível de aplicação para suprir as demandas dos usuários e melhorar a escalabilidade e disponibilidade de aplicações. Cache a nível de aplicação, onde desenvolvedores manualmente controlam o conteúdo cacheado, tem sido adotada quando soluções tradicionais de cache não são capazes de atender aos requisitos de desempenho desejados. Apesar de sua crescente popularidade, este tipo de cache é tipicamente endereçado de maneira ad-hoc, uma vez que depende de detalhes específicos da aplicação para ser desenvolvida. Dessa forma, tal cache consiste em uma tarefa que requer tempo e esforço, além de ser altamente suscetível a erros. Esta dissertação avança o trabalho relacionado a cache a nível de aplicação provendo uma compreensão de seu estado de prática e automatizando a identificação de conteúdo cacheável, fornecendo assim suporte substancial aos desenvolvedores para o projeto, implementação e manutenção de soluções de caching. Mais especificamente, este trabalho apresenta três contribuições: a estruturação de conhecimento sobre caching derivado de um estudo qualitativo, um levantamento do estado da arte em abordagens de cache estáticas e adaptativas, e uma técnica que automatiza a difícil tarefa de identificar oportunidades de cache O estudo qualitativo, que envolveu a investigação de dez aplicações web (código aberto e comercial) com características diferentes, permitiu-nos determinar o estado de prática de cache a nível de aplicação, juntamente com orientações práticas aos desenvolvedores na forma de padrões e diretrizes. Com base nesses padrões e diretrizes derivados, também propomos uma abordagem para automatizar a identificação de métodos cacheáveis, que é geralmente realizado manualmente por desenvolvedores. Tal abordagem foi implementada como um framework, que pode ser integrado em aplicações web para identificar automaticamente oportunidades de cache em tempo de execução, com base na monitoração da execução do sistema e gerenciamento adaptativo das decisões de cache. Nós avaliamos a abordagem empiricamente com três aplicações web de código aberto, e os resultados indicam que a abordagem é capaz de identificar oportunidades de cache adequadas, melhorando o desempenho das aplicações em até 12,16%. / Latency and cost of Internet-based services are encouraging the use of application-level caching to continue satisfying users’ demands, and improve the scalability and availability of origin servers. Application-level caching, in which developers manually control cached content, has been adopted when traditional forms of caching are insufficient to meet such requirements. Despite its popularity, this level of caching is typically addressed in an adhoc way, given that it depends on specific details of the application. Furthermore, it forces application developers to reason about a crosscutting concern, which is unrelated to the application business logic. As a result, application-level caching is a time-consuming and error-prone task, becoming a common source of bugs. This dissertation advances work on application-level caching by providing an understanding of its state-of-practice and automating the decision regarding cacheable content, thus providing developers with substantial support to design, implement and maintain application-level caching solutions. More specifically, we provide three key contributions: structured knowledge derived from a qualitative study, a survey of the state-of-the-art on static and adaptive caching approaches, and a technique and framework that automate the challenging task of identifying cache opportunities The qualitative study, which involved the investigation of ten web applications (open-source and commercial) with different characteristics, allowed us to determine the state-of-practice of application-level caching, along with practical guidance to developers as patterns and guidelines to be followed. Based on such patterns and guidelines derived, we also propose an approach to automate the identification of cacheable methods, which is often manually done and is not supported by existing approaches to implement application-level caching. We implemented a caching framework that can be seamlessly integrated into web applications to automatically identify and cache opportunities at runtime, by monitoring system execution and adaptively managing caching decisions. We evaluated our approach empirically with three open-source web applications, and results indicate that we can identify adequate caching opportunities by improving application throughput up to 12.16%. Furthermore, our approach can prevent code tangling and raise the abstraction level of caching.
|
140 |
Cache Design for Massive Heterogeneous Data of Mobile Social MediaZhang, Ruiyang January 2014 (has links)
Since social media gains ever increasing popularity, Online Social Networks have become important repositories for information retrieval. The concept of social search, therefore, is gradually being recognized as the next breakthrough in this field, and it is expected to dominate topics in industry. However, retrieving information from OSNs with high Quality of Experience is non-trivial as a result of the prevalence of mobile applications for social networking services. For the sake of shortening user perceived latency Web caching was introduced and has been studied extensively for years. Nevertheless, the previous works seldom focus on the Web caching solutions for social search. In the context of this master’s thesis project, emphasis is given to the design of a Web caching system which is used to cache public data from social media with the objective of improving the user experience in terms of the freshness of data and the perceived service latency. To be more specific, a Web caching strategy named Staleness Bounded LRU algorithm is proposed to limit the term of validity of the cached data. In addition, a Two-Level Web Caching System that adopts the SB-LRU algorithm is proposed in order for shortening the user perceived latency. Results of trace-driven simulations and performance evaluations demonstrate that serving clients with stale data is avoided and the user perceived latencies are significantly shortened when the proposed Web caching system is used in the use case of unauthenticated social search. Besides, the design idea in this project is believed to be helpful to the design of a Web caching system for social search, which is capable of caching user specific data for different clients.
|
Page generated in 0.0258 seconds