PushToTest TestMaker 6.5 Open Source Test Design DocumentClever Moe
PushToTest TestMaker version 6.5 product design document for a major feature enhancement. Contains user interface definitions, product roadmap, and feature requirements. Please comment on this to improve TestMaker.
Approximating Change Sets at Philips Healthcare: A Case StudyRahul Premraj
Talk presented on March 4, 2011 at the 15th European Conference on Software Maintenance and Reengineering in Oldenburg, Germany.
Abstract: A single development task such as solving a bug or implementing a new feature often involves changing a number of entities, also known together as a change set. Change sets can be approximated from the version control system. They are then used by the architects and developers to take important decisions. So change sets need to be approximated carefully. It is common to assume that two entities checked-in less than a small time interval from each other, and having the same meta-data associated with them, belong to the same transaction. Transactions may be good approximations of change sets if developers commit change sets in one go and if the required meta-data is available. This is however not the case in the industrial environment (Philips Healthcare) we study. Our paper presents a case study in which we investigated how change sets can be approximated in an environment with a complex workflow and limited meta-data in the version repositories. We found that, dependent on the commit practices used, a suitable time intervals between check-in timestamps of files has to be determined and leveraged to reliably approximate change sets.
PushToTest TestMaker 6.5 Open Source Test Design DocumentClever Moe
PushToTest TestMaker version 6.5 product design document for a major feature enhancement. Contains user interface definitions, product roadmap, and feature requirements. Please comment on this to improve TestMaker.
Approximating Change Sets at Philips Healthcare: A Case StudyRahul Premraj
Talk presented on March 4, 2011 at the 15th European Conference on Software Maintenance and Reengineering in Oldenburg, Germany.
Abstract: A single development task such as solving a bug or implementing a new feature often involves changing a number of entities, also known together as a change set. Change sets can be approximated from the version control system. They are then used by the architects and developers to take important decisions. So change sets need to be approximated carefully. It is common to assume that two entities checked-in less than a small time interval from each other, and having the same meta-data associated with them, belong to the same transaction. Transactions may be good approximations of change sets if developers commit change sets in one go and if the required meta-data is available. This is however not the case in the industrial environment (Philips Healthcare) we study. Our paper presents a case study in which we investigated how change sets can be approximated in an environment with a complex workflow and limited meta-data in the version repositories. We found that, dependent on the commit practices used, a suitable time intervals between check-in timestamps of files has to be determined and leveraged to reliably approximate change sets.
Process & Quality Improvement with DVCS for the Integration of Software Development
Presentation by Intland Software at "embedded world 2011" in Nuremberg
New York Kubernetes: CI/CD Patterns for KubernetesAndrew Phillips
Slides from the presentation "CI/CD Patterns for Kubernetes" at the New York Kubernetes meetup, by Andrew Phillips & Lars Wander. See https://www.meetup.com/New-York-Kubernetes-Meetup/events/250629415/ and https://www.youtube.com/watch?v=U4aPD8sthBc#t=33m47s
Describing, with example, how creating better visibility can turn anonymity to cooperation. I gave this presentation in the Tieto sponsored seminar Leanest 2011.
Kubernetes (/ˌk(j)uːbərˈnɛtɪs, -ˈneɪtɪs, -ˈneɪtiːz, -ˈnɛtiːz/, commonly stylized as K8s[3]) is an open-source container orchestration system for automating software deployment, scaling, and management.[4][5] Google originally designed Kubernetes, but the Cloud Native Computing Foundation now maintains the project.
Kubernetes works with Docker, Containerd, and CRI-O.[6] Originally, it interfaced exclusively with the Docker runtime[7] through a "Dockershim"; however, from 2016[citation needed] up to April 2022, Kubernetes has deprecated the shim in favor of directly interfacing with the container through Containerd, or replacing Docker with a runtime that is compliant with the Container Runtime Interface (CRI).[8][9][10] With the release of v1.24 in May 2022, "Dockershim" has been removed entirely.[11]
Amazon, Google, IBM, Microsoft, Oracle, Red Hat, SUSE, and VMware offer Kubernetes-based platforms or infrastructure as a service (IaaS) that deploy Kubernetes.[12][13]
Release This! - Tools for a Smooth Release CyclePerforce
Conventional wisdom says that when branching for release, development for the release should be done on the release branch and integrated back to main. However, the team at Guerrilla Games has implemented a reverse workflow process which, when supported by a few carefully chosen tools, has been found to work very well. Learn how to use this unorthodox approach to regain complete control over your release process while making the release cycle much more transparent to everybody involved.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Process & Quality Improvement with DVCS for the Integration of Software Development
Presentation by Intland Software at "embedded world 2011" in Nuremberg
New York Kubernetes: CI/CD Patterns for KubernetesAndrew Phillips
Slides from the presentation "CI/CD Patterns for Kubernetes" at the New York Kubernetes meetup, by Andrew Phillips & Lars Wander. See https://www.meetup.com/New-York-Kubernetes-Meetup/events/250629415/ and https://www.youtube.com/watch?v=U4aPD8sthBc#t=33m47s
Describing, with example, how creating better visibility can turn anonymity to cooperation. I gave this presentation in the Tieto sponsored seminar Leanest 2011.
Kubernetes (/ˌk(j)uːbərˈnɛtɪs, -ˈneɪtɪs, -ˈneɪtiːz, -ˈnɛtiːz/, commonly stylized as K8s[3]) is an open-source container orchestration system for automating software deployment, scaling, and management.[4][5] Google originally designed Kubernetes, but the Cloud Native Computing Foundation now maintains the project.
Kubernetes works with Docker, Containerd, and CRI-O.[6] Originally, it interfaced exclusively with the Docker runtime[7] through a "Dockershim"; however, from 2016[citation needed] up to April 2022, Kubernetes has deprecated the shim in favor of directly interfacing with the container through Containerd, or replacing Docker with a runtime that is compliant with the Container Runtime Interface (CRI).[8][9][10] With the release of v1.24 in May 2022, "Dockershim" has been removed entirely.[11]
Amazon, Google, IBM, Microsoft, Oracle, Red Hat, SUSE, and VMware offer Kubernetes-based platforms or infrastructure as a service (IaaS) that deploy Kubernetes.[12][13]
Release This! - Tools for a Smooth Release CyclePerforce
Conventional wisdom says that when branching for release, development for the release should be done on the release branch and integrated back to main. However, the team at Guerrilla Games has implemented a reverse workflow process which, when supported by a few carefully chosen tools, has been found to work very well. Learn how to use this unorthodox approach to regain complete control over your release process while making the release cycle much more transparent to everybody involved.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
1. Zab: High-performance broadcast
for primary-backup systems
Flavio Junqueira, Benjamin Reed, Marco Serafini
Yahoo! Research
June 2011
2. Setting up the stage
• Background: ZooKeeper
• Coordination service
! Web-scale applications
! Intensive use (high performance)
! Source of truth for many applications
June 2011 2
3. ZooKeeper
• Open source Apache project
• Used in production
! Yahoo!
! Facebook
! Rackspace
! ...
http://zookeeper.apache.org
June 2011 3
4. ZooKeeper
• ... is a leader-based, replicated service
! Processes crash and recover
• Leader
! Executes requests
Leader Follower Follower
! Propagates state updates
Broadcast Deliver Deliver
• Follower
Atomic broadcast
! Applies state updates
June 2011 4
5. ZooKeeper
• Client
Client
! Submits operations to a
server Request
! If follower, forwards to Leader Follower Follower
leader
Broadcast Deliver Deliver
! Leader executes and
propagates state update Atomic broadcast
June 2011 5
6. ZooKeeper
• State updates
! All followers apply the same updates
! All followers apply them in the same order
! Atomic broadcast
• Performance requirements
! Multiple outstanding operations
! Low latency and high throughput
June 2011 6
7. ZooKeeper
• Update configuration and create ready
• If ready exists, then configuration is
consistent
setData del
setData /cfg/client /cfg/ready
/cfg/server
create B
B
Follower
/cfg/ready
Leader
create
/cfg/ready setData Follower
/cfg/server setData
B /cfg/client del
B /cfg/ready
• If 1 doesn’t commit, then 2+3 can’t • If 2+3 don’t commit, then 4 must not
commit commit
June 2011 7
8. ZooKeeper
• Exploring Paxos
! Efficient consensus protocol
! State-machine replication
! Multiple consecutive instances
• Why is it not suitable out of the box?
! Does not guarantee order
! Multiple outstanding operations
June 2011 8
9. Paxos at a glance
1b: Acceptor promises 2b: If quorum, value
not to accept lower is chosen
ballots
Acceptor + Learner
1a 1b 2a 2b 3a
Acceptor +
Proposer + Learner
1a 1b 2a 2b 3a
Acceptor + Learner
Phase 1: Phase 2: Phase 3:
Selects Proposes Value
value to a value learned
propose
June 2011 9
10. Paxos run Interleaves
operations of P1,
27: <1a,3> 27: <2a, 3, C> P2, and and P3
28: <1a,3> 28: <2a, 3, B>
29: <1a,3> 29: <2a, 3, D>
P3
Has
accepted A and
B from P1
A1
27: <1, A> 27: <1b, 1, A>
28: <1, B> 28: <1b, 1, B>
29: <1b, _, _>
A2
Has 27: <3, C>
27: <2, C>
accepted C 28: <3, B>
from P2 29: <3, D>
A3
27: <2, C> 27: <1b, 2, C> 27: <3, C>
28: <1b, _, _> 28: <3, B>
29: <1b, _, _>
29: <3, D>
June 2011 10
11. ZooKeeper
• Another requirement
! Minimize downtime
! Efficient recovery
• Reduce the amount of state transfered
• Zab
! One identifier
! Missing values for each process
June 2011 11
13. Definitions
• Processes: Lead or Follow
• Followers
! Maintain a history of transactions (updates)
• Transaction identifiers: !e,c"
! e : epoch number of the leader
! c : epoch counter
June 2011 13
14. Properties of PO Broadcast
• Integrity
! Only broadcast transactions are delivered
! Leader recovers before broadcasting new transactions
• Total order and agreement
! Followers deliver the same transactions and in the
same order
June 2011 14
15. Primary order
• Local: Transactions of a leader accepted in
order
• Global: Transactions in history respect the
order of epochs
June 2011 15
16. Primary order
• Local: Transactions of a primary accepted in
order
• Global: Transactions in history respect the
order of epochs
abcast(!e,10") abcast(!e,11") abcast(!e,12")
Leader
Follower
June 2011 16
17. Primary order
• Local: Transactions of a primary accepted in
order
• Global: Transactions in history respect the
order of epochs
abcast(!e,10") abcast(!e,11") abcast(!e,12")
Leader
Follower
June 2011 17
18. Primary order
• Local: Transactions of a primary accepted in
order
• Global: Transactions in history respect the
order of epochs
abcast(!e,10") abcast(!e,11")
Leader
abcast(!e’,1")
Leader’
Follower
June 2011 18
19. Primary order
• Local: Transactions of a primary accepted in
order
• Global: Transactions in history respect the
order of epochs
abcast(!e,10") abcast(!e,11")
Leader
abcast(!e’,1")
Leader’
Follower
June 2011 19
20. Zab in Phases
• Phase 0 - Leader election
! Prospective leader elected
• Phase 1- Discovery
! Followers promise not to go back to previous
epochs
! Followers send to their last epoch and history
! selects longest history of latest epoch
June 2011 20
21. Zab in Phases
• Phase 2 - Synchronization
! sends new history to followers
! Followers confirm leadership
• Phase 3 - Broadcast
! proposes new transactions
! commits if quorum acknowledges
June 2011 21
22. Zab in Phases
• Phases 1 and 2: Recovery
! Critical to guarantee order with multiple
outstanding transactions
• Phase 3: Broadcast
! Just like Phases 2 and 3 of Paxos
June 2011 22
23. Zab: Sample run
f1 f2 f3
!0,1" !0,1" !0,1"
!0,2" !0,2"
!0,3"
New epoch
f1.a = 0, f2.a = 0, f3.a = 0,
!0,3" !0,2" !0,1"
Initial history
of new epoch
June 2011 23
24. Zab: Sample run
f1 f2 f3
!0,1" !0,1" !0,1"
!0,2" !0,2" !0,2"
Chosen! !1,1" !1,1"
!1,2"
New epoch
f1.a = 1, f2.a = 1, f3.a = 2,
!1,2" !1,1" !0,2"
Can’t happen!
June 2011 24
26. Notes on implementation
• Use of TCP
! Ordered delivery, retransmissions, etc.
! Notion of session
• Elect leader with most committed txns
! No follower ! leader copies
• Recovery
! Last zxid is sufficient
! In Phase 2, leader commands to add or truncate
June 2011 26
28. Experimental setup
• Implementation in Java
• 13 identical servers
! Xeon 2.50GHz, Gigabit interface, two SATA
disks
http://zookeeper.apache.org
June 2011 28
29. Throughput
Continuous saturated throughput
70000
Net only
Net + Disk
60000 Net + Disk (no write cache)
Net cap
50000
Operations per second
40000
30000
20000
10000
0
2 4 6 8 10 12 14
Number of servers in ensemble
June 2011 29