SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Representational State Transfer (REST)
Representational State Transfer (REST)Representational State Transfer (REST)
Representational State Transfer (REST)
David Krmpotic
 
REpresentational State Transfer
REpresentational State TransferREpresentational State Transfer
REpresentational State Transfer
Vladimir Tsukur
 
Rest presentation
Rest  presentationRest  presentation
Rest presentation
srividhyau
 

Tendances (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
 

En vedette

Power Point Presentation on Golkonda Fourt
Power Point Presentation on Golkonda FourtPower Point Presentation on Golkonda Fourt
Power Point Presentation on Golkonda Fourt
Anand Yadav
 
Auroville - City Planning
Auroville - City PlanningAuroville - City Planning
Auroville - City Planning
ams_5686
 
Final Architectural Student Portfolio
Final Architectural Student PortfolioFinal Architectural Student Portfolio
Final Architectural Student Portfolio
gbaumann
 

En vedette (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
 

Similaire à 126 Golconde

Designing Modern Streaming Data Applications
Designing Modern Streaming Data ApplicationsDesigning Modern Streaming Data Applications
Designing Modern Streaming Data Applications
Arun Kejariwal
 
Communication Protocols And Web Services
Communication Protocols And Web ServicesCommunication Protocols And Web Services
Communication Protocols And Web Services
Omer Katz
 

Similaire à 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?
 

Plus de elliando 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 ClojureScript
elliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
elliando 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 Agility
elliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
elliando 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 Web
elliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
elliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
elliando 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 Design
elliando 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 Facebook
elliando 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 Study
elliando dias
 

Plus de 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
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

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
 
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
 
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
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

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