SlideShare a Scribd company logo
1 of 18
Download to read offline
Copyright©2015 NTT corp. All Rights Reserved.
Swift Automated Tiering
Kazuhiro MIYAHARA [IRC: m_kazuhiro]
miyahara.kazuhiro@lab.ntt.co.jp
NTT Software Innovation Center
Copyright(c)2009-2016 NTT CORPORATION. All Rights Reserved.
2Copyright©2015 NTT corp. All Rights Reserved.
Goal
• Discuss and get agreement for a particular design for our
“Automated-Tiering” implementation.
(Especially focus on moving and linking objects among tiers)
Note : This slide will show you overview of our implementation.
Note : For more detail, please see the gerrit code
<https://review.openstack.org/#/c /287057/>
Agenda
• Background
• Changes of Swift
• Components of Our Proposal
• Overview of Deliverer
• Deliverer’s Process (STEP 1)
• States in STEP 2 ~ 4
• Deliverer’s Process (STEP 2 ~ 4)
• Demo
Goal & Agenda
3Copyright©2015 NTT corp. All Rights Reserved.
Our Use Case
Contents (e.g. movies, pictures, music) providing service.
In this service, new contents are requested frequently and gradually
becoming less frequently requested.
Our Requirement
Store frequently requested objects into replication policy containers
for performance and infrequently requested objects into erasure
coding policy containers for capacity efficiency.
Background
4Copyright©2015 NTT corp. All Rights Reserved.
Seemingly, containers have variable storage policy objects.
• Objects move among some different storage policy containers
automatically.
• Swift ensures transparent access to the automatically moved
objects.
Changes of Swift
“a/c”
policy index : 0
“a/c/o2”
Policy index : 1
“a/c/o4”
Policy index : 0
“a/c/o6”
Policy index : 1
“a/c/o1”
Policy index : 0
“a/c/o3”
Policy index : 2
“a/c/o5”
Policy index : 0
Container
Object
5Copyright©2015 NTT corp. All Rights Reserved.
Deliverer (daemon) : what I focus on today
• Move objects to the suitable policy container.
Addresser (daemon) : future work
• Search objects whose policy is not suitable and decide their
suitable policy.
Components of Our Proposal
addresser deliverer
“.delivery_task”
PUT GET
delivery task object :
Includes an object path “a/c/o” and a storage policy index “N” In the name.
The name means “N” is the suitable policy for “a/c/o”.
Account
Object
Container
…
…
…
…
6Copyright©2015 NTT corp. All Rights Reserved.
• Deliverers run on storage nodes
(as well as object-replicator).
• 4 steps in Deliverer’s process.
• STEP 1 : GET a list of delivery task objects.
• STEP 2 : COPY each entity object to a suitable policy container.
• STEP 3 : PUT transparent link objects.
• STEP 4 : DELETE extra objects.
Note : STEP 3 and 4 may be skipped.
Overview of Deliverer
deliverer
object-server
node
deliverer
object-server
node
deliverer
object-server
node
7Copyright©2015 NTT corp. All Rights Reserved.
GET lists of objects from a special account “.delivery_task”
Deliverer’s process (STEP 1)
deliverer
“.delivery_task”
“12345600”
“2:a1/c1/o1”
“0:a3/c3/o3”
“1:a2/c2/o2”
…
GET .delivery_task/12345600
List of delivery task objects
object name format :
“<storage policy index>:<object path>”
storage policy index : The suitable policy index.
object path : The object path whose policy is not suitable.
Users can transparently access the moved object with this path.
Account
Object
Container
Container names are the hours in Unix time format when the
delivery task objects are created.
8Copyright©2015 NTT corp. All Rights Reserved.
2 states of tiered objects
• State A : stored policy = original policy
• State B : stored policy ≠ original policy
States in STEP 2 ~ 4
“a/c_silver”
policy index : 1
policy name : silver
“a/c”
policy index : 0
policy name : gold
“a/c_silver/o”
Policy index : 1
Entity
“a/c”
policy index : 0
policy name : gold
“a/c/o”
Policy index : 0
Entity
State B of a/c/oState A of a/c/o
A SLO manifest object with only one
segment “a/c_silver/o”
original
container
derivative
container
The object which an user
PUT first to “a/c/o”
original
policy
derivative
policy
Object
Container
Link object
“a/c/o”
Policy index : 0
Link to “a/c_silver/o”
9Copyright©2015 NTT corp. All Rights Reserved.
3 cases in STEP 2 ~ 4.
Case 1 : From the original policy to a derivative policy
(STEP 2 [COPY], STEP 3 [PUT Link])
Case 2 : From a derivative policy to the original policy
(STEP 2 [COPY], STEP 4 [DELETE])
Case 3 : From a derivative policy to another derivative policy
(STEP 2 [COPY], STEP 3 [PUT Link], STEP 4 [DELETE])
Deliverer’s Process (STEP 2 ~ 4)
10Copyright©2015 NTT corp. All Rights Reserved.
Case 1 : From the original policy to a derivative policy
• STEP 2 : COPY each entity object to a suitable policy container.
• STEP 3 : PUT transparent link object.
Deliverer’s Process (STEP 2 ~ 4)
“a/c_silver”
policy index : 1
policy name : silver
after
“a/c”
policy index : 0
policy name : gold
“a/c/o”
Policy index : 0
Entity
“a/c_silver/o”
Policy index : 1
Entity
“a/c_silver”
policy index : 1
policy name : silver
before
“a/c”
policy index : 0
policy name : gold
“a/c/o”
Policy index : 0
Entity
Object
Container
Link object
11Copyright©2015 NTT corp. All Rights Reserved.
Case 1 : From the original policy to a derivative policy
• STEP 2 : COPY each entity object to a suitable policy container.
• STEP 3 : PUT transparent link objects.
Deliverer’s Process (STEP 2 ~ 4)
“a/c_silver”
policy index : 1
policy name : silver
before
“a/c”
policy index : 0
policy name : gold
“a/c/o”
Policy index : 0
Entity
“a/c_silver/o”
Policy index : 1
Entity
“a/c_silver”
policy index : 1
policy name : silver
after
“a/c”
policy index : 0
policy name : gold
“a/c_silver/o”
Policy index : 1
Entity
“a/c/o”
Policy index : 0
Link to “a/c_silver/o”
Object
Container
Link object
12Copyright©2015 NTT corp. All Rights Reserved.
Case 2 : From a derivative policy to the original policy
• STEP 2 : COPY each entity object to a suitable policy container.
• STEP 4 : DELETE extra objects.
Deliverer’s Process (STEP 2 ~ 4)
“a/c_silver”
policy index : 1
policy name : silver
before
“a/c”
policy index : 0
policy name : gold
“a/c_silver/o”
Policy index : 1
Entity
“a/c_silver”
policy index : 1
policy name : silver
after
“a/c”
policy index : 0
policy name : gold
“a/c/o”
Policy index : 0
Entity
“a/c_silver/o”
Policy index : 1
Entity
Object
Container
Link object
“a/c/o”
Policy index : 0
Link to “a/c_silver/o”
13Copyright©2015 NTT corp. All Rights Reserved.
Case 2 : From a derivative policy to the original policy
• STEP 2 : COPY each entity object to a suitable policy container.
• STEP 4 : DELETE extra objects.
Deliverer’s Process (STEP 2 ~ 4)
“a/c_silver”
policy index : 1
policy name : silver
before
“a/c”
policy index : 0
policy name : gold
“a/c/o”
Policy index : 0
Entity
“a/c_silver/o”
Policy index : 1
Entity
“a/c_silver”
policy index : 1
policy name : silver
after
“a/c”
policy index : 0
policy name : gold
“a/c/o”
Policy index : 0
Entity
Object
Container
Link object
14Copyright©2015 NTT corp. All Rights Reserved.
Case 3 : From a derivative policy to another derivative policy
• STEP 2 : COPY each entity object to a suitable policy container.
• STEP 3 : PUT transparent link objects.
• STEP 4 : DELETE extra objects.
Deliverer’s Process (STEP 2 ~ 4)
before
“a/c”
policy index : 0
policy name : gold
“a/c_bronze”
policy index : 2
policy name : bronze
“a/c_silver”
policy index : 1
policy name : silver
“a/c_silver/o”
Policy index : 1
Entity
after
“a/c”
policy index : 0
policy name : gold
“a/c_bronze”
policy index : 2
policy name : bronze
“a/c_silver”
policy index : 1
policy name : silver
“a/c_bronze/o”
Policy index : 2
Entity
“a/c_silver/o”
Policy index : 1
Entity
Object
Container
Link object
“a/c/o”
Policy index : 0
Link to “a/c_silver/o”
“a/c/o”
Policy index : 0
Link to “a/c_silver/o”
15Copyright©2015 NTT corp. All Rights Reserved.
Case 3 : From a derivative policy to another derivative policy
• STEP 2 : COPY each entity object to a suitable policy container.
• STEP 3 : PUT transparent link objects.
• STEP 4 : DELETE extra objects.
Deliverer’s Process (STEP 2 ~ 4)
before
“a/c”
policy index : 0
policy name : gold
“a/c_bronze”
policy index : 2
policy name : bronze
“a/c_silver”
policy index : 1
policy name : silver
“a/c_bronze/o”
Policy index : 2
Entity
“a/c_silver/o”
Policy index : 1
Entity
after
“a/c”
policy index : 0
policy name : gold
“a/c_bronze”
policy index : 2
policy name : bronze
“a/c_silver”
policy index : 1
policy name : silver
“a/c_bronze/o”
Policy index : 2
Entity
“a/c_silver/o”
Policy index : 1
Entity
Object
Container
Link object
“a/c/o”
Policy index : 0
Link to “a/c_silver/o”
“a/c/o”
Policy index : 0
Link to “a/c_bronze/o”
16Copyright©2015 NTT corp. All Rights Reserved.
Case 3 : From a derivative policy to another derivative policy
• STEP 2 : COPY each entity object to a suitable policy container.
• STEP 3 : PUT transparent link objects.
• STEP 4 : DELETE extra objects.
Deliverer’s Process (STEP 2 ~ 4)
before
“a/c”
policy index : 0
policy name : gold
“a/c_bronze”
policy index : 2
policy name : bronze
“a/c_silver”
policy index : 1
policy name : silver
“a/c_bronze/o”
Policy index : 2
Entity
“a/c_silver/o”
Policy index : 1
Entity
after
“a/c”
policy index : 0
policy name : gold
“a/c_bronze”
policy index : 2
policy name : bronze
“a/c_silver”
policy index : 1
policy name : silver
“a/c_bronze/o”
Policy index : 2
Entity
Object
Container
Link object
“a/c/o”
Policy index : 0
Link to “a/c_bronze/o”
“a/c/o”
Policy index : 0
Link to “a/c_bronze/o”
17Copyright©2015 NTT corp. All Rights Reserved.
This Demo show you states of Swift with a Deliverer.
• State 1
• A object is in original container
• State 2
• The object’s policy is changed from the original to a derivative
• State 3
• The object’s policy is changed from a derivative to another
derivative
• State 4
• The object’s policy is changed from a derivative to the original
Note :
In this demo, our demo middleware “delivery-address” is in Swift.
The delivery-address middleware convert
“POST a/c /o ‘X-Delivery-Address:silver’” to
“PUT .delivery_task/XXX/<index of silver>:a/c /o”
The delivery-address” middleware is NOT a component of automated-
tiering.
DEMO
18Copyright©2015 NTT corp. All Rights Reserved.
• Thank you for your listening.

More Related Content

Similar to Swift Automated Tiering (Swift Hackathon Bristol)

Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Cisco DevNet
 
The Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingThe Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingBitbar
 
Automating the Elastic Stack
Automating the Elastic StackAutomating the Elastic Stack
Automating the Elastic StackElasticsearch
 
Cilium: Seattle Kubernetes MeetUp Dec 2017
Cilium: Seattle Kubernetes MeetUp Dec 2017Cilium: Seattle Kubernetes MeetUp Dec 2017
Cilium: Seattle Kubernetes MeetUp Dec 2017Cynthia Thomas
 
Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Satoshi Konno
 
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016DataStax
 
Michael Nygard - Uncoupling
Michael Nygard - UncouplingMichael Nygard - Uncoupling
Michael Nygard - UncouplingDevOpsDays DFW
 
Electric Capital Developer Report 2022
Electric Capital Developer Report 2022Electric Capital Developer Report 2022
Electric Capital Developer Report 2022MariaShen2
 
2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - EnglishAlexandre Gouaillard
 
Anaconda and PyData Solutions
Anaconda and PyData SolutionsAnaconda and PyData Solutions
Anaconda and PyData SolutionsTravis Oliphant
 
Open stack gbp final sn-4-slideshare
Open stack gbp final sn-4-slideshareOpen stack gbp final sn-4-slideshare
Open stack gbp final sn-4-slideshareSumit Naiksatam
 
DockerCon EU 2015: Monitoring Docker
DockerCon EU 2015: Monitoring DockerDockerCon EU 2015: Monitoring Docker
DockerCon EU 2015: Monitoring DockerDocker, Inc.
 
Advanced Flink Training - Design patterns for streaming applications
Advanced Flink Training - Design patterns for streaming applicationsAdvanced Flink Training - Design patterns for streaming applications
Advanced Flink Training - Design patterns for streaming applicationsAljoscha Krettek
 
FIWARE NGSI: Managing Context Information at Large Scale
FIWARE NGSI: Managing Context Information at Large ScaleFIWARE NGSI: Managing Context Information at Large Scale
FIWARE NGSI: Managing Context Information at Large ScaleFIWARE
 

Similar to Swift Automated Tiering (Swift Hackathon Bristol) (20)

Uncoupling
UncouplingUncoupling
Uncoupling
 
Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016
 
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
 
The Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingThe Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and Testing
 
Automating the Elastic Stack
Automating the Elastic StackAutomating the Elastic Stack
Automating the Elastic Stack
 
Cilium: Seattle Kubernetes MeetUp Dec 2017
Cilium: Seattle Kubernetes MeetUp Dec 2017Cilium: Seattle Kubernetes MeetUp Dec 2017
Cilium: Seattle Kubernetes MeetUp Dec 2017
 
Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016
 
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
 
Michael Nygard - Uncoupling
Michael Nygard - UncouplingMichael Nygard - Uncoupling
Michael Nygard - Uncoupling
 
Electric Capital Developer Report 2022
Electric Capital Developer Report 2022Electric Capital Developer Report 2022
Electric Capital Developer Report 2022
 
2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English2016 February - WebRTC Conference japan - English
2016 February - WebRTC Conference japan - English
 
Online spanish meetup #2
Online spanish meetup #2Online spanish meetup #2
Online spanish meetup #2
 
Core Context Management
Core Context ManagementCore Context Management
Core Context Management
 
OMG Data-Distribution Service Security
OMG Data-Distribution Service SecurityOMG Data-Distribution Service Security
OMG Data-Distribution Service Security
 
Anaconda and PyData Solutions
Anaconda and PyData SolutionsAnaconda and PyData Solutions
Anaconda and PyData Solutions
 
Open stack gbp final sn-4-slideshare
Open stack gbp final sn-4-slideshareOpen stack gbp final sn-4-slideshare
Open stack gbp final sn-4-slideshare
 
DockerCon EU 2015: Monitoring Docker
DockerCon EU 2015: Monitoring DockerDockerCon EU 2015: Monitoring Docker
DockerCon EU 2015: Monitoring Docker
 
Advanced Flink Training - Design patterns for streaming applications
Advanced Flink Training - Design patterns for streaming applicationsAdvanced Flink Training - Design patterns for streaming applications
Advanced Flink Training - Design patterns for streaming applications
 
FIWARE NGSI: Managing Context Information at Large Scale
FIWARE NGSI: Managing Context Information at Large ScaleFIWARE NGSI: Managing Context Information at Large Scale
FIWARE NGSI: Managing Context Information at Large Scale
 
Crypto Dev Report · 2022
Crypto Dev Report · 2022Crypto Dev Report · 2022
Crypto Dev Report · 2022
 

Recently uploaded

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Recently uploaded (20)

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Swift Automated Tiering (Swift Hackathon Bristol)

  • 1. Copyright©2015 NTT corp. All Rights Reserved. Swift Automated Tiering Kazuhiro MIYAHARA [IRC: m_kazuhiro] miyahara.kazuhiro@lab.ntt.co.jp NTT Software Innovation Center Copyright(c)2009-2016 NTT CORPORATION. All Rights Reserved.
  • 2. 2Copyright©2015 NTT corp. All Rights Reserved. Goal • Discuss and get agreement for a particular design for our “Automated-Tiering” implementation. (Especially focus on moving and linking objects among tiers) Note : This slide will show you overview of our implementation. Note : For more detail, please see the gerrit code <https://review.openstack.org/#/c /287057/> Agenda • Background • Changes of Swift • Components of Our Proposal • Overview of Deliverer • Deliverer’s Process (STEP 1) • States in STEP 2 ~ 4 • Deliverer’s Process (STEP 2 ~ 4) • Demo Goal & Agenda
  • 3. 3Copyright©2015 NTT corp. All Rights Reserved. Our Use Case Contents (e.g. movies, pictures, music) providing service. In this service, new contents are requested frequently and gradually becoming less frequently requested. Our Requirement Store frequently requested objects into replication policy containers for performance and infrequently requested objects into erasure coding policy containers for capacity efficiency. Background
  • 4. 4Copyright©2015 NTT corp. All Rights Reserved. Seemingly, containers have variable storage policy objects. • Objects move among some different storage policy containers automatically. • Swift ensures transparent access to the automatically moved objects. Changes of Swift “a/c” policy index : 0 “a/c/o2” Policy index : 1 “a/c/o4” Policy index : 0 “a/c/o6” Policy index : 1 “a/c/o1” Policy index : 0 “a/c/o3” Policy index : 2 “a/c/o5” Policy index : 0 Container Object
  • 5. 5Copyright©2015 NTT corp. All Rights Reserved. Deliverer (daemon) : what I focus on today • Move objects to the suitable policy container. Addresser (daemon) : future work • Search objects whose policy is not suitable and decide their suitable policy. Components of Our Proposal addresser deliverer “.delivery_task” PUT GET delivery task object : Includes an object path “a/c/o” and a storage policy index “N” In the name. The name means “N” is the suitable policy for “a/c/o”. Account Object Container … … … …
  • 6. 6Copyright©2015 NTT corp. All Rights Reserved. • Deliverers run on storage nodes (as well as object-replicator). • 4 steps in Deliverer’s process. • STEP 1 : GET a list of delivery task objects. • STEP 2 : COPY each entity object to a suitable policy container. • STEP 3 : PUT transparent link objects. • STEP 4 : DELETE extra objects. Note : STEP 3 and 4 may be skipped. Overview of Deliverer deliverer object-server node deliverer object-server node deliverer object-server node
  • 7. 7Copyright©2015 NTT corp. All Rights Reserved. GET lists of objects from a special account “.delivery_task” Deliverer’s process (STEP 1) deliverer “.delivery_task” “12345600” “2:a1/c1/o1” “0:a3/c3/o3” “1:a2/c2/o2” … GET .delivery_task/12345600 List of delivery task objects object name format : “<storage policy index>:<object path>” storage policy index : The suitable policy index. object path : The object path whose policy is not suitable. Users can transparently access the moved object with this path. Account Object Container Container names are the hours in Unix time format when the delivery task objects are created.
  • 8. 8Copyright©2015 NTT corp. All Rights Reserved. 2 states of tiered objects • State A : stored policy = original policy • State B : stored policy ≠ original policy States in STEP 2 ~ 4 “a/c_silver” policy index : 1 policy name : silver “a/c” policy index : 0 policy name : gold “a/c_silver/o” Policy index : 1 Entity “a/c” policy index : 0 policy name : gold “a/c/o” Policy index : 0 Entity State B of a/c/oState A of a/c/o A SLO manifest object with only one segment “a/c_silver/o” original container derivative container The object which an user PUT first to “a/c/o” original policy derivative policy Object Container Link object “a/c/o” Policy index : 0 Link to “a/c_silver/o”
  • 9. 9Copyright©2015 NTT corp. All Rights Reserved. 3 cases in STEP 2 ~ 4. Case 1 : From the original policy to a derivative policy (STEP 2 [COPY], STEP 3 [PUT Link]) Case 2 : From a derivative policy to the original policy (STEP 2 [COPY], STEP 4 [DELETE]) Case 3 : From a derivative policy to another derivative policy (STEP 2 [COPY], STEP 3 [PUT Link], STEP 4 [DELETE]) Deliverer’s Process (STEP 2 ~ 4)
  • 10. 10Copyright©2015 NTT corp. All Rights Reserved. Case 1 : From the original policy to a derivative policy • STEP 2 : COPY each entity object to a suitable policy container. • STEP 3 : PUT transparent link object. Deliverer’s Process (STEP 2 ~ 4) “a/c_silver” policy index : 1 policy name : silver after “a/c” policy index : 0 policy name : gold “a/c/o” Policy index : 0 Entity “a/c_silver/o” Policy index : 1 Entity “a/c_silver” policy index : 1 policy name : silver before “a/c” policy index : 0 policy name : gold “a/c/o” Policy index : 0 Entity Object Container Link object
  • 11. 11Copyright©2015 NTT corp. All Rights Reserved. Case 1 : From the original policy to a derivative policy • STEP 2 : COPY each entity object to a suitable policy container. • STEP 3 : PUT transparent link objects. Deliverer’s Process (STEP 2 ~ 4) “a/c_silver” policy index : 1 policy name : silver before “a/c” policy index : 0 policy name : gold “a/c/o” Policy index : 0 Entity “a/c_silver/o” Policy index : 1 Entity “a/c_silver” policy index : 1 policy name : silver after “a/c” policy index : 0 policy name : gold “a/c_silver/o” Policy index : 1 Entity “a/c/o” Policy index : 0 Link to “a/c_silver/o” Object Container Link object
  • 12. 12Copyright©2015 NTT corp. All Rights Reserved. Case 2 : From a derivative policy to the original policy • STEP 2 : COPY each entity object to a suitable policy container. • STEP 4 : DELETE extra objects. Deliverer’s Process (STEP 2 ~ 4) “a/c_silver” policy index : 1 policy name : silver before “a/c” policy index : 0 policy name : gold “a/c_silver/o” Policy index : 1 Entity “a/c_silver” policy index : 1 policy name : silver after “a/c” policy index : 0 policy name : gold “a/c/o” Policy index : 0 Entity “a/c_silver/o” Policy index : 1 Entity Object Container Link object “a/c/o” Policy index : 0 Link to “a/c_silver/o”
  • 13. 13Copyright©2015 NTT corp. All Rights Reserved. Case 2 : From a derivative policy to the original policy • STEP 2 : COPY each entity object to a suitable policy container. • STEP 4 : DELETE extra objects. Deliverer’s Process (STEP 2 ~ 4) “a/c_silver” policy index : 1 policy name : silver before “a/c” policy index : 0 policy name : gold “a/c/o” Policy index : 0 Entity “a/c_silver/o” Policy index : 1 Entity “a/c_silver” policy index : 1 policy name : silver after “a/c” policy index : 0 policy name : gold “a/c/o” Policy index : 0 Entity Object Container Link object
  • 14. 14Copyright©2015 NTT corp. All Rights Reserved. Case 3 : From a derivative policy to another derivative policy • STEP 2 : COPY each entity object to a suitable policy container. • STEP 3 : PUT transparent link objects. • STEP 4 : DELETE extra objects. Deliverer’s Process (STEP 2 ~ 4) before “a/c” policy index : 0 policy name : gold “a/c_bronze” policy index : 2 policy name : bronze “a/c_silver” policy index : 1 policy name : silver “a/c_silver/o” Policy index : 1 Entity after “a/c” policy index : 0 policy name : gold “a/c_bronze” policy index : 2 policy name : bronze “a/c_silver” policy index : 1 policy name : silver “a/c_bronze/o” Policy index : 2 Entity “a/c_silver/o” Policy index : 1 Entity Object Container Link object “a/c/o” Policy index : 0 Link to “a/c_silver/o” “a/c/o” Policy index : 0 Link to “a/c_silver/o”
  • 15. 15Copyright©2015 NTT corp. All Rights Reserved. Case 3 : From a derivative policy to another derivative policy • STEP 2 : COPY each entity object to a suitable policy container. • STEP 3 : PUT transparent link objects. • STEP 4 : DELETE extra objects. Deliverer’s Process (STEP 2 ~ 4) before “a/c” policy index : 0 policy name : gold “a/c_bronze” policy index : 2 policy name : bronze “a/c_silver” policy index : 1 policy name : silver “a/c_bronze/o” Policy index : 2 Entity “a/c_silver/o” Policy index : 1 Entity after “a/c” policy index : 0 policy name : gold “a/c_bronze” policy index : 2 policy name : bronze “a/c_silver” policy index : 1 policy name : silver “a/c_bronze/o” Policy index : 2 Entity “a/c_silver/o” Policy index : 1 Entity Object Container Link object “a/c/o” Policy index : 0 Link to “a/c_silver/o” “a/c/o” Policy index : 0 Link to “a/c_bronze/o”
  • 16. 16Copyright©2015 NTT corp. All Rights Reserved. Case 3 : From a derivative policy to another derivative policy • STEP 2 : COPY each entity object to a suitable policy container. • STEP 3 : PUT transparent link objects. • STEP 4 : DELETE extra objects. Deliverer’s Process (STEP 2 ~ 4) before “a/c” policy index : 0 policy name : gold “a/c_bronze” policy index : 2 policy name : bronze “a/c_silver” policy index : 1 policy name : silver “a/c_bronze/o” Policy index : 2 Entity “a/c_silver/o” Policy index : 1 Entity after “a/c” policy index : 0 policy name : gold “a/c_bronze” policy index : 2 policy name : bronze “a/c_silver” policy index : 1 policy name : silver “a/c_bronze/o” Policy index : 2 Entity Object Container Link object “a/c/o” Policy index : 0 Link to “a/c_bronze/o” “a/c/o” Policy index : 0 Link to “a/c_bronze/o”
  • 17. 17Copyright©2015 NTT corp. All Rights Reserved. This Demo show you states of Swift with a Deliverer. • State 1 • A object is in original container • State 2 • The object’s policy is changed from the original to a derivative • State 3 • The object’s policy is changed from a derivative to another derivative • State 4 • The object’s policy is changed from a derivative to the original Note : In this demo, our demo middleware “delivery-address” is in Swift. The delivery-address middleware convert “POST a/c /o ‘X-Delivery-Address:silver’” to “PUT .delivery_task/XXX/<index of silver>:a/c /o” The delivery-address” middleware is NOT a component of automated- tiering. DEMO
  • 18. 18Copyright©2015 NTT corp. All Rights Reserved. • Thank you for your listening.