Y si hablamos de...
… pools y caches
Agosto 15th, 2003 - [Enlace local]
aunque ya me ha pasado más veces, los comentarios de �lvaro a mi post sobre el front controller me ha recordado la aparente confusión que hay entre los conceptos de pool y cache en la informática.
Bien, pongamos un ejemplo en cristiano. Supongamos que mi empresa tiene una biblioteca interna en la primera planta, y que yo trabajo en la décima. Y supongamos que tienen dos volúmenes de cada libro. Esta biblioteca serÃa un pool de objetos, puesto que puedes coger los libros pero después tienes que devolverlos para que otro los utilice (el hecho de que haya varios libros no juega ningún rol en este caso). Cojo un libro, lo leo, lo devuelvo. Listo. Si el libro que quiero esta ya prestado, o me quedo esperando, o la librerÃa compra una nueva edición (pool extensible), etc.
Como implemente aquà una cache?. Bien, si toda la gente que trabaja con Java esta en mi planta, porque no poner una habitación en la décima planta con los libros sobre java?. Asà no tendremos que ir al primer piso y volveremos más rápido al trabajo. Pero que pasa si no me entran en esa habitacion todos los libros sobre java?, que tendre únicamente los que se usan más a menudo. Si alguién quiere uno que no se encuentra en esta habitación tendremos que devolver uno a la biblioteca principal para poder dejar allà el nuevo.
En informática... bien, se suele hacer una pool de objetos que se quieren reutilzar, normalmente porque nos ha costado mucho crearlos o por su simpleza en cuanto a complejidad de ejecución (como conexiones con sockets, EJB SLSB, etc.). Sin embargo queremos hacer una cache de datos que usamos mucho, o que preveemos que se van a volver a utilizar en breve (como los diez últimos post en un foro, Entity Beans) para evitar volver a cargarlos.
posiblemetne sean malos ejemplos, estoy seguro, pero esumiendo se podrÃa decir: una pool hace que reciclemos, una cache hace que trabajemos menos.