Hashing y mapas

Tranquilos, no voy a hablar ni de blockchain ni de geoposicionamiento, sino de un tema más aburrido y básico: sobre funciones hash y hash maps.

En este post os contaré un caso real en Nextail, donde el cambio de una sóla línea de código relacionada con una función hash cambió el rendimiento de una aplicación, tanto por consumo de CPU como de memoria.

Continue reading...
Persistiendo muy rápido en base de datos: JFleet

En los anteriores artículos os hablé de cómo persistir vuestra información lo más rápido posible cuando estáis limitados a JPA y cómo hacerlo con sólo JDBC. A pesar de que JDBC sea la pieza básica de comunicación con la base de datos, hay formas de saltarsela y, sin salir de la JVM, persistir la información aún más rápido con la ayuda de ciertos métodos de los drivers JDBC de cada base de datos.

Spoiler: Al final del post os presentaré JFleet, una librería que os permitirá hacer esto de una forma muy sencilla.

Continue reading...
Persistiendo (rápido) en base de datos: JDBC

En el post anterior os hablé de cómo persistir vuestra información cuando estáis limitados a JPA, y maneras de conseguir que vaya lo más rápido posible. En esta ocasión veremos cómo persistir la misma información directamente con JDBC, sin intermediarios.

Continue reading...
Persistiendo (rápido) en base de datos: JPA

A lo largo de mi carrera profesional, cuando una base de datos tenía varios millones de registros consideraba que manejábamos un gran volumen de datos (sin llegar al Big Data). En Otogami llegamos a manejar un histórico de unas decenas de millones de registros y ya se me hacía muy pesado.

Trabajando en Nextail he visto que esos millones de registros eran calderilla, y que el volumen de datos que manejaba era bajo comparado con lo que es capaz de gestionar una base de datos moderna.

Continue reading...
Xender: Contando personas

En mi último post revisitando App Engine me propuse hacerlo probando a construir una aplicación que poder usar y desplegar de verdad. Siguiendo con la temática de mis anteriores posts decidí evolucionar la funcionalidad.

Continue reading...