Arquitectura e implementación de PostgreSQL 9.3Bryan Rodríguez
Resumen de la arquitectura interna, de objetos, de consultas, de administración de memoria y del Log de Transacciones de PostgreSQl y algunas concideraciones para implementar BD en él
Arquitectura e implementación de PostgreSQL 9.3Bryan Rodríguez
Resumen de la arquitectura interna, de objetos, de consultas, de administración de memoria y del Log de Transacciones de PostgreSQl y algunas concideraciones para implementar BD en él
Trabalho apresentado pelos alunos Márcia Gomes e Marlon Munhoz nas aulas de Banco de Dados, ministradas pela docente Lígia R. Prete na Faculdade de Tecnologia de Jales - FATEC Jales. Ano: 2011.
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/
Trabalho apresentado pelos alunos Márcia Gomes e Marlon Munhoz nas aulas de Banco de Dados, ministradas pela docente Lígia R. Prete na Faculdade de Tecnologia de Jales - FATEC Jales. Ano: 2011.
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/
Manual de Como conformar cooperativas y consorcios, publicado por el Ministerio de la Producción, orientado a emrpesa agrarias pero con datos/reglas que valen a cualquier rubro de negocio.
en la presente se muestra como se organiza la información mediante archivos y bases de datos; de que manera se puede tener acceso a los datos así guardados y a la información suministrada por otras fuentes, mediante las telecomunicaciones y las redes, que permiten ampliar el alcance de las computadoras más allá del escritorio.
Libro sobre exportación de servicios post Covid-19EQ SOFT EIRL
Este texto son las transcripciones de los casos de éxito en tecnología presentados en la conferencia "Exportación de Servicios Post Covid-19" realizada en Julio del 2020 por la Universidad San Ignacio de Loyola.
Un breve primer estudio sobre la participación de los peruanos en esta red social.
Logos Technology S.A.C. es una empresa especializada en Inteligencia Artificial y Ciencia de Datos, con base en Lima-Perú-
Centros Regionales de Innovación AplicadaEQ SOFT EIRL
Propuesta de generación de un ecosistema auto suficiente de desarrollo de negocios de base tecnológica aplicada a resolver problemas regionales que requieren de soluciones innovadoras.
EQ Soft: Soluciones de innovación agrariaEQ SOFT EIRL
Esta presentación muestra algunos de nuestros proyectos de innovación en el sector de agroindustria, contempla aplicación de robótica, internet of the farm e inteligencia artificial aplicadas a la gestión y mejora del proceso agricola.
Clusters Empresariales en LatinoaméricaEQ SOFT EIRL
Exposición realizada en Julio 2019 en la universidad UTEC, en ella comentamos las experiencias en el desarrollo de Cluster Empresariales en Perú y a nivel internacional.
Inteligencia Artificial en la Administración PúblicaEQ SOFT EIRL
Presentación realizada a funcionarios de administración pública sobre como aprovechar la Inteligencia Artificial con Logos en los servicios al ciudadano.
Inteligencia artificial para las empresas 2019EQ SOFT EIRL
Presentación del evento desarrollado en la ciudad de Tacna, en este documento explicamos que es y donde la IA ayuda a mejorar los procesos productivos empresariales.
Platique.me solución integral de Smart ChatBotEQ SOFT EIRL
Platique.me es la solución más avanzada de ChatBot del mercado, es más eficiente e inteligente que soluciones similares y capaz de integrarse con nuestro framework de Inteligencia Artificial.
Platique.me ahora escucha y habla, es la siguiente generación de herramientas de atención de contact centers.
Logos Dictados - solución de Speech to TextEQ SOFT EIRL
Dictados es la nueva herramienta de transcripción de audio a texto de Logos Technology. ideal en industria de seguridad, banca, atención al cliente final, call y contact center, etc.
Logos Biblios - Gestión de ConocimientosEQ SOFT EIRL
Biblios es una potente herramienta de aprendizaje sobre grandes volúmenes de textos.
Biblios lee y aprende casuísticas en grandes volúmenes documentales, se convierte en un soporte especializado en los temas que ha aprendido.
Gestione grandes cantidades de documentos con Biblios, converse de manera natural con su cerebro de IA sobre el conocimiento en ellos.
Logos, Framework de Inteligencia ArtificialEQ SOFT EIRL
Logos es un potente framework de Inteligencia Artificial, desarrollado enteramente bajo plataformas libres y sin costos ocultos se conveniente en la opción más conveniente para todas las empresas que desean entrar al mundo de la Inteligencia Artificial.
Logos: Framework de Inteligencia ArtificialEQ SOFT EIRL
Logos es un framework de Inteligencia Artificial, totalmente diseñado y producido por la empresa Logos Technology, implementando algoritmos propios y libres y usando técnicas avanzadas de análisis de datos.
Portafolio de Productos y Servicios de EqSoftEQ SOFT EIRL
Oferta comercial de EqSoft para el año 2018
- Inteligencia Artificial
- Big y Ciencia de Datos
- Robótica
- Industrial IoT
- Central de Proyectos de Software
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
Diagrama de flujo - ingenieria de sistemas 5to semestre
Postgresql Como Funciona Una Dbms Por Dentro
1. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 PostgreSQL Como funciona una Base de Datos por dentro Ernesto Quiñones Azcárate [email_address]
2. Agenda 1. Una corta introducción 2. Una DBMS por dentro 3. Almacenamiento y organización de los datos 4. Los índices 5. Como se procesa un Query 6. Concurrencia : Transacciones y bloqueos http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
3.
4. La primera vez que se uso el termino fue en un proyecto del ejercito norteamericano en una fecha no determinada entre los 1950 y principios de los 1960.
5. Las bases de datos libres y las privativas tienen casi el mismo tiempo de existencia ( http://tinyurl.com/l5fern ).
13. ...muchas otras por venir http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
14.
15. 1. Una corta introducción http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 PostgreSQL es una base de datos con una trayectoria mucho mas antigua de la que aparenta, pionera en la implementación de varios nuevas características en las DBMRS.
16. 2. Una DBMS por dentro PostgreSQL tiene una arquitectura que involucra muchos estilos, en su nivel mas alto es un esquema clásico cliente-servidor, mientras que el acceso a la data es un esquema en capas. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
17.
18. El server esta compuesto por 2 grandes subsistemas, el “Postmaster” que es el responsable de aceptar las comunicaciones con el cliente y autentificar y dar acceso. El “Postgre” se encarga de la administración de los querys y comandos enviados por el cliente. PostgreSQL trabaja bajo el concepto de “process per user”, eso significa un solo procesos cliente por conexión. Tanto el Postmaster como el Postgre deben estar junto en el mismo servidor siempre.
19. El Storage Manager es responsable de la administración general de almacenamiento de los datos, controla todos los trabajos del back-end incluido la administración del buffer, archivos, bloqueos y control de la consistencia de la información. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
20. 3. Almacenamiento y organización de datos La data siempre se va a guardar en “disco” (esto puede no ser literalmente un HD). Esto genera un intenso trabajo de I/O, cuando leemos la data la sacamos del “disco” para pasarla a la RAM, cuando escribimos la bajamos de la RAM al “disco”. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
21. 3. Almacenamiento y Organización de los Datos http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
22. 3. Almacenamiento y organización de datos La data en cualquier DBMS se almacena en pequeños bloques de disco llamadas “páginas”. Estás “páginas” se guardan en un disco en diferentes posiciones físicas, mucha dispersión creará una baja performance en la dbms, en sistemas de almacenamiento como los HD (osea casi el 99%) esto es un gran problema. Afortunadamente ahora existen Soluciones basadas en Discos de Estado Solido que ayudan con Este problema. http://es.wikipedia.org/wiki/Unidad_de_estado_s%C3%B3lido http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Platters Spindle Disk head Sector Arm movement Arm assembly Tracks
23. 3. Almacenamiento y organización de datos http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 El tamaño de una página en PostgreSQL puede ser tan pequeño como 8k (por defecto) hasta un máximo de 32k y no se permite que un tupla pueda ser mas grande que una página de tamaño. Cuando se necesita guardar data muy grande (un video por ejemplo) la data es comprimida y partida en pequeñas “filas” que se guardan en una tabla paralela, esto es transparente para el usuario ( http://www.postgresql.org/docs/8.4/interactive/storage-toast.html ). Las páginas contienen “items” los cuales apuntan a tuplas o entradas de índices junto con metadata. Para el caso de PostgreSQL las operaciones de R/W primero se consulta al Buffer Manager (memoria RAM) si contiene la página.
29. Record Acces PostgreSQL siempre esta añadiendo data, la data modificada o borrada realmente no se modifica o se borra, las páginas donde ellas están almacenadas se marca como “no visible” y se inserta un nuevo registro completo con un clon de toda la data (como se maneja esto en detalle se explica mas adelante). Esto hace que la base de datos ocupe mucho espacio y afecta el “tiempo de acceso” a la data.
30.
31. Tiempo de rotación de los discos para que el brazo encuentre la posición física donde esta la data.
32. Tiempo de transferencia de R/W de la data del disco a la memoria. Hay que buscar que reducir este tiempo para que el acceso a la data sea mas rápido. Ejemplo de un Vacuum Full
33. 3. Almacenamiento y organización de datos http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 La operación de Vacuum es importante porque nos ayuda a mejorar la performance del acceso a la data y la optimización del uso de espacio en disco. El método del Lazy Vacuum es más usado que el Vacuum Full. Ejemplo de un Lazy Vacuum
34. 4. Los índices Cada tipo de búsqueda tienen un tipo de índice adecuado para trabajarla, básicamente un índice es un “archivo” donde esta parte de la data y estructura de una tabla con las “search key” de búsqueda. En simple como es un índice: http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Page 1 Page 2 Page N Page 3 Data File k2 kN k1 Index File
35. 4. Los índices La forma clásica es buscar por extremos y medios (búsqueda binaria), pero esto hace que sea altamente costosa la búsqueda, entonces es preferible organizar los índices en estructuras mas eficientes como los árboles. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
36. 4. Los índices La cantidad de elementos en un nodo es delimitado por una constante predefinida, exactamente no deben haber mas de 2 veces elementos que la constante. Los nuevos elementos son insertados en el nodo que le corresponda según su valor, en caso de que el nodo haya copado su capacidad máxima de elementos entonces el nodo se divide en 2 partes iguales y se crea una “hoja” superior con los índices apropiados. (ejemplo se inserta el elemento 47) http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
37. 4. Los índices Para borrar un elemento se realiza la búsqueda del mismo, al llegar al nodo que lo contiene se bloquea. El nodo se trabaja en “memoria” sacando el elemento a borrar y se reescribe totalmente el nodo, ocasionalmente el nodo queda con menos elementos la cantidad de la constante definida de elementos máximos. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
41. GiST (<<, &<, &>, >>, <<|, &<|, |&>, |>>, @>, <@, ~=, &&; estos son operadores para datos geométricos)
42. GIN (<@, @>, =, &&; estos son operadores para datos tipo array y para “Full Text Searching” dentro de documentos a través de lexemas http://es.wikipedia.org/wiki/Lexema ) Rtree fue descontinuado a favor de GiST. Las búsquedas Like e iLike solo usan B-tree si la búsqueda o el patrón en es fijo al inicio, osea lo usa si es Campo like 'pat%' pero no lo usa si es Campo like '%pat' . http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
43. 4. Los índices Los índices “clusterizados” o “no clusterizados”. Un índice clusterizado es aquel donde la data esta ordenada o cercanamente ordenada físicamente con las entradas de la data del índice Una tabla solo puede estar clusterizada solo por un índice, no más. Son altamente apreciados en búsquedas por rangos, pero su costo de mantenimiento es alto debido al reordenamiento que siempre tiene que hacerse a la data. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
44. 4. Los índices Los índices “clusterizados” o “no clusterizados”. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Data entries Data Records Data entries Data Records CLUSTERED UNCLUSTERED
45. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Una consulta simple: select firstname from friend where age = 33; ¿Como hace la base de datos para interpretar esto?
46. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
47. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Esta parte es sencilla: “ El cliente postgresql” se comunica con el servicio del “postmaster” para pasarle una cadena de texto con el query.
48. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Aquí es donde empieza la acción
49. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 El parser transforma el pequeño query en una serie de instrucciones que la base de datos pueda interpretar, por eso es importante escribir querys inteligentes.
50.
51. Luego se descompone “palabra” a “palabra” el query para pasar a la estructura que le corresponde según el query, en este caso a la estructura de un “select”, esto se ve así: http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
52. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 EL Traffic Cop contiene al controlador principal del proceso del PostgreSQL, además se encarga de las comunicaciones entre el Parser, Optimizer, Executor y /commands functions. Los querys complejos pasan al Rewriter (select, insert, etc.), lo que no, se pasa al Utility Commands, generalmente querys simples (alter, create,vacuum, etc.)
53. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 El “planner” es el encargado de generar el “plan de ejecución”, esto es estimar la mejor vía para resolver el query, maneja mediante formulas matemáticas avanzadas la forma de búsqueda de datos y la forma de resolver las relaciones entre tablas. Luego que el planner a calculado el costo de todas las posibles vías de obtener la data escoge cual es el mejor y se lo pasa al “Executor”.
54. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Secuencial Indexada Métodos de búsqueda
55. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Métodos para relacionar tablas Nested loop join Consume mas recursos de memoria pero la cantidad de búsquedas a realizar es menor. http://en.wikipedia.org/wiki/Nested_loop_join
56. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Métodos para relacionar tablas Merge join Requiere que la data este ordenada para ubicar las relaciones, el costo esta justamente en mantener la data ordenada. http://en.wikipedia.org/wiki/Merge_join
57. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 Métodos para relacionar tablas Hash join Aparentemente sería la forma mas rápida de acceder a data gracias a la creación de tablas indexadas, pero limitada a una búsqueda de igualdad. http://en.wikipedia.org/wiki/Hash_join
58. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957 El “Executor” toma el plan de ejecución que el “planner” le entrega e inicia el procesamiento, ejecuta un “plan tree”. Este “plan tree” tiene varios nodos de ejecución que se van ejecutando uno a uno y de cada uno de ellos se obtiene un set de datos (tuplas). Los nodos tienen subnodos y otros a su vez otros subnodos, tantos como sea necesario.
59. 5. Como se procesa un Query http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
60. 6. Concurrencia : Transacciones y Bloqueos El control de concurrencia es el que asegura que muchos usuarios puedan acceder a la data al mismo tiempo. Sin embargo al mismo tiempo se producen muchas operaciones de R/W, estas operaciones se conocen como transacciones. Ninguna transacción debe ver el resultado de otras transacciones inconclusas, si esto no fuera así estaríamos leyendo datos inconsistentes. Una transacción puede incluir dentro de si muchas operaciones en la base de datos. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
61. 6. Concurrencia : Transacciones y Bloqueos Las transacciones deben cumplir el criterio ACID. C onsistency: la transacción solo termina si la data es consistente. I solation: la transacción es independiente de otras transacciones. A tomicity: todas las acciones en la transacción se cumplen o no se cumple ninguna. D urability: cuando la transacción termina el resultado de la misma es perdurable. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
62.
63. Bajo MVCC las transacciones ven una imagen de la data al momento de iniciarla (para ello la data se versiona con un timestamp), esto protege la transacción de inconsistencia de data cuando llegan 2 operaciones de R/W sobre la misma.
64. En simple el MVCC nunca modifica ó elimina la data, nuevas filas de información de van añadiendo conforme se crea o actualiza la data y se marca la anterior como “no visible”, cuando se desea eliminar un dato igualmente se añade una fila de data y se marca como “no visible” al mismo tiempo.
65. La data nunca es “visible” por otros usuarios hasta que no sea “commiteada”.
66. La principal ventaja es que las operaciones de R nunca bloquean a las de W, y viceversa, podemos obtener backups en caliente sin bloquear la db.
71. 6. Concurrencia : Transacciones y Bloqueos Cuando 2 transacciones trabajan sobre el mismo objeto y al menos uno de ellos incluye operaciones de escritura entonces se produce un “conflicto”. Cuando 2 transacciones hacen exactamente lo mismo puede que sean “serializadas” para optimizar el acceso a la data. Antes de que una transacción pueda ejecutar un R/W sobre un objeto en la db debe obtener un “bloqueo”. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
72. 6. Concurrencia : Transacciones y Bloqueos Este bloqueo puede ser Compartido (Share) o Exclusivo (Exclusive), estos son administrador por un “Lock Manager”. Existen varios tipos de bloqueos : http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957
73. 6. Concurrencia : Transacciones y Bloqueos Si un bloqueo toma mucho tiempo en ejecutarse entonces se produce un Deadlock, el sistema lo muestra como un Timeout. Un bloqueo puede darse a una tupla, una página o una tabla completa. Existe una tabla de locks, antes de ejecutar uno nuevo se consulta esta tabla. http://www.eqsoft.net Correo: [email_address] Teléfonos: (51)(1)-5645424/997244926/997003957