MongoDB is a popular NoSQL database. This presentation was delivered during a workshop.
First it talks about NoSQL databases, shift in their design paradigm, focuses a little more on document based NoSQL databases and tries drawing some parallel from SQL databases.
Second part, is for hands-on session of MongoDB using mongo shell. But the slides help very less.
At last it touches advance topics like data replication for disaster recovery and handling big data using map-reduce as well as Sharding.
A look at what HA is and what PostgreSQL has to offer for building an open source HA solution. Covers various aspects in terms of Recovery Point Objective and Recovery Time Objective. Includes backup and restore, PITR (point in time recovery) and streaming replication concepts.
What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...ScaleGrid.io
Compare top PostgreSQL high availability frameworks - PostgreSQL Automatic Failover (PAF), Replication Manager (repmgr) and Patroni to improve your app uptime. ScaleGrid blog - https://scalegrid.io/blog/whats-the-best-postgresql-high-availability-framework-paf-vs-repmgr-vs-patroni-infographic/
MongoDB is a popular NoSQL database. This presentation was delivered during a workshop.
First it talks about NoSQL databases, shift in their design paradigm, focuses a little more on document based NoSQL databases and tries drawing some parallel from SQL databases.
Second part, is for hands-on session of MongoDB using mongo shell. But the slides help very less.
At last it touches advance topics like data replication for disaster recovery and handling big data using map-reduce as well as Sharding.
A look at what HA is and what PostgreSQL has to offer for building an open source HA solution. Covers various aspects in terms of Recovery Point Objective and Recovery Time Objective. Includes backup and restore, PITR (point in time recovery) and streaming replication concepts.
What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...ScaleGrid.io
Compare top PostgreSQL high availability frameworks - PostgreSQL Automatic Failover (PAF), Replication Manager (repmgr) and Patroni to improve your app uptime. ScaleGrid blog - https://scalegrid.io/blog/whats-the-best-postgresql-high-availability-framework-paf-vs-repmgr-vs-patroni-infographic/
Presentation that I gave as a guest lecture for a summer intensive development course at nod coworking in Dallas, TX. The presentation targets beginning web developers with little, to no experience in databases, SQL, or PostgreSQL. I cover the creation of a database, creating records, reading/querying records, updating records, destroying records, joining tables, and a brief introduction to transactions.
This is a introduction to PostgreSQL that provides a brief overview of PostgreSQL's architecture, features and ecosystem. It was delivered at NYLUG on Nov 24, 2014.
http://www.meetup.com/nylug-meetings/events/180533472/
This is a talk on how you can monitor your microservices architecture using Prometheus and Grafana. This has easy to execute steps to get a local monitoring stack running on your local machine using docker.
Why we love pgpool-II and why we hate it!PGConf APAC
This talk was presented at pgDay Asia 2017. This details some of the great features of pgpool and some practical challenges faced by the speaker. It concludes with some tips while using pgpool and when not to use pgpool
ProxySQL - High Performance and HA Proxy for MySQLRené Cannaò
High Availability proxy designed to solve real issues of MySQL setups from small to very large production environments.
Presentation at Percona Live Amsterdam 2015
PostgreSQL 10 had added built-in logical replication which tackles some of the limitations of physical replication and opens up the possibility of promising new areas of replication. In this webinar, we will introduce the concept of logical replication and demonstrate how one can configure a logical replication in no time.
Highlights include:
- Basic architecture, including the publisher and subscriber model
- Configuration, administration, and monitoring
- Limitations and future plans
PostgreSQL (or Postgres) began its life in 1986 as POSTGRES, a research project of the University of California at Berkeley.
PostgreSQL isn't just relational, it's object-relational.it's object-relational. This gives it some advantages over other open source SQL databases like MySQL, MariaDB and Firebird.
Learn how to load balance your applications following best practices with NGINX and NGINX Plus.
Join this webinar to learn:
- How to configure basic HTTP load balancing features
- The essential elements of load balancing: session persistence, health checks, and SSL termination
- How to load balance MySQL, DNS, and other common TCP/UDP applications
- How to have NGINX Plus automatically discover new service instances in an auto-scaling or microservices environment
In this webinar we help you get started using NGINX, the de facto web server for building modern applications. We cover best practices for installing, configuring, and troubleshooting both NGINX Open Source and the enterprise-grade NGINX Plus.
https://www.nginx.com/resources/webinars/nginx-basics-best-practices-emea-2/
Kubernetes is a solid leader among different cloud orchestration engines and its adoption rate is growing on a daily basis. Naturally people want to run both their applications and databases on the same infrastructure.
There are a lot of ways to deploy and run PostgreSQL on Kubernetes, but most of them are not cloud-native. Around one year ago Zalando started to run HA setup of PostgreSQL on Kubernetes managed by Patroni. Those experiments were quite successful and produced a Helm chart for Patroni. That chart was useful, albeit a single problem: Patroni depended on Etcd, ZooKeeper or Consul.
Few people look forward to deploy two applications instead of one and support them later on. In this talk I would like to introduce Kubernetes-native Patroni. I will explain how Patroni uses Kubernetes API to run a leader election and store the cluster state. I’m going to live-demo a deployment of HA PostgreSQL cluster on Minikube and share our own experience of running more than 130 clusters on Kubernetes.
Patroni is a Python open-source project developed by Zalando in cooperation with other contributors on GitHub: https://github.com/zalando/patroni
How to do a LIVE-demo with minikube:
1. git clone https://github.com/zalando/patroni
2. cd patroni
3. git checkout feature/demo
4. cd kubernetes
5. open demo.sh and edit line #4 (specify the minikube context )
6. docker build -t patroni .
7. may be docker push patroni
8. may be edit patroni_k8s.yaml line #22 and put the name of patroni image you build there
9. install tmux
10. run tmux in one terminal
11. run bash demo.sh in another terminal and press Enter from time to time
MySQL and MariaDB though they share the same roots for replication .They support parallel replication , but they diverge the way the parallel replication is implemented.
C* Summit 2013: The World's Next Top Data Model by Patrick McFadinDataStax Academy
You know you need Cassandra for it's uptime and scaling, but what about that data model? Let's bridge that gap and get you building your game changing app. We'll break down topics like storing objects and indexing for fast retrieval. You will see by understanding a few things about Cassandra internals, you can put your data model in the spotlight. The goal of this talk is to get you comfortable working with data in Cassandra throughout the application lifecycle. What are you waiting for? The cameras are waiting!
Presentación realizada en el 3er Encuentro de Bases de Datos Libres realizado por CNTI en CANTV el 04/05/2012. mas información en http://leninmhs.wordpress.com/2012/05/09/alta-disponibilidad-pgpool
Presentation that I gave as a guest lecture for a summer intensive development course at nod coworking in Dallas, TX. The presentation targets beginning web developers with little, to no experience in databases, SQL, or PostgreSQL. I cover the creation of a database, creating records, reading/querying records, updating records, destroying records, joining tables, and a brief introduction to transactions.
This is a introduction to PostgreSQL that provides a brief overview of PostgreSQL's architecture, features and ecosystem. It was delivered at NYLUG on Nov 24, 2014.
http://www.meetup.com/nylug-meetings/events/180533472/
This is a talk on how you can monitor your microservices architecture using Prometheus and Grafana. This has easy to execute steps to get a local monitoring stack running on your local machine using docker.
Why we love pgpool-II and why we hate it!PGConf APAC
This talk was presented at pgDay Asia 2017. This details some of the great features of pgpool and some practical challenges faced by the speaker. It concludes with some tips while using pgpool and when not to use pgpool
ProxySQL - High Performance and HA Proxy for MySQLRené Cannaò
High Availability proxy designed to solve real issues of MySQL setups from small to very large production environments.
Presentation at Percona Live Amsterdam 2015
PostgreSQL 10 had added built-in logical replication which tackles some of the limitations of physical replication and opens up the possibility of promising new areas of replication. In this webinar, we will introduce the concept of logical replication and demonstrate how one can configure a logical replication in no time.
Highlights include:
- Basic architecture, including the publisher and subscriber model
- Configuration, administration, and monitoring
- Limitations and future plans
PostgreSQL (or Postgres) began its life in 1986 as POSTGRES, a research project of the University of California at Berkeley.
PostgreSQL isn't just relational, it's object-relational.it's object-relational. This gives it some advantages over other open source SQL databases like MySQL, MariaDB and Firebird.
Learn how to load balance your applications following best practices with NGINX and NGINX Plus.
Join this webinar to learn:
- How to configure basic HTTP load balancing features
- The essential elements of load balancing: session persistence, health checks, and SSL termination
- How to load balance MySQL, DNS, and other common TCP/UDP applications
- How to have NGINX Plus automatically discover new service instances in an auto-scaling or microservices environment
In this webinar we help you get started using NGINX, the de facto web server for building modern applications. We cover best practices for installing, configuring, and troubleshooting both NGINX Open Source and the enterprise-grade NGINX Plus.
https://www.nginx.com/resources/webinars/nginx-basics-best-practices-emea-2/
Kubernetes is a solid leader among different cloud orchestration engines and its adoption rate is growing on a daily basis. Naturally people want to run both their applications and databases on the same infrastructure.
There are a lot of ways to deploy and run PostgreSQL on Kubernetes, but most of them are not cloud-native. Around one year ago Zalando started to run HA setup of PostgreSQL on Kubernetes managed by Patroni. Those experiments were quite successful and produced a Helm chart for Patroni. That chart was useful, albeit a single problem: Patroni depended on Etcd, ZooKeeper or Consul.
Few people look forward to deploy two applications instead of one and support them later on. In this talk I would like to introduce Kubernetes-native Patroni. I will explain how Patroni uses Kubernetes API to run a leader election and store the cluster state. I’m going to live-demo a deployment of HA PostgreSQL cluster on Minikube and share our own experience of running more than 130 clusters on Kubernetes.
Patroni is a Python open-source project developed by Zalando in cooperation with other contributors on GitHub: https://github.com/zalando/patroni
How to do a LIVE-demo with minikube:
1. git clone https://github.com/zalando/patroni
2. cd patroni
3. git checkout feature/demo
4. cd kubernetes
5. open demo.sh and edit line #4 (specify the minikube context )
6. docker build -t patroni .
7. may be docker push patroni
8. may be edit patroni_k8s.yaml line #22 and put the name of patroni image you build there
9. install tmux
10. run tmux in one terminal
11. run bash demo.sh in another terminal and press Enter from time to time
MySQL and MariaDB though they share the same roots for replication .They support parallel replication , but they diverge the way the parallel replication is implemented.
C* Summit 2013: The World's Next Top Data Model by Patrick McFadinDataStax Academy
You know you need Cassandra for it's uptime and scaling, but what about that data model? Let's bridge that gap and get you building your game changing app. We'll break down topics like storing objects and indexing for fast retrieval. You will see by understanding a few things about Cassandra internals, you can put your data model in the spotlight. The goal of this talk is to get you comfortable working with data in Cassandra throughout the application lifecycle. What are you waiting for? The cameras are waiting!
Presentación realizada en el 3er Encuentro de Bases de Datos Libres realizado por CNTI en CANTV el 04/05/2012. mas información en http://leninmhs.wordpress.com/2012/05/09/alta-disponibilidad-pgpool
TEDx Manchester: AI & The Future of WorkVolker Hirsch
TEDx Manchester talk on artificial intelligence (AI) and how the ascent of AI and robotics impacts our future work environments.
The video of the talk is now also available here: https://youtu.be/dRw4d2Si8LA
Presentación sobre la herramienta Gulp. En ella se explica donde se sitúa gulp dentro de los ecosistemas javascript, como funciona internamente, como funciona el API y ejemplos de algunos plugins para utilizar en tareas.
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
A technical overview of kubernetes (in spanish). We, at Restorando, are running it in production for 6+ months.
This was presented at the AWS meet up, with some other guys talking about other options to run Docker in production on AWS. We talked about kubernetes (what we are using :))
Some animations are not correctly shown here, sorry about that.
El despliegue de aplicaciones dentro de contenedores en producción cada vez está más extendido y, de todas las opciones de orquestación, Kubernetes (K8s) es la que, indiscutiblemente, está ganando la batalla.
Pero, si soy developer, ¿esto me importa? No debemos ver los contenedores y la orquestación de estos como algo “de sistemas”. Hay distintas razones por las que (nos) conviene saber de qué va esto.
La primera razón, y posiblemente la más importante, es que el uso de contenedores nos facilita la vida durante el desarrollo y nos ayuda a mantener nuestro entorno de trabajo limpio sin tener que lidiar con la instalación de diferentes versiones del mismo software, por ejemplo. Si nuestra “aplicación” consta de diferentes servicios, tener una manera de describirlos todos y sus dependencias simplifica enormemente el arranque y parada de estos servicios, pudiendolo hacer en bloque.
También hay que tener en cuenta que para que las aplicaciones puedan aprovechar todas las ventajas que Docker y Kubernetes ofrecen deben cumplir ciertas condiciones. Como developers, debemos tenerlo en cuenta a la hora de pensar la arquitectura y diseño de estas: cómo se les provee la configuración, cómo se deben comportar ante el escalado y la convivencia de versiones,...
Sabemos que los distintos entornos, (local, test, staging, preproducción, producción, …) deben tener la misma configuración o podemos encontrarnos con sorpresas desagradables a la hora de desplegar. Esto, que históricamente ha sido una utopía, con los contenedores es posible. En esta charla veremos cómo podemos arrancar en local un entorno lo más similar a producción, arrancando Kubernetes en local.
En nuestro sistema de CI, además de por homogeneización de entornos, también podemos sacar partido de tener nuestra aplicaciones “contenerizadas”. Veremos cómo integrar cualquier sistema de CI con Kubernetes para conseguir un Continuous Deployment real. A partir de aquí, dar el salto a Continuous Delivery es prácticamente trivial con K8s!
Por si estas razones no fueran suficientes, conocer los conceptos y el entorno en los que nuestras aplicaciones se despliegan nos ayudará a comunicarnos con DevOps y atajar juntos los problemas que puedan surgir. Durante la charla veremos los conceptos básicos de K8s y cómo podemos desplegarlo en AWS con Elastic Container Service for Kubernetes (EKS) para hacer pruebas o, quién sabe, poder estar más cerca de ser un Full Cycle Developer.
Cursillos e-ghost Septiembre 2010. Open ERP como software de gestión contableAlex Rayón Jerez
Dirigido a cualquier persona y/o cualquier organización, el cursillo sobre la herramienta de software libre OpenERP permitirá a los asistentes conocer las superficialidades de esta herramienta de gestión de los recursos de la empresa, que si bien es transversal a muchas áreas de gestión empresarial, es parametrizable a necesidades específicas de la organización (contabilidad, recursos humanos, compras, clientes, etc.)
En este curso, se introducirá el ERP de software libre que mayor crecimiento ha experimentado en las últimas fechas, y se presentará su parametrización como herramienta contable como alternativa real y válida a otras herramientas de gestión como pudiera ser Contaplus de Sage o similares.
Dev Tools para Kubernetes - Codemotion 2019Micael Gallego
Charla impartida entre Pablo Chico y Micael Gallego en la que se muestran algunas herramientas para mejorar la experiencia de desarrollo de aplicaciones cloud native para Kubernetes. Concretamente, se presenta cómo okteto puede reducir el tiempo empleado en el ciclo de change, build, push, deploy de pods Java en Kubernetes usando la sincronización de ficheros.
Ejemplos de código en https://github.com/micaelgallego/k8s-dev-tools-codemo19
Estas son las slides que utilicé en la charla de la reunión de Septiembre de 2014 del GDG de Madrid.
Desde hace tiempo, los desarrolladores venimos utilizando scripts para automatizar y facilitarnos la construcción automática de nuestros proyectos.
En los intentos de estandarización de esos Scripts, la primera herramienta fue Ant, muy flexible, pero muy tediosa por lo verboso y por que siempre había que empezar desde cero.
La llegada de Maven supuso una cierta convención en las tareas y fases de construcción de un proyecto. Pero también incluía una tremenda facilidad para la gestión de librerías y dependencias. A cambio, impone una cierta rigidez en la estructura del script.
Gradle ha venido a buscar lo mejor de los dos mundos: la fexibilidad de Ant, la convención de Maven, la gestión de librerías de Ivy o Mvn.... y todo ello con un lenguaje de scripting más parecido al código que al XML en el que se basan las dos precedesoras.
Desde hace meses, Google ya ha apostado por Gradle como sistema de construcción de proyectos para Android en su Android Studio.
En esta charla, haremos una introducción a Gradle como herramienta de construcción de proyectos.
HPE presenta una competició destinada a estudiants, que busca fomentar habilitats tecnològiques i promoure la innovació en un entorn STEAM (Ciència, Tecnologia, Enginyeria, Arts i Matemàtiques). A través de diverses fases, els equips han de resoldre reptes mensuals basats en àrees com algorísmica, desenvolupament de programari, infraestructures tecnològiques, intel·ligència artificial i altres tecnologies. Els millors equips tenen l'oportunitat de desenvolupar un projecte més gran en una fase presencial final, on han de crear una solució concreta per a un conflicte real relacionat amb la sostenibilitat. Aquesta competició promou la inclusió, la sostenibilitat i l'accessibilitat tecnològica, alineant-se amb els Objectius de Desenvolupament Sostenible de l'ONU.
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialAMADO SALVADOR
Explora el catálogo completo de cajas fuertes BTV, disponible a través de Amado Salvador, distribuidor oficial de BTV. Este catálogo presenta una amplia variedad de cajas fuertes, cada una diseñada con la más alta calidad para ofrecer la máxima seguridad y satisfacer las diversas necesidades de protección de nuestros clientes.
En Amado Salvador, como distribuidor oficial de BTV, ofrecemos productos que destacan por su innovación, durabilidad y robustez. Las cajas fuertes BTV son reconocidas por su eficiencia en la protección contra robos, incendios y otros riesgos, lo que las convierte en una opción ideal tanto para uso doméstico como comercial.
Amado Salvador, distribuidor oficial BTV, asegura que cada producto cumpla con los más estrictos estándares de calidad y seguridad. Al adquirir una caja fuerte a través de Amado Salvador, distribuidor oficial BTV, los clientes pueden tener la tranquilidad de que están obteniendo una solución confiable y duradera para la protección de sus pertenencias.
Este catálogo incluye detalles técnicos, características y opciones de personalización de cada modelo de caja fuerte BTV. Desde cajas fuertes empotrables hasta modelos de alta seguridad, Amado Salvador, como distribuidor oficial de BTV, tiene la solución perfecta para cualquier necesidad de seguridad. No pierdas la oportunidad de conocer todos los beneficios y características de las cajas fuertes BTV y protege lo que más valoras con la calidad y seguridad que solo BTV y Amado Salvador, distribuidor oficial BTV, pueden ofrecerte.
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...AMADO SALVADOR
El catálogo general de electrodomésticos Teka presenta una amplia gama de productos de alta calidad y diseño innovador. Como distribuidor oficial Teka, Amado Salvador ofrece soluciones en electrodomésticos Teka que destacan por su tecnología avanzada y durabilidad. Este catálogo incluye una selección exhaustiva de productos Teka que cumplen con los más altos estándares del mercado, consolidando a Amado Salvador como el distribuidor oficial Teka.
Explora las diversas categorías de electrodomésticos Teka en este catálogo, cada una diseñada para satisfacer las necesidades de cualquier hogar. Amado Salvador, como distribuidor oficial Teka, garantiza que cada producto de Teka se distingue por su excelente calidad y diseño moderno.
Amado Salvador, distribuidor oficial Teka en Valencia. La calidad y el diseño de los electrodomésticos Teka se reflejan en cada página del catálogo, ofreciendo opciones que van desde hornos, placas de cocina, campanas extractoras hasta frigoríficos y lavavajillas. Este catálogo es una herramienta esencial para inspirarse y encontrar electrodomésticos de alta calidad que se adaptan a cualquier proyecto de diseño.
En Amado Salvador somos distribuidor oficial Teka en Valencia y ponemos atu disposición acceso directo a los mejores productos de Teka. Explora este catálogo y encuentra la inspiración y los electrodomésticos necesarios para equipar tu hogar con la garantía y calidad que solo un distribuidor oficial Teka puede ofrecer.
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaAMADO SALVADOR
Distribuidor Oficial Ariston en Valencia: Amado Salvador distribuidor autorizado de Ariston, una marca líder en soluciones de calefacción y agua caliente sanitaria. Amado Salvador pone a tu disposición el catálogo completo de Ariston, encontrarás una amplia gama de productos diseñados para satisfacer las necesidades de hogares y empresas.
Calderas de condensación: Ofrecemos calderas de alta eficiencia energética que aprovechan al máximo el calor residual. Estas calderas Ariston son ideales para reducir el consumo de gas y minimizar las emisiones de CO2.
Bombas de calor: Las bombas de calor Ariston son una opción sostenible para la producción de agua caliente. Utilizan energía renovable del aire o el suelo para calentar el agua, lo que las convierte en una alternativa ecológica.
Termos eléctricos: Los termos eléctricos, como el modelo VELIS TECH DRY (sustito de los modelos Duo de Fleck), ofrecen diseño moderno y conectividad WIFI. Son ideales para hogares donde se necesita agua caliente de forma rápida y eficiente.
Aerotermia: Si buscas una solución aún más sostenible, considera la aerotermia. Esta tecnología extrae energía del aire exterior para calentar tu hogar y agua. Además, puede ser elegible para subvenciones locales.
Amado Salvador es el distribuidor oficial de Ariston en Valencia. Explora el catálogo y descubre cómo mejorar la comodidad y la eficiencia en tu hogar o negocio.
2. Agenda
• ¿Qué es pgpool-II? • Otros detalles de
– Arquitectura configuración
• Instalación • Recomendaciones para
– Paquetería el uso eficaz de pgpool
– Compilación • Ejercicio realizado
– pgpool-II admin durante el taller
• Configuración
– Replicación
– Maestro Esclavo
– Stream
– Otros usos de pgpool-II
3. ¿Qué es pgpool-II?
pgpool-II es un middleware que trabaja entre
servidores y clientes de PostgreSQL. El mismo
provee las siguientes funcionalidades:
• Agrupado de Conexiones (connection pooling)
• Replicación
• Balance de Cargas (load balance)
• Limitación de Conexiones
• Distribución de Consultas (parallel query)
14. Instalación
Compilación
Instrucción
$ make
$ make install
$ psql -p #### -U postgres -h ###### -f pgpool-regclass.sql template1
$ psql -p $$$$ -U postgres -h $$$$$$ -f pgpool-regclass.sql template1
$ cd ../..
(sustituya los valores velados con #### y $$$$ por los
correspondientes a las instancias de postgres que utilizará como nodos
del cluster)
18. Instalación
pgpool Admin
$ wget http://pgfoundry.org/frs/download.php/3149/pgpoolAdmin-
3.1.0.tar.gz
$ tar -xzf pgpoolAdmin-3.1.0.tar.gz
$ cd pgpoolAdmin-3.1.0/conf/
$ nano pgmgt.conf.php
Y configure los datos para acceder a los nodos y a pgpool.
Posteriormente proceda a instalar el pgpoolAdmin según sus
preferencias dentro del servidor web Apache.
19. Configuración
• pgpool tiene 3 archivos de configuración
– pgpool.conf
– pcp.conf
– pool_hba.conf
• Dependiendo de cada escenario de HA
deberemos configurar el archivo pgpool.conf
• Para los configurar los accesos al pool se utiliza el
archivo pool_hba.conf
• Es altamente recomendable que todos los
accesos a los backends del pool se restrinjan
solamente a pgpool
20. Escenario 1 (Replicación)
• Para configurar pgpool para replicación
debemos tener en cuenta inicialmente los
siguientes valores para la configuración el
archivo pgpool.conf
replication_mode = on
insert_lock = on
black_function_list = 'nextval,setval'
master_slave_mode = off
21. Escenario 2 (Maestro-Esclavo)
• Para configurar pgpool para Maestro-
Esclavo debemos tener en cuenta
inicialmente los siguientes valores para la
configuración el archivo pgpool.conf
replication_mode = off
insert_lock = off
black_function_list = 'currval,lastval,nextval,setval'
master_slave_mode = on
22. Escenario 3 (Stream)
• Para configurar pgpool para Stream
debemos tener en cuenta inicialmente los
siguientes valores para la configuración el
archivo pgpool.conf
log_standby_delay = 'if_over_threshold'
replication_mode = off
insert_lock = off
black_function_list = 'currval,lastval,nextval,setval'
master_slave_mode = on
sr_check_period = 10
delay_threshold = 10000000
23. Otros Detalles de Configuración
• Se recomienda revisar los archivos de
configuración de ejemplo que trae los
fuentes de pgpool con un comparador como
Meld o K3Diff
• pgpool tiene cantidad de variantes dentro de
su configuración que se recomienda
ampliamente que visite
http://www.pgpool.net/pgpool-web/pgpool-
II/doc/pgpool-en.html para más detalles.
24. Recomendaciones para el uso
eficaz de pgpool
• Diseñar su cluster
• Planificar su implantación
• Entonar cada nodo de PostgreSQL
• Balancear el cluster según las capacidades de
cada nodo, a mayor potencia mayor peso.
• Bloquear accesos externos a los nodos del
cluster
• Configurar los accesos en el archivo
pgpool_hba.conf
25. Recomendaciones para el uso
eficaz de pgpool
• Diseñe e implemente su mecanismo de
recuperación de eventualidades conforme a
sus requerimientos de QA
• Ante las dudas o ambigüedades que se le
presenten durante la instalación y
configuración evite la tentación de adivinar,
use la documentación, listas de correo y otros
espacios de discusión
• Recuerde, la alta disponibilidad se mide por
sus resultados en continuidad de servicio.
26. Ejercicio Realizado en el Taller
• Si va a repetir el ejercicio en entorno gráfico
aségurese de configurar la herramienta
phpPgAdmin con acceso a los nodos del
cluster y al puerto de pgpool.
• En caso de hacer el ejemplo desde la
interfaz de líneas de comandos abra tantas
terminales como sesiones de psql vaya a
tomar en consideración (1 para pgpool + 1
por cada nodo del cluster)
27. Ejercicio Realizado en el Taller
• Nos conectamos a los backends (nodos) y a
pgpool
• Creamos una base de datos nueva desde la
conexión a pgpool
• Validamos que la misma se haya creado en
los backends
28. Ejercicio Realizado en el Taller
• Nos conectamos a los backends (nodos) y a
pgpool
$ psql -p #### -h #######
• Desde la conexión a pgpool creamos una base de
datos nueva
postgres# CREATE DATABASE bd1 ENCODING
'utf8';
• Validamos que la misma se haya creado en los
backends
postgres# l
29. Ejercicio Realizado en el Taller
• Nos conectamos a nuestra nueva base de
datos
• Creamos una tabla en nuestra base de
datos
• Revisamos el contenido de la tabla en
pgpool y en cada uno de los backends
(nodos)
• Hacemos la misma prueba con una tabla
con fechas y horas.
30. Ejercicio Realizado en el Taller
# c bd1
# CREATE TABLE tabla1 (id serial, nombre
varchar(70), apellido varchar (50));
# INSERT INTO tabla1 (nombre,apellido)
VALUES ('Juan','Salao');
Ejecutar en cada uno de los nodos
# SELECT * FROM tabla1;
31. Ejercicio Realizado en el Taller
# CREATE TABLE prueba_tiempo (id int,
tiempo timestamp without time zone);
# INSERT INTO prueba_tiempo values
(1,now());
Ejecutar en cada uno de los nodos
# SELECT * FROM prueba_tiempo;
32. Ejercicio Realizado en el Taller
• Creamos una función
• Ejecutamos la función
• Validamos el resultado
• Ejecutamos la función con el “hint” para que
pgpool no realice balance en la ejecución.
33. Ejercicio Realizado en el Taller
# CREATE or replace function insertar_fechas (i int)
returns void as $$
declare
x int;
begin
x:=0;
for x in 1..i loop
insert into prueba_tiempo values(x,now());
RAISE NOTICE 'x es %', x;
end loop;
end
$$ language plpgsql;
34. Ejercicio Realizado en el Taller
# SELECT insertar_fechas(5);
Ver resultados en pgpool
Ver resultados en cada uno de los backends
(efectos: now() toma un valor durante la
transacción por ende se repite 5 veces la
misma hora, debido a que pgpool balanceó la
consulta los resultados fueron enviados a uno
solo de los backends)
35. Ejercicio Realizado en el Taller
Limpiamos el contenido de la tabla desde la
conexión a pgpool
# TRUNCATE prueba_tiempo;
Ejecutamos la función con el “hint” para
pgpool
# /* NO LOAD BALANCE */ SELECT
insertar_fechas(5);
36. Ejercicio Realizado en el Taller
Ejercicio que queda indicado:
Igual que el anterior pero utilice la función que
se le indica a continuación para la tabla:
# CREATE TABLE prueba_nombre (nombre
VARCHAR);
37. Ejercicio Realizado en el Taller
# CREATE or replace function insertar_nombre (i
varchar) returns void as
$$
declare
begin
insert into prueba_nombre values(i);
RAISE NOTICE 'se inserto el nombre %', i;
end
$$
language plpgsql;