SlideShare a Scribd company logo
1 of 27
Download to read offline
GOLCONDE
  René Magritte, 1953
GOLCONDE


    NOT REPLICATION*

    DATA DISTRIBUTION SYSTEM

    ONE CANONICAL SOURCE

    ANY NUMBER OF TARGET RELATIONS

    QUEUE BASED


* UNLESS YOU START FROM A CLEAN SLATE
FEATURES


LIGHT-WEIGHT DAEMON

“AUTOSQL” AND CUSTOM
HANDLERS

TWO METHODS OF
OPERATION

REAL-TIME VISUALIZATION
WHY GOLCONDE?


GOOD REPLICATION TOOLS EXIST

  SLONY, LONGDISTE, BUCARDO, ETC

NO “GOLDEN HAMMER”

CURRENT TOOLS ARE RESOURCE INTENSIVE

  LIVE ON THE DATABASE TIER

  LIVE IN THE DATABASE
WHY GOLCONDE?

NEEDED A SCALE OUT SOLUTION

CROSS DATA-CENTER IMPLEMENTATIONS

MESSAGE BROKERS ARE MORE EFFICIENT FOR QUEUES

DATABASE HARDWARE IS EXPENSIVE ($$$)

QUEUE AND CONSUMER GRADE HARDWARE ARE NOT

NEED CUSTOMIZABLE WORKFLOW FOR DISPARATE
RELATIONS
REQUIREMENTS


STOMP SUPPORTING MESSAGE BROKER

POSTGRESQL 8.3* OR HIGHER

PYTHON 2.6

  PYYAML

  PSYCOPG2

  STOMP.PY
HTTP://ACTIVEMQ.APACHE.ORG/
STOMP




   STREAMING TEXT ORIENTED MESSAGE PROTOCOL

   INTEROPERABLE WIRE FORMAT

   SUPPORTED BY MULTIPLE BROKERS




HTTP://STOMP.CODEHAUS.ORG/
AMQP



   ADVANCED MESSAGE QUEUING PROTOCOL

   OPEN STANDARD WIRE PROTOCOL

   EMERGING STANDARD SUPPORTED BY MULTIPLE
   BROKERS




HTTP://WWW.AMQP.ORG/
OpenAMQP

                           QPID

                           RedHat Enterprise MRG




HTTP://WWW.RABBITMQ.COM/
ARCHITECTURE



START OF ACTION LIFECYCLE

  CLIENT-BASED: ENQUEUE FROM APPLICATION

  TRIGGER-BASED: ENQUEUE FROM POSTGRESQL

MULTI-THREADED PYTHON DAEMON
LEXICON



DESTINATIONS ARE THE CANONICAL RELATIONS

  ARE ACTED UPON IN CLIENT-BASED WORKFLOWS

  ENQUEUES DATA IN TRIGGER-BASED WORKFLOWS

TARGETS ARE THE DISTRIBUTED RELATIONS
ARCHITECTURE



DATA IS PASSED IN JSON ENCODED PACKETS

COMMANDS:

   ADD (INSERT)            SET (UPSERT)

   DELETE                  UPDATE
MESSAGE EXAMPLES


{"ACTION": "ADD", "DATA": {"FRIEND_ID": 47, "USER_ID": 16,
"STATUS_ID": 1}}

{"ACTION": "DELETE", "RESTRICTION": {"FRIEND_ID": 11, "USER_ID":
126}}

{"ACTION": "SET", "DATA": {"FRIEND_ID": 112, "USER_ID": 111,
"TIMESTAMP": "WED APR 1 13:56:54 2009", "STATUS_ID": 1}}

{"ACTION": "UPDATE", "RESTRICTION": {"FRIEND_ID": 5, "USER_ID": 41},
"DATA": {"TIMESTAMP": "WED APR 1 13:56:38 2009", "STATUS_ID": 3}}
AUTOSQL


DEFAULT HANDLER TYPE FOR GOLCONDE

EXAMINES PG_CATALOG DATA FOR SCHEMA

CACHES SCHEMA

GENERATES SQL

REQUIRES SAME SCHEMA
CUSTOM HANDLERS


                  ALLOWS FOR DIFFERENT SCHEMAS
                  FOR THE SAME DATA

                  EXAMPLE:

                    LEGACY SCHEMA VS NEW SCHEMA

                    DIFFERENT FOCUSED TARGET
                    RELATIONS

THAR BE DRAGONS   WARNING: NEED TO UNDERSTAND
                  INTERNAL GOLCONDE FLOW
CLIENT-BASED FLOW


CLIENT APPLICATION ENQUEUES

GOLCONDE PERFORMS
TRANSACTION ON CANONICAL
DESTINATION RELATION

SERIALLY DISTRIBUTES TO
TARGET QUEUES
CLIENT-BASED FLOW




TARGET HANDLER DEQUEUES

PERFORMS TRANSACTION ON
TARGET RELATIONS
TRIGGER-BASED USAGE


REQUIRES PL/PYTHON

TRIGGER-UTIL.PY BUILDS AND
INSTALLS TRIGGERS

TRIGGER IS INSTALLED ON THE
CANONICAL TABLE

NO MODIFICATION OF CLIENT
APPLICATION REQUIRED
TRIGGER-BASED FLOW


FIRES AFTER INSERT/UPDATE/
DELETE

ENQUEUES INTO TARGET QUEUES

GOLCONDE PERFORMS
TRANSACTIONS ON THE TARGET
RELATIONS
CONFIGURATION


   YAML BASED

   PARAMETERS FOR:

      LOGGING

      HTTP DAEMON FOR REALTIME
      MONITORING & VISUALIZATION

      DESTINATION / TARGET
      GROUPS


HTTP://WWW.YAML.ORG/
STATISTICS & VISUALIZATION



BUILT-IN HTTP SERVER

STATS REQUESTS RETURNS JSON

  USE WITH STAPLR, NAGIOS, ETC

INTERNAL REAL-TIME VISUALIZATION
DEMONSTRATION
CURRENT STATUS



0.5 BETA RELEASE - 03/02

0.6 BETA COMING SOON

  ADDS REAL-TIME STATS SERVER

  BUG FIXES
ROADMAP


TWO-PHASE COMMIT LIKE BEHAVIOR

  ALL TRANSACTIONS MUST COMMIT OR ROLLBACK

  ROLLBACK IS DEFINED BY ROLLBACK DATA PACKETS
  IN AUTOSQL OR HANDLERS

ADDITIONAL QUEUE SERVERS AND PROTOCOLS

“NATIVE” CLIENT CLASSES IN PHP, PYTHON
QUESTIONS?



CONTACT INFO:

    GMR@MYYEARBOOK.COM

    TWITTER: @CRAD

    HTTP://GAVINROY.COM

More Related Content

What's hot

Understanding REST
Understanding RESTUnderstanding REST
Understanding RESTNitin Pande
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State TransferPeter R. Egli
 
Soap and restful webservice
Soap and restful webserviceSoap and restful webservice
Soap and restful webserviceDong Ngoc
 
Representational State Transfer (REST)
Representational State Transfer (REST)Representational State Transfer (REST)
Representational State Transfer (REST)David Krmpotic
 
ASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsIdo Flatow
 
Building RESTful applications using Spring MVC
Building RESTful applications using Spring MVCBuilding RESTful applications using Spring MVC
Building RESTful applications using Spring MVCIndicThreads
 
REpresentational State Transfer
REpresentational State TransferREpresentational State Transfer
REpresentational State TransferVladimir Tsukur
 
Representational State Transfer (REST)
Representational State Transfer (REST)Representational State Transfer (REST)
Representational State Transfer (REST)Abhay Ananda Shukla
 
Rest presentation
Rest  presentationRest  presentation
Rest presentationsrividhyau
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web APIBrad Genereaux
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIPankaj Bajaj
 
REST and RESTful Web Services
REST and RESTful Web ServicesREST and RESTful Web Services
REST and RESTful Web ServicesKasun Madusanke
 
RESTful Architecture
RESTful ArchitectureRESTful Architecture
RESTful ArchitectureKabir Baidya
 
The Rest Architectural Style
The Rest Architectural StyleThe Rest Architectural Style
The Rest Architectural StyleRobert Wilson
 

What's hot (20)

Understanding REST
Understanding RESTUnderstanding REST
Understanding REST
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State Transfer
 
Soap and restful webservice
Soap and restful webserviceSoap and restful webservice
Soap and restful webservice
 
Representational State Transfer (REST)
Representational State Transfer (REST)Representational State Transfer (REST)
Representational State Transfer (REST)
 
Web Services Tutorial
Web Services TutorialWeb Services Tutorial
Web Services Tutorial
 
ASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP Fundamentals
 
Building RESTful applications using Spring MVC
Building RESTful applications using Spring MVCBuilding RESTful applications using Spring MVC
Building RESTful applications using Spring MVC
 
Excellent rest using asp.net web api
Excellent rest using asp.net web apiExcellent rest using asp.net web api
Excellent rest using asp.net web api
 
REpresentational State Transfer
REpresentational State TransferREpresentational State Transfer
REpresentational State Transfer
 
RESTful Web Services
RESTful Web ServicesRESTful Web Services
RESTful Web Services
 
Representational State Transfer (REST)
Representational State Transfer (REST)Representational State Transfer (REST)
Representational State Transfer (REST)
 
Rest presentation
Rest  presentationRest  presentation
Rest presentation
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web API
 
ASP.NET WEB API Training
ASP.NET WEB API TrainingASP.NET WEB API Training
ASP.NET WEB API Training
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB API
 
SOAP-based Web Services
SOAP-based Web ServicesSOAP-based Web Services
SOAP-based Web Services
 
Web services - REST and SOAP
Web services - REST and SOAPWeb services - REST and SOAP
Web services - REST and SOAP
 
REST and RESTful Web Services
REST and RESTful Web ServicesREST and RESTful Web Services
REST and RESTful Web Services
 
RESTful Architecture
RESTful ArchitectureRESTful Architecture
RESTful Architecture
 
The Rest Architectural Style
The Rest Architectural StyleThe Rest Architectural Style
The Rest Architectural Style
 

Viewers also liked (17)

Golconde ashram-pondechery-india
Golconde ashram-pondechery-indiaGolconde ashram-pondechery-india
Golconde ashram-pondechery-india
 
Auroville Architecture
Auroville ArchitectureAuroville Architecture
Auroville Architecture
 
Portfolio Nidhi Raval
Portfolio Nidhi RavalPortfolio Nidhi Raval
Portfolio Nidhi Raval
 
Power Point Presentation on Golkonda Fourt
Power Point Presentation on Golkonda FourtPower Point Presentation on Golkonda Fourt
Power Point Presentation on Golkonda Fourt
 
Matrimandir
MatrimandirMatrimandir
Matrimandir
 
Matrimandir final
Matrimandir finalMatrimandir final
Matrimandir final
 
Sustainable technology and design in auroville
Sustainable technology and design in aurovilleSustainable technology and design in auroville
Sustainable technology and design in auroville
 
Auroville - City Planning
Auroville - City PlanningAuroville - City Planning
Auroville - City Planning
 
Architecture Portfolio Ashley Davis
Architecture Portfolio Ashley DavisArchitecture Portfolio Ashley Davis
Architecture Portfolio Ashley Davis
 
Final Architectural Student Portfolio
Final Architectural Student PortfolioFinal Architectural Student Portfolio
Final Architectural Student Portfolio
 
Works of laurie baker
Works of laurie bakerWorks of laurie baker
Works of laurie baker
 
My Architectural Portfolio.
My Architectural Portfolio.My Architectural Portfolio.
My Architectural Portfolio.
 
Portfolio - Architectural - Student Works
Portfolio - Architectural - Student WorksPortfolio - Architectural - Student Works
Portfolio - Architectural - Student Works
 
Architectural Portfolio
Architectural PortfolioArchitectural Portfolio
Architectural Portfolio
 
Laurie baker
Laurie bakerLaurie baker
Laurie baker
 
Shell structures- advanced building construction
Shell structures- advanced building constructionShell structures- advanced building construction
Shell structures- advanced building construction
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 

Similar to 126 Golconde

LendingClub RealTime BigData Platform with Oracle GoldenGate
LendingClub RealTime BigData Platform with Oracle GoldenGateLendingClub RealTime BigData Platform with Oracle GoldenGate
LendingClub RealTime BigData Platform with Oracle GoldenGateRajit Saha
 
Oracle Goldengate for Big Data - LendingClub Implementation
Oracle Goldengate for Big Data - LendingClub ImplementationOracle Goldengate for Big Data - LendingClub Implementation
Oracle Goldengate for Big Data - LendingClub ImplementationVengata Guruswamy
 
EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?confluent
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsMarkus Eisele
 
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...OpenCredo
 
Interoperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSITInteroperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSITCarol McDonald
 
Designing Modern Streaming Data Applications
Designing Modern Streaming Data ApplicationsDesigning Modern Streaming Data Applications
Designing Modern Streaming Data ApplicationsArun Kejariwal
 
Spark Summit Europe 2017 - Applying multiple ML pipelines to heterogenous dat...
Spark Summit Europe 2017 - Applying multiple ML pipelines to heterogenous dat...Spark Summit Europe 2017 - Applying multiple ML pipelines to heterogenous dat...
Spark Summit Europe 2017 - Applying multiple ML pipelines to heterogenous dat...mdabrowski
 
Forward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentationForward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentationAndrew Wesbecher
 
Forward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentationForward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentationForward Networks
 
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache KafkaSolutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache KafkaGuido Schmutz
 
Microservice Come in Systems
Microservice Come in SystemsMicroservice Come in Systems
Microservice Come in SystemsMarkus Eisele
 
Performance Benchmarking of Clouds Evaluating OpenStack
Performance Benchmarking of Clouds                Evaluating OpenStackPerformance Benchmarking of Clouds                Evaluating OpenStack
Performance Benchmarking of Clouds Evaluating OpenStackPradeep Kumar
 
Tech Thursday - Beer & DevOps 24.11.
Tech Thursday - Beer & DevOps 24.11.Tech Thursday - Beer & DevOps 24.11.
Tech Thursday - Beer & DevOps 24.11.Nebula Oy
 
Data integration
Data integrationData integration
Data integrationBallerina
 
Communication Protocols And Web Services
Communication Protocols And Web ServicesCommunication Protocols And Web Services
Communication Protocols And Web ServicesOmer Katz
 
Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...
Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...
Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...confluent
 
Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?Ludovico Caldara
 

Similar to 126 Golconde (20)

LendingClub RealTime BigData Platform with Oracle GoldenGate
LendingClub RealTime BigData Platform with Oracle GoldenGateLendingClub RealTime BigData Platform with Oracle GoldenGate
LendingClub RealTime BigData Platform with Oracle GoldenGate
 
Oracle Goldengate for Big Data - LendingClub Implementation
Oracle Goldengate for Big Data - LendingClub ImplementationOracle Goldengate for Big Data - LendingClub Implementation
Oracle Goldengate for Big Data - LendingClub Implementation
 
EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?EDA Meets Data Engineering – What's the Big Deal?
EDA Meets Data Engineering – What's the Big Deal?
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systems
 
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
Microservices Manchester: How Lagom Helps to Build Real World Microservice Sy...
 
Interoperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSITInteroperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSIT
 
Designing Modern Streaming Data Applications
Designing Modern Streaming Data ApplicationsDesigning Modern Streaming Data Applications
Designing Modern Streaming Data Applications
 
Spark Summit Europe 2017 - Applying multiple ML pipelines to heterogenous dat...
Spark Summit Europe 2017 - Applying multiple ML pipelines to heterogenous dat...Spark Summit Europe 2017 - Applying multiple ML pipelines to heterogenous dat...
Spark Summit Europe 2017 - Applying multiple ML pipelines to heterogenous dat...
 
Forward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentationForward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentation
 
Forward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentationForward Networks - Networking Field Day 13 presentation
Forward Networks - Networking Field Day 13 presentation
 
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache KafkaSolutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
 
Microservice Come in Systems
Microservice Come in SystemsMicroservice Come in Systems
Microservice Come in Systems
 
PPT
PPTPPT
PPT
 
Performance Benchmarking of Clouds Evaluating OpenStack
Performance Benchmarking of Clouds                Evaluating OpenStackPerformance Benchmarking of Clouds                Evaluating OpenStack
Performance Benchmarking of Clouds Evaluating OpenStack
 
osi-oss-dbs.pptx
osi-oss-dbs.pptxosi-oss-dbs.pptx
osi-oss-dbs.pptx
 
Tech Thursday - Beer & DevOps 24.11.
Tech Thursday - Beer & DevOps 24.11.Tech Thursday - Beer & DevOps 24.11.
Tech Thursday - Beer & DevOps 24.11.
 
Data integration
Data integrationData integration
Data integration
 
Communication Protocols And Web Services
Communication Protocols And Web ServicesCommunication Protocols And Web Services
Communication Protocols And Web Services
 
Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...
Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...
Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...
 
Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?
 

More from elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

More from elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Recently uploaded

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Recently uploaded (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

126 Golconde

  • 1.
  • 2. GOLCONDE René Magritte, 1953
  • 3. GOLCONDE NOT REPLICATION* DATA DISTRIBUTION SYSTEM ONE CANONICAL SOURCE ANY NUMBER OF TARGET RELATIONS QUEUE BASED * UNLESS YOU START FROM A CLEAN SLATE
  • 4. FEATURES LIGHT-WEIGHT DAEMON “AUTOSQL” AND CUSTOM HANDLERS TWO METHODS OF OPERATION REAL-TIME VISUALIZATION
  • 5. WHY GOLCONDE? GOOD REPLICATION TOOLS EXIST SLONY, LONGDISTE, BUCARDO, ETC NO “GOLDEN HAMMER” CURRENT TOOLS ARE RESOURCE INTENSIVE LIVE ON THE DATABASE TIER LIVE IN THE DATABASE
  • 6. WHY GOLCONDE? NEEDED A SCALE OUT SOLUTION CROSS DATA-CENTER IMPLEMENTATIONS MESSAGE BROKERS ARE MORE EFFICIENT FOR QUEUES DATABASE HARDWARE IS EXPENSIVE ($$$) QUEUE AND CONSUMER GRADE HARDWARE ARE NOT NEED CUSTOMIZABLE WORKFLOW FOR DISPARATE RELATIONS
  • 7. REQUIREMENTS STOMP SUPPORTING MESSAGE BROKER POSTGRESQL 8.3* OR HIGHER PYTHON 2.6 PYYAML PSYCOPG2 STOMP.PY
  • 9. STOMP STREAMING TEXT ORIENTED MESSAGE PROTOCOL INTEROPERABLE WIRE FORMAT SUPPORTED BY MULTIPLE BROKERS HTTP://STOMP.CODEHAUS.ORG/
  • 10. AMQP ADVANCED MESSAGE QUEUING PROTOCOL OPEN STANDARD WIRE PROTOCOL EMERGING STANDARD SUPPORTED BY MULTIPLE BROKERS HTTP://WWW.AMQP.ORG/
  • 11. OpenAMQP QPID RedHat Enterprise MRG HTTP://WWW.RABBITMQ.COM/
  • 12. ARCHITECTURE START OF ACTION LIFECYCLE CLIENT-BASED: ENQUEUE FROM APPLICATION TRIGGER-BASED: ENQUEUE FROM POSTGRESQL MULTI-THREADED PYTHON DAEMON
  • 13. LEXICON DESTINATIONS ARE THE CANONICAL RELATIONS ARE ACTED UPON IN CLIENT-BASED WORKFLOWS ENQUEUES DATA IN TRIGGER-BASED WORKFLOWS TARGETS ARE THE DISTRIBUTED RELATIONS
  • 14. ARCHITECTURE DATA IS PASSED IN JSON ENCODED PACKETS COMMANDS: ADD (INSERT) SET (UPSERT) DELETE UPDATE
  • 15. MESSAGE EXAMPLES {"ACTION": "ADD", "DATA": {"FRIEND_ID": 47, "USER_ID": 16, "STATUS_ID": 1}} {"ACTION": "DELETE", "RESTRICTION": {"FRIEND_ID": 11, "USER_ID": 126}} {"ACTION": "SET", "DATA": {"FRIEND_ID": 112, "USER_ID": 111, "TIMESTAMP": "WED APR 1 13:56:54 2009", "STATUS_ID": 1}} {"ACTION": "UPDATE", "RESTRICTION": {"FRIEND_ID": 5, "USER_ID": 41}, "DATA": {"TIMESTAMP": "WED APR 1 13:56:38 2009", "STATUS_ID": 3}}
  • 16. AUTOSQL DEFAULT HANDLER TYPE FOR GOLCONDE EXAMINES PG_CATALOG DATA FOR SCHEMA CACHES SCHEMA GENERATES SQL REQUIRES SAME SCHEMA
  • 17. CUSTOM HANDLERS ALLOWS FOR DIFFERENT SCHEMAS FOR THE SAME DATA EXAMPLE: LEGACY SCHEMA VS NEW SCHEMA DIFFERENT FOCUSED TARGET RELATIONS THAR BE DRAGONS WARNING: NEED TO UNDERSTAND INTERNAL GOLCONDE FLOW
  • 18. CLIENT-BASED FLOW CLIENT APPLICATION ENQUEUES GOLCONDE PERFORMS TRANSACTION ON CANONICAL DESTINATION RELATION SERIALLY DISTRIBUTES TO TARGET QUEUES
  • 19. CLIENT-BASED FLOW TARGET HANDLER DEQUEUES PERFORMS TRANSACTION ON TARGET RELATIONS
  • 20. TRIGGER-BASED USAGE REQUIRES PL/PYTHON TRIGGER-UTIL.PY BUILDS AND INSTALLS TRIGGERS TRIGGER IS INSTALLED ON THE CANONICAL TABLE NO MODIFICATION OF CLIENT APPLICATION REQUIRED
  • 21. TRIGGER-BASED FLOW FIRES AFTER INSERT/UPDATE/ DELETE ENQUEUES INTO TARGET QUEUES GOLCONDE PERFORMS TRANSACTIONS ON THE TARGET RELATIONS
  • 22. CONFIGURATION YAML BASED PARAMETERS FOR: LOGGING HTTP DAEMON FOR REALTIME MONITORING & VISUALIZATION DESTINATION / TARGET GROUPS HTTP://WWW.YAML.ORG/
  • 23. STATISTICS & VISUALIZATION BUILT-IN HTTP SERVER STATS REQUESTS RETURNS JSON USE WITH STAPLR, NAGIOS, ETC INTERNAL REAL-TIME VISUALIZATION
  • 25. CURRENT STATUS 0.5 BETA RELEASE - 03/02 0.6 BETA COMING SOON ADDS REAL-TIME STATS SERVER BUG FIXES
  • 26. ROADMAP TWO-PHASE COMMIT LIKE BEHAVIOR ALL TRANSACTIONS MUST COMMIT OR ROLLBACK ROLLBACK IS DEFINED BY ROLLBACK DATA PACKETS IN AUTOSQL OR HANDLERS ADDITIONAL QUEUE SERVERS AND PROTOCOLS “NATIVE” CLIENT CLASSES IN PHP, PYTHON
  • 27. QUESTIONS? CONTACT INFO: GMR@MYYEARBOOK.COM TWITTER: @CRAD HTTP://GAVINROY.COM