sábado, 22 de febrero de 2025

PostgreSQL & Citus

Una guía paso a paso para configurar una base de datos distribuida en una red local usando PostgreSQL + Citus.

 

  Objetivo

 

Configurar PostgreSQL en múltiples máquinas dentro de una LAN.
Implementar Citus para sharding (distribuir datos entre varios nodos).
Aprender sobre replicación y consultas distribuidas.

 
🛠️ Requisitos

🔹 Tres máquinas (pueden ser físicas o VMs con Linux).
🔹 PostgreSQL 16+ instalado en cada máquina.
🔹 Citus instalado en cada nodo.
🔹 Red local funcionando (puedes usar VirtualBox, Docker o servidores físicos).

 
🔹 Paso 1: Instalar PostgreSQL y Citus

 

Haz esto en cada nodo de la red local.

 

1️ Instalar PostgreSQL

 

Ejecuta en cada servidor:



sudo apt update
sudo apt install postgresql postgresql-contrib -y
 

via ChatGpt



sábado, 15 de febrero de 2025

Base de Datos Distribuida

Definiciones de Base de Datos Distribuida

1️⃣ Date (2004)

"Una base de datos distribuida es una colección de datos que lógicamente pertenece a un mismo sistema, pero que está distribuida en diferentes sitios de una red de computadoras."
📖 (C. J. Date, "An Introduction to Database Systems")

2️⃣ Özsu y Valduriez (2011)

"Un sistema de base de datos distribuida es una colección de múltiples bases de datos interconectadas, que cooperan entre sí para proporcionar acceso a los datos de manera eficiente y transparente."
📖 (M. T. Özsu & P. Valduriez, "Principles of Distributed Database Systems")

3️⃣ Elmasri y Navathe (2016)

"Es una base de datos que está almacenada en múltiples ubicaciones, gestionada por un sistema de administración distribuido, y que presenta una vista única de los datos al usuario."
📖 (R. Elmasri & S. Navathe, "Fundamentals of Database Systems")

4️⃣ Tanenbaum y Steen (2017)

"Una base de datos distribuida es aquella en la que los datos están físicamente almacenados en múltiples sitios, pero son manejados de forma conjunta como si fueran una sola base de datos."
📖 (A. Tanenbaum & M. Steen, "Distributed Systems: Principles and Paradigms")

5️⃣ Silberschatz, Korth y Sudarshan (2019)

"Un sistema de base de datos distribuida permite el acceso concurrente a los datos almacenados en múltiples sitios, manteniendo consistencia y disponibilidad."
📖 (A. Silberschatz, H. Korth & S. Sudarshan, "Database System Concepts")

 

Historia y Evolución de las Bases de Datos Distribuidas

Década de 1970: Primeras Investigaciones

  • En 1976, C. J. Date y Philip A. Bernstein publicaron trabajos fundamentales sobre bases de datos distribuidas.
  • Peter A. Bernstein publicó en 1978 "Principles of Transaction Processing," donde exploró la consistencia en sistemas distribuidos.
  • IBM y otros grandes actores comenzaron a desarrollar arquitecturas distribuidas para optimizar procesamiento y almacenamiento.

Década de 1980: Formalización del Concepto

  • En 1982, Bruce Lindsay y otros investigadores de IBM trabajaron en R (R-Star),* una base de datos distribuida experimental.
  • En 1985, Andreas Reuter y Jim Gray (famoso por su trabajo en bases de datos y transacciones) establecieron principios de recuperación y consistencia.
  • Surgió el teorema CAP (Brewer, 2000), pero sus fundamentos ya se discutían en los 80s, planteando que en un sistema distribuido no se pueden garantizar simultáneamente consistencia, disponibilidad y tolerancia a particiones.

Década de 1990: Bases de Datos Distribuidas Comerciales

  • Empresas como Oracle, IBM DB2 y Microsoft SQL Server comenzaron a implementar replicación de datos y particionado para mejorar la escalabilidad.
  • En 1997, Amazon y Google comenzaron a desarrollar sus propios sistemas distribuidos para soportar millones de usuarios.

2000s – Presente: NoSQL, NewSQL y Cloud Databases

  • En 2006, Google presentó Bigtable, un sistema de almacenamiento distribuido altamente escalable.
  • En 2007, Amazon lanzó DynamoDB, basado en su paper sobre bases de datos distribuidas.
  • Facebook desarrolló Cassandra en 2008 para manejar grandes volúmenes de datos.
  • Google Spanner (2012) combinó consistencia y escalabilidad global.
  • CockroachDB y YugabyteDB (2015+) trajeron nuevas formas de bases de datos distribuidas transaccionales (NewSQL).

PostgreSQL & Citus

Una guía paso a paso para configurar una base de datos distribuida en una red local usando PostgreSQL + Citus .     Ob...