SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Narayana 5:
The premier open source
transaction manager
JBug NCL: 12th May 2015
TOM JENKINSON
Agenda
● Why you need a transaction manager
● Using Narayana inside containers
● New features in Narayana 5
Why you need a transaction manager - a brief
revision course
My bank Your bank
Transactions - why?
My bank account Your bank
account
?
The properties of a transaction
There are many types of transaction models, they
generally revolve around adherence to and
relaxation of the so-called ACID properties:
● Atomicity
● Consistency
● Isolation
● Durability
Transaction APIs
● Specifications:
○ JSR-907 JTA 1.2
○ OMG OTS 1.1
○ OASIS WS-AT 1.2
○ OASIS WS-BA 1.2
○ X/Open TM
○ rest-* REST-AT 2.0 draft 8
● Related:
○ XA
○ X/Open ATMI
Transaction
Manager
(Narayana)
Resource Manager
(PostGres,
HornetQ, etc)
Application Programs (you)
XA
JTAJDBC JMS
X/Open DTP
Recovery
Manager
Transaction
Log
2PC protocol
XAResource xar1 = . . .
XAResource xar2 = . . .
TM.begin();
TM.enlist(xar1);
xar1.start(xid1);
TM.enlist(xar2);
xar2.start(xid2);
“xar1”.op(...);
“xar2”.op(...);
TM.delist(xar1);
xar1.end(xid1);
TM.delist(xar2);
xar2.end(xid2);
TM.commit();
xar1.prepare(xid1);
xar2.prepare(xid2);
xar1.commit(xid1);
xar2.commit(xid2);
Narayana proprietary APIs
● TxCore
● TXoJ
● Compensations Framework
● STM
● Utilities:
○ TransactionalDriver
○ Tooling to query the transaction log
Other terms
Transaction types:
● Global
● Distributed
● Local
Recovery:
● Bottom-up
● Top-down
Using Narayana inside containers
WildFly, Undertow, Docker, Tomcat
WildFly
Fully integrated into WFLY
● Provides JTA 1.2/JTS implementation
● Provides REST-AT coordinator
● Provides WS-AT/BA coordinator
● Can be extended to provide an XATMI backend
for C applications
Docker
Docker files for RTS and XTS:
https://github.com/Gytis/jboss-dockerfiles-
narayana/tree/master-xts-and-rts-images
Docker files for JTS:
https://github.com/Gytis/narayana-docker
https://github.
com/Gytis/quickstart/tree/master-JBTM-
REST-AT and Undertow
Start up a REST-AT coordinator in 3 lines!
org.jboss.resteasy.plugins.server.undertow.UndertowJaxrsServer server =
new org.jboss.resteasy.plugins.server.undertow.UndertowJaxrsServer();
server.deploy(new org.jboss.jbossts.star.service.TMApplication(), "/");
server.start(Undertow.builder().addHttpListener(8080, "localhost"));
JTA in Tomcat
We have two approaches for this
1. Tight integration into Tomcat structure
2. Running within the IronJacamar embedded
container
https://github.
com/jbosstm/quickstart/tree/master/jca-and-
tomcat
New features in Narayana 5
Compensations Framework, NoSQL, STM
Compensations Framework
Provides JTA 1.2. like API:
● @Compensatable
● @TxCompensate
● @TxConfirm
Works both locally and remotely
Currently does not support recovery
http://jbossts.blogspot.co.
uk/2013/05/compensating-transactions-when-
NoSQL
In development
● Atomic
● Eventually consistent
● Relaxes isolation
● Durable
Updates to documents add in transactional data
STM
A concurrency model for editing shared state
Broadly speaking can be broken into:
● Optimistic Concurrency Control
● Pessimistic Concurrency Control
The difference is when locks are checked
Typically you have relaxed durability
Other things we are working on
We have a prototype of a data-grid transaction
log
We are coming up against CAP theorum for when
to elect a recovery manager
Questions? Links!
Our site: http://narayana.io
Our code: https://github.com/jbosstm/
Read our opinions: http://jbossts.blogspot.co.uk/
Chat to us: http://webchat.freenode.net/?channels=jbossts
Question us: https://developer.jboss.org/en/jbosstm/

Más contenido relacionado

La actualidad más candente

[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
Kasun Gajasinghe
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET
Yaniv Uriel
 

La actualidad más candente (20)

Kafka as Message Broker
Kafka as Message BrokerKafka as Message Broker
Kafka as Message Broker
 
3.2 Streaming and Messaging
3.2 Streaming and Messaging3.2 Streaming and Messaging
3.2 Streaming and Messaging
 
[오픈소스컨설팅] 서비스 메쉬(Service mesh)
[오픈소스컨설팅] 서비스 메쉬(Service mesh)[오픈소스컨설팅] 서비스 메쉬(Service mesh)
[오픈소스컨설팅] 서비스 메쉬(Service mesh)
 
Microservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karafMicroservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karaf
 
A vision for ejabberd - ejabberd SF Meetup
A vision for ejabberd - ejabberd SF MeetupA vision for ejabberd - ejabberd SF Meetup
A vision for ejabberd - ejabberd SF Meetup
 
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
[WSO2] Deployment Synchronizer for Deployment Artifact Synchronization Betwee...
 
How to be a lion tamer
How to be a lion tamerHow to be a lion tamer
How to be a lion tamer
 
How to be a lion tamer
How to be a lion tamerHow to be a lion tamer
How to be a lion tamer
 
Webinar slides: How to deploy and manage HAProxy, MaxScale or ProxySQL with C...
Webinar slides: How to deploy and manage HAProxy, MaxScale or ProxySQL with C...Webinar slides: How to deploy and manage HAProxy, MaxScale or ProxySQL with C...
Webinar slides: How to deploy and manage HAProxy, MaxScale or ProxySQL with C...
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET
 
The best of Apache Kafka Architecture
The best of Apache Kafka ArchitectureThe best of Apache Kafka Architecture
The best of Apache Kafka Architecture
 
Resilient Enterprise Messaging with WSO2 ESB
Resilient Enterprise Messaging with WSO2 ESBResilient Enterprise Messaging with WSO2 ESB
Resilient Enterprise Messaging with WSO2 ESB
 
Multi-language/multi-OS communication using RabbitMQ
Multi-language/multi-OS communication using RabbitMQMulti-language/multi-OS communication using RabbitMQ
Multi-language/multi-OS communication using RabbitMQ
 
Effectively-once semantics in Apache Pulsar
Effectively-once semantics in Apache PulsarEffectively-once semantics in Apache Pulsar
Effectively-once semantics in Apache Pulsar
 
IoT Studio #1: Protocols introduction and connected jukebox
IoT Studio #1: Protocols introduction and connected jukeboxIoT Studio #1: Protocols introduction and connected jukebox
IoT Studio #1: Protocols introduction and connected jukebox
 
Nginx in production
Nginx in productionNginx in production
Nginx in production
 
Zebus - Pitfalls of a P2P service bus
Zebus - Pitfalls of a P2P service busZebus - Pitfalls of a P2P service bus
Zebus - Pitfalls of a P2P service bus
 
WildFly & WildFly Swarm
WildFly & WildFly SwarmWildFly & WildFly Swarm
WildFly & WildFly Swarm
 
Modular Architectures using Micro Services
Modular Architectures using Micro ServicesModular Architectures using Micro Services
Modular Architectures using Micro Services
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 

Similar a Narayana 5: The premier open source transaction manager

Mobicents Summit 2012 - Silvano Girardi - InPhonex's migration to Mobicents S...
Mobicents Summit 2012 - Silvano Girardi - InPhonex's migration to Mobicents S...Mobicents Summit 2012 - Silvano Girardi - InPhonex's migration to Mobicents S...
Mobicents Summit 2012 - Silvano Girardi - InPhonex's migration to Mobicents S...
telestax
 
State of the art: Server-Side JavaScript - dejeuner fulljs
State of the art: Server-Side JavaScript - dejeuner fulljsState of the art: Server-Side JavaScript - dejeuner fulljs
State of the art: Server-Side JavaScript - dejeuner fulljs
Alexandre Morgaut
 

Similar a Narayana 5: The premier open source transaction manager (20)

Introduction to apache kafka
Introduction to apache kafkaIntroduction to apache kafka
Introduction to apache kafka
 
Big data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerBig data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on docker
 
Intro to creating kubernetes operators
Intro to creating kubernetes operators Intro to creating kubernetes operators
Intro to creating kubernetes operators
 
Elasticsearch on Kubernetes
Elasticsearch on KubernetesElasticsearch on Kubernetes
Elasticsearch on Kubernetes
 
MySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated EnvironmentMySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated Environment
 
Get SaaSy with Red Hat OpenShift on AWS (CON305-S) - AWS re:Invent 2018
Get SaaSy with Red Hat OpenShift on AWS (CON305-S) - AWS re:Invent 2018Get SaaSy with Red Hat OpenShift on AWS (CON305-S) - AWS re:Invent 2018
Get SaaSy with Red Hat OpenShift on AWS (CON305-S) - AWS re:Invent 2018
 
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
 
CON6423: Scalable JavaScript applications with Project Nashorn
CON6423: Scalable JavaScript applications with Project NashornCON6423: Scalable JavaScript applications with Project Nashorn
CON6423: Scalable JavaScript applications with Project Nashorn
 
Distributed Transaction Management in Spring & JEE
Distributed Transaction Management in Spring & JEEDistributed Transaction Management in Spring & JEE
Distributed Transaction Management in Spring & JEE
 
Mobicents Summit 2012 - Silvano Girardi - InPhonex's migration to Mobicents S...
Mobicents Summit 2012 - Silvano Girardi - InPhonex's migration to Mobicents S...Mobicents Summit 2012 - Silvano Girardi - InPhonex's migration to Mobicents S...
Mobicents Summit 2012 - Silvano Girardi - InPhonex's migration to Mobicents S...
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
 
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
 
Docker Monitoring Webinar
Docker Monitoring  WebinarDocker Monitoring  Webinar
Docker Monitoring Webinar
 
JavaOne 2014 - Scalable JavaScript Applications with Project Nashorn [CON6423]
JavaOne 2014 - Scalable JavaScript Applications with Project Nashorn [CON6423]JavaOne 2014 - Scalable JavaScript Applications with Project Nashorn [CON6423]
JavaOne 2014 - Scalable JavaScript Applications with Project Nashorn [CON6423]
 
Packaging Strategy for Community Openstack and Implementation Reference | Hoj...
Packaging Strategy for Community Openstack and Implementation Reference | Hoj...Packaging Strategy for Community Openstack and Implementation Reference | Hoj...
Packaging Strategy for Community Openstack and Implementation Reference | Hoj...
 
Oracle RAC features on Exadata
Oracle RAC features on ExadataOracle RAC features on Exadata
Oracle RAC features on Exadata
 
State of the art: Server-Side JavaScript - dejeuner fulljs
State of the art: Server-Side JavaScript - dejeuner fulljsState of the art: Server-Side JavaScript - dejeuner fulljs
State of the art: Server-Side JavaScript - dejeuner fulljs
 
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
 
Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)
 

Más de Virtual JBoss User Group

Más de Virtual JBoss User Group (10)

An Enterprise Developer's Joerney to the IoT
An Enterprise Developer's Joerney to the IoTAn Enterprise Developer's Joerney to the IoT
An Enterprise Developer's Joerney to the IoT
 
Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
 
Apache Lucene for Java EE Developers
Apache Lucene for Java EE DevelopersApache Lucene for Java EE Developers
Apache Lucene for Java EE Developers
 
Hacking on WildFly 9
Hacking on WildFly 9Hacking on WildFly 9
Hacking on WildFly 9
 
Implementing your own Google App Engine
Implementing your own Google App Engine Implementing your own Google App Engine
Implementing your own Google App Engine
 
Apache DeltaSpike: The CDI Toolbox
Apache DeltaSpike: The CDI ToolboxApache DeltaSpike: The CDI Toolbox
Apache DeltaSpike: The CDI Toolbox
 
Ceylon From Here to Infinity: The Big Picture and What's Coming
Ceylon From Here to Infinity: The Big Picture and What's Coming Ceylon From Here to Infinity: The Big Picture and What's Coming
Ceylon From Here to Infinity: The Big Picture and What's Coming
 
Going Further with CDI 1.2
Going Further with CDI 1.2Going Further with CDI 1.2
Going Further with CDI 1.2
 
Introduction to CDI
Introduction to CDIIntroduction to CDI
Introduction to CDI
 
Testing the Enterprise layers, with Arquillian
Testing the Enterprise layers, with ArquillianTesting the Enterprise layers, with Arquillian
Testing the Enterprise layers, with Arquillian
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

Narayana 5: The premier open source transaction manager

  • 1. Narayana 5: The premier open source transaction manager JBug NCL: 12th May 2015 TOM JENKINSON
  • 2. Agenda ● Why you need a transaction manager ● Using Narayana inside containers ● New features in Narayana 5
  • 3. Why you need a transaction manager - a brief revision course
  • 4. My bank Your bank Transactions - why? My bank account Your bank account ?
  • 5. The properties of a transaction There are many types of transaction models, they generally revolve around adherence to and relaxation of the so-called ACID properties: ● Atomicity ● Consistency ● Isolation ● Durability
  • 6. Transaction APIs ● Specifications: ○ JSR-907 JTA 1.2 ○ OMG OTS 1.1 ○ OASIS WS-AT 1.2 ○ OASIS WS-BA 1.2 ○ X/Open TM ○ rest-* REST-AT 2.0 draft 8 ● Related: ○ XA ○ X/Open ATMI
  • 7. Transaction Manager (Narayana) Resource Manager (PostGres, HornetQ, etc) Application Programs (you) XA JTAJDBC JMS X/Open DTP Recovery Manager Transaction Log
  • 8. 2PC protocol XAResource xar1 = . . . XAResource xar2 = . . . TM.begin(); TM.enlist(xar1); xar1.start(xid1); TM.enlist(xar2); xar2.start(xid2); “xar1”.op(...); “xar2”.op(...); TM.delist(xar1); xar1.end(xid1); TM.delist(xar2); xar2.end(xid2); TM.commit(); xar1.prepare(xid1); xar2.prepare(xid2); xar1.commit(xid1); xar2.commit(xid2);
  • 9. Narayana proprietary APIs ● TxCore ● TXoJ ● Compensations Framework ● STM ● Utilities: ○ TransactionalDriver ○ Tooling to query the transaction log
  • 10. Other terms Transaction types: ● Global ● Distributed ● Local Recovery: ● Bottom-up ● Top-down
  • 11. Using Narayana inside containers WildFly, Undertow, Docker, Tomcat
  • 12. WildFly Fully integrated into WFLY ● Provides JTA 1.2/JTS implementation ● Provides REST-AT coordinator ● Provides WS-AT/BA coordinator ● Can be extended to provide an XATMI backend for C applications
  • 13. Docker Docker files for RTS and XTS: https://github.com/Gytis/jboss-dockerfiles- narayana/tree/master-xts-and-rts-images Docker files for JTS: https://github.com/Gytis/narayana-docker https://github. com/Gytis/quickstart/tree/master-JBTM-
  • 14. REST-AT and Undertow Start up a REST-AT coordinator in 3 lines! org.jboss.resteasy.plugins.server.undertow.UndertowJaxrsServer server = new org.jboss.resteasy.plugins.server.undertow.UndertowJaxrsServer(); server.deploy(new org.jboss.jbossts.star.service.TMApplication(), "/"); server.start(Undertow.builder().addHttpListener(8080, "localhost"));
  • 15. JTA in Tomcat We have two approaches for this 1. Tight integration into Tomcat structure 2. Running within the IronJacamar embedded container https://github. com/jbosstm/quickstart/tree/master/jca-and- tomcat
  • 16. New features in Narayana 5 Compensations Framework, NoSQL, STM
  • 17. Compensations Framework Provides JTA 1.2. like API: ● @Compensatable ● @TxCompensate ● @TxConfirm Works both locally and remotely Currently does not support recovery http://jbossts.blogspot.co. uk/2013/05/compensating-transactions-when-
  • 18. NoSQL In development ● Atomic ● Eventually consistent ● Relaxes isolation ● Durable Updates to documents add in transactional data
  • 19. STM A concurrency model for editing shared state Broadly speaking can be broken into: ● Optimistic Concurrency Control ● Pessimistic Concurrency Control The difference is when locks are checked Typically you have relaxed durability
  • 20. Other things we are working on We have a prototype of a data-grid transaction log We are coming up against CAP theorum for when to elect a recovery manager
  • 21. Questions? Links! Our site: http://narayana.io Our code: https://github.com/jbosstm/ Read our opinions: http://jbossts.blogspot.co.uk/ Chat to us: http://webchat.freenode.net/?channels=jbossts Question us: https://developer.jboss.org/en/jbosstm/