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

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 

Kürzlich hochgeladen (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 

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