SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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?
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
#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
 
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 MountPuma Security, LLC
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
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
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Kürzlich hochgeladen (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 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
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 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
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
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
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

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