3 research outputs found

    An adaptive data prefetching scheme for biosequence database search on reconfigurable platforms

    No full text

    Computer-language based data prefetching techniques

    Get PDF
    Data prefetching has long been used as a technique to improve access times to persistent data. It is based on retrieving data records from persistent storage to main memory before the records are needed. Data prefetching has been applied to a wide variety of persistent storage systems, from file systems to Relational Database Management Systems and NoSQL databases, with the aim of reducing access times to the data maintained by the system and thus improve the execution times of the applications using this data. However, most existing solutions to data prefetching have been based on information that can be retrieved from the storage system itself, whether in the form of heuristics based on the data schema or data access patterns detected by monitoring access to the system. There are multiple disadvantages of these approaches in terms of the rigidity of the heuristics they use, the accuracy of the predictions they make and / or the time they need to make these predictions, a process often performed while the applications are accessing the data and causing considerable overhead. In light of the above, this thesis proposes two novel approaches to data prefetching based on predictions made by analyzing the instructions and statements of the computer languages used to access persistent data. The proposed approaches take into consideration how the data is accessed by the higher-level applications, make accurate predictions and are performed without causing any additional overhead. The first of the proposed approaches aims at analyzing instructions of applications written in object-oriented languages in order to prefetch data from Persistent Object Stores. The approach is based on static code analysis that is done prior to the application execution and hence does not add any overhead. It also includes various strategies to deal with cases that require runtime information unavailable prior to the execution of the application. We integrate this analysis approach into an existing Persistent Object Store and run a series of extensive experiments to measure the improvement obtained by prefetching the objects predicted by the approach. The second approach analyzes statements and historic logs of the declarative query language SPARQL in order to prefetch data from RDF Triplestores. The approach measures two types of similarity between SPARQL queries in order to detect recurring query patterns in the historic logs. Afterwards, it uses the detected patterns to predict subsequent queries and launch them before they are requested to prefetch the data needed by them. Our evaluation of the proposed approach shows that it high-accuracy prediction and can achieve a high cache hit rate when caching the results of the predicted queries.Precargar datos ha sido una de las t茅cnicas m谩s comunes para mejorar los tiempos de acceso a datos persistentes. Esta t茅cnica se basa en predecir los registros de datos que se van a acceder en el futuro y cargarlos del almacenimiento persistente a la memoria con antelaci贸n a su uso. Precargar datos ha sido aplicado en multitud de sistemas de almacenimiento persistente, desde sistemas de ficheros a bases de datos relacionales y NoSQL, con el objetivo de reducir los tiempos de acceso a los datos y por lo tanto mejorar los tiempos de ejecuci贸n de las aplicaciones que usan estos datos. Sin embargo, la mayor铆a de los enfoques existentes utilizan predicciones basadas en informaci贸n que se encuentra dentro del mismo sistema de almacenimiento, ya sea en forma de heur铆sticas basadas en el esquema de los datos o patrones de acceso a los datos generados mediante la monitorizaci贸n del acceso al sistema. Estos enfoques presentan varias desventajas en cuanto a la rigidez de las heur铆sticas usadas, la precisi贸n de las predicciones generadas y el tiempo que necesitan para generar estas predicciones, un proceso que se realiza con frecuencia mientras las aplicaciones acceden a los datos y que puede tener efectos negativos en el tiempo de ejecuci贸n de estas aplicaciones. En vista de lo anterior, esta tesis presenta dos enfoques novedosos para precargar datos basados en predicciones generadas por el an谩lisis de las instrucciones y sentencias del lenguaje inform谩tico usado para acceder a los datos persistentes. Los enfoques propuestos toman en consideraci贸n c贸mo las aplicaciones acceden a los datos, generan predicciones precisas y mejoran el rendimiento de las aplicaciones sin causar ning煤n efecto negativo. El primer enfoque analiza las instrucciones de applicaciones escritas en lenguajes de programaci贸n orientados a objetos con el fin de precargar datos de almacenes de objetos persistentes. El enfoque emplea an谩lisis est谩tico de c贸digo hecho antes de la ejecuci贸n de las aplicaciones, y por lo tanto no afecta negativamente el rendimiento de las mismas. El enfoque tambi茅n incluye varias estrategias para tratar casos que requieren informaci贸n de runtime no disponible antes de ejecutar las aplicaciones. Adem谩s, integramos este enfoque en un almac茅n de objetos persistentes y ejecutamos una serie extensa de experimentos para medir la mejora de rendimiento que se puede obtener utilizando el enfoque. Por otro lado, el segundo enfoque analiza las sentencias y logs del lenguaje declarativo de consultas SPARQL para precargar datos de triplestores de RDF. Este enfoque aplica dos medidas para calcular la similtud entre las consultas del lenguaje SPARQL con el objetivo de detectar patrones recurrentes en los logs hist贸ricos. Posteriormente, el enfoque utiliza los patrones detectados para predecir las consultas siguientes y precargar con antelaci贸n los datos que necesitan. Nuestra evaluaci贸n muestra que este enfoque produce predicciones de alta precisi贸n y puede lograr un alto 铆ndice de aciertos cuando los resultados de las consultas predichas se guardan en el cach茅.Postprint (published version

    Computer-language based data prefetching techniques

    Get PDF
    Data prefetching has long been used as a technique to improve access times to persistent data. It is based on retrieving data records from persistent storage to main memory before the records are needed. Data prefetching has been applied to a wide variety of persistent storage systems, from file systems to Relational Database Management Systems and NoSQL databases, with the aim of reducing access times to the data maintained by the system and thus improve the execution times of the applications using this data. However, most existing solutions to data prefetching have been based on information that can be retrieved from the storage system itself, whether in the form of heuristics based on the data schema or data access patterns detected by monitoring access to the system. There are multiple disadvantages of these approaches in terms of the rigidity of the heuristics they use, the accuracy of the predictions they make and / or the time they need to make these predictions, a process often performed while the applications are accessing the data and causing considerable overhead. In light of the above, this thesis proposes two novel approaches to data prefetching based on predictions made by analyzing the instructions and statements of the computer languages used to access persistent data. The proposed approaches take into consideration how the data is accessed by the higher-level applications, make accurate predictions and are performed without causing any additional overhead. The first of the proposed approaches aims at analyzing instructions of applications written in object-oriented languages in order to prefetch data from Persistent Object Stores. The approach is based on static code analysis that is done prior to the application execution and hence does not add any overhead. It also includes various strategies to deal with cases that require runtime information unavailable prior to the execution of the application. We integrate this analysis approach into an existing Persistent Object Store and run a series of extensive experiments to measure the improvement obtained by prefetching the objects predicted by the approach. The second approach analyzes statements and historic logs of the declarative query language SPARQL in order to prefetch data from RDF Triplestores. The approach measures two types of similarity between SPARQL queries in order to detect recurring query patterns in the historic logs. Afterwards, it uses the detected patterns to predict subsequent queries and launch them before they are requested to prefetch the data needed by them. Our evaluation of the proposed approach shows that it high-accuracy prediction and can achieve a high cache hit rate when caching the results of the predicted queries.Precargar datos ha sido una de las t茅cnicas m谩s comunes para mejorar los tiempos de acceso a datos persistentes. Esta t茅cnica se basa en predecir los registros de datos que se van a acceder en el futuro y cargarlos del almacenimiento persistente a la memoria con antelaci贸n a su uso. Precargar datos ha sido aplicado en multitud de sistemas de almacenimiento persistente, desde sistemas de ficheros a bases de datos relacionales y NoSQL, con el objetivo de reducir los tiempos de acceso a los datos y por lo tanto mejorar los tiempos de ejecuci贸n de las aplicaciones que usan estos datos. Sin embargo, la mayor铆a de los enfoques existentes utilizan predicciones basadas en informaci贸n que se encuentra dentro del mismo sistema de almacenimiento, ya sea en forma de heur铆sticas basadas en el esquema de los datos o patrones de acceso a los datos generados mediante la monitorizaci贸n del acceso al sistema. Estos enfoques presentan varias desventajas en cuanto a la rigidez de las heur铆sticas usadas, la precisi贸n de las predicciones generadas y el tiempo que necesitan para generar estas predicciones, un proceso que se realiza con frecuencia mientras las aplicaciones acceden a los datos y que puede tener efectos negativos en el tiempo de ejecuci贸n de estas aplicaciones. En vista de lo anterior, esta tesis presenta dos enfoques novedosos para precargar datos basados en predicciones generadas por el an谩lisis de las instrucciones y sentencias del lenguaje inform谩tico usado para acceder a los datos persistentes. Los enfoques propuestos toman en consideraci贸n c贸mo las aplicaciones acceden a los datos, generan predicciones precisas y mejoran el rendimiento de las aplicaciones sin causar ning煤n efecto negativo. El primer enfoque analiza las instrucciones de applicaciones escritas en lenguajes de programaci贸n orientados a objetos con el fin de precargar datos de almacenes de objetos persistentes. El enfoque emplea an谩lisis est谩tico de c贸digo hecho antes de la ejecuci贸n de las aplicaciones, y por lo tanto no afecta negativamente el rendimiento de las mismas. El enfoque tambi茅n incluye varias estrategias para tratar casos que requieren informaci贸n de runtime no disponible antes de ejecutar las aplicaciones. Adem谩s, integramos este enfoque en un almac茅n de objetos persistentes y ejecutamos una serie extensa de experimentos para medir la mejora de rendimiento que se puede obtener utilizando el enfoque. Por otro lado, el segundo enfoque analiza las sentencias y logs del lenguaje declarativo de consultas SPARQL para precargar datos de triplestores de RDF. Este enfoque aplica dos medidas para calcular la similtud entre las consultas del lenguaje SPARQL con el objetivo de detectar patrones recurrentes en los logs hist贸ricos. Posteriormente, el enfoque utiliza los patrones detectados para predecir las consultas siguientes y precargar con antelaci贸n los datos que necesitan. Nuestra evaluaci贸n muestra que este enfoque produce predicciones de alta precisi贸n y puede lograr un alto 铆ndice de aciertos cuando los resultados de las consultas predichas se guardan en el cach茅
    corecore