SlideShare uma empresa Scribd logo
1 de 51
Windows Azure Storage   SQL Data
Services
blobs
tables
          queues
Blobs


Tables


Queues
Account   Container     Blob

                      IMG001.JPG

           pictures
                      IMG002.JPG
  sally

           movies     MOV1.AVI
blob




http://sally.blob.core.windows.net/music/rock/rush/xanadu.mp3
PutBlob

GetBlob

DeleteBlob
Account                 Container Blob Name
PUT
http://dvd.blob.core.windows.net/movies/TheBlob.wmv
HTTP/1.1 Content-Length: 10000000000
Content-Type: binary/octet-stream
x-ms-meta-year:1958
x-ms-meta-tagline:Beware%20of%20the%20Blob
Content-MD5: HUXZLQLMuI/KZ5KDcJPcOA==
x-ms-date: Mon, 27 Oct 2008 17:00:25 GMT
Authorization: SharedKey dvd:
      F5a+dUDvef+PfMb4T8Rc2jHcwfK58KecSZY+l2naIao=
……… Blob Data Contents ………
GET
http://dvd.blob.core.windows.net/movies/TheBlob.wmv
HTTP/1.1
Authorization: SharedKey dvd:
     RGllHMtzKMi4y/nedSk5Vn74IU6/fRMwiPsL+uYSDjY=
x-ms-date: Mon, 27 Oct 2008 17:00:25 GMT


GET
http://dvd.blob.core.windows.net/movies/TheBlob.wmv
HTTP/1.1
Range: bytes=1024000-2048000
Account                Blob      Block
          Container
                      IMG001.
                        JPG
           pictures
                      IMG002.
                        JPG
 sally
                                 Block 1

           movies     MOV1.AVI   Block 2

                                 Block 3
blobName = “TheBlob.wmv”;
             10 GB Movie
                                        PutBlock(blobName, blockId1, block1Bits);
Block Id 2




                           Block Id N
Block Id 1

Block Id 3




                                        PutBlock(blobName, blockId2, block2Bits);
                                        …………
                                        PutBlock(blobName, blockIdN, blockNBits);
                                        PutBlockList(blobName,
                                                       blockId1,…,blockIdN);




                            TheBlob.wmv              Windows Azure
                                                           Storage
BlobName =
ExampleBlob.wmv   Block Id 4


                               Block Id 4
                               Block Id 2
     Block Id 1
                  Block Id 3




                                            Sequence of Operations
                                              PutBlock   BlockId1
                                              PutBlock   BlockId3
                                              PutBlock   BlockId4
                                              PutBlock   BlockId2
                                              PutBlock   BlockId4
                   Block Id 2
                   Block Id 3
                   Block Id 4




                                              PutBlockList BlockId2,
                                              BlockId3, BlockId4
Committed and readable version of blob
PutBlock



PutBlockList


GetBlockList
Blobs


Tables – Provide structured storage.
A table is a set of entities, which
contain a set of properties
Queues
Account     Table         Entity


                         Name =…
                         Email = …
            users
                         Name =…
                         Email = …
 sally
                        Photo ID =…
                         Date =…
          photo index
                        Photo ID =…
                         Date =…
… Property N
Partition Key Row Key Property 3
Document      Version Modification     Description
Name                  Time
                                     … Committed version
Example Doc V1.0      8/2/2007
                                                                Partition
                                        Alice’s working version
Example Doc V2.0.1    9/28/2007                                     1
FAQ Doc      V1.0     5/2/2007          Committed version
                                        Alice’s working version Partition
FAQ Doc      V1.0.1   7/6/2007
                                                                    2
                                        Sally’s working version
FAQ Doc      V1.0.2   8/1/2007
[DataServiceKey(quot;PartitionKeyquot;, quot;RowKeyquot;)]
public class Customer
{
    // Partition key – Customer Last name
    public string PartitionKey { get; set; }
    // Row Key – Customer First name
    public string RowKey { get; set; }
    // User defined properties here
    public DateTime CustomerSince { get; set; }
    public double Rating { get; set; }
    public string Occupation { get; set; }
}
Customer cust = new Customer(
 ‚Lee‛,                // Partition Key = Last Name
 ‚Geddy‛,              // Row Key = First Name
  DateTime.UtcNow,     // Customer Since
  2.0,                 // Rating
  ‚Engineer‛           // Occupation);


// Service Uri is ‚http://<Account>.table.core.windows.net/‛
DataServiceContext context = new DataServiceContext(serviceUri);



context.AddObject(‚Customer‛, cust);
DataServiceResponse response = context.SaveChanges();
DataServiceContext context = new
DataServiceContext(‚http://myaccount.table.core.windows.net‛);

var customers = from o in
              context.CreateQuery<Customer>(‚Customer‛)
               where o.PartitionKey == ‚Lee‛
               select o;

foreach (Customer customer in customers) { }




GET http://myaccount.table.core.windows.net/Customer?
         $filter= PartitionKey eq ‘Lee’
ServicePointManager.DefaultConnectionLimit = X;

ServicePointManager.Expect100Continue = false;



MergeOption = MergeOption.NoTracking




    DataServiceContext.ResolveType
Blobs


Tables


Queues – Provide reliable storage and
delivery of messages for an application
Public internet

                       n                 m
                                Worker
            Web role
                           Q     role
  Load
 balancer

Cloud storage (tables, blobs, queues)
Account     Queue          Message


                           128x128,
                            http://…
          thumbnail jobs
                           256x256,
                            http://…
 sally

                            http://…
              photo
           processing
               jobs
                            http://…
queue
Producers                   Consumers

                                    1. Dequeue(Q, 30 sec)  msg 1
                               C1
  P2


            4   3   2   1

                               C2
  P1
       2. Dequeue(Q, 30 sec)  msg 2
Producers                Consumers

                                    1. Dequeue(Q, 30 sec)  msg 1
                         1    C1
  P2
                                    5. C1 crashed

                         6. msg1 visible 30 seconds after Dequeue
            43
             3   2   1
                         2
                              C2
  P1
       2. Dequeue(Q, 30 sec)  msg 2
       3. C2 consumed msg 2
       4. Delete(Q, msg 2)
       7. Dequeue(Q, 30 sec)  msg 1
Blobs
           Container
          http://<account>.blob.core.windows.net/<container>



               Table                       Entities
Account
           http://<account>.table.core.windows.net/<table>



              Queue                      Messages
          http://<account>.queue.core.windows.net/<queue>
http://www.microsoft.com/azure/windowsazure.mspx
http://msdn.microsoft.com/en-us/azure/cc994380.aspx




     http://tweval.com/wa-storage/
Your feedback is important!
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
     conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
                                 MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Windows Azure Storage

Mais conteúdo relacionado

Mais procurados

There's more than web
There's more than webThere's more than web
There's more than web
Matt Evans
 
Get Back in Control of Your SQL with jOOQ at #Java2Days
Get Back in Control of Your SQL with jOOQ at #Java2DaysGet Back in Control of Your SQL with jOOQ at #Java2Days
Get Back in Control of Your SQL with jOOQ at #Java2Days
Lukas Eder
 
Cassandra summit 2013 - DataStax Java Driver Unleashed!
Cassandra summit 2013 - DataStax Java Driver Unleashed!Cassandra summit 2013 - DataStax Java Driver Unleashed!
Cassandra summit 2013 - DataStax Java Driver Unleashed!
Michaël Figuière
 
Php user groupmemcached
Php user groupmemcachedPhp user groupmemcached
Php user groupmemcached
Jason Anderson
 

Mais procurados (18)

SOLID Principles
SOLID PrinciplesSOLID Principles
SOLID Principles
 
There's more than web
There's more than webThere's more than web
There's more than web
 
Get Back in Control of Your SQL with jOOQ at #Java2Days
Get Back in Control of Your SQL with jOOQ at #Java2DaysGet Back in Control of Your SQL with jOOQ at #Java2Days
Get Back in Control of Your SQL with jOOQ at #Java2Days
 
Strong Duck Type Driven Development
Strong Duck Type Driven DevelopmentStrong Duck Type Driven Development
Strong Duck Type Driven Development
 
Data binding в массы!
Data binding в массы!Data binding в массы!
Data binding в массы!
 
Cassandra summit 2013 - DataStax Java Driver Unleashed!
Cassandra summit 2013 - DataStax Java Driver Unleashed!Cassandra summit 2013 - DataStax Java Driver Unleashed!
Cassandra summit 2013 - DataStax Java Driver Unleashed!
 
Realm Java 2.2.0: Build better apps, faster apps
Realm Java 2.2.0: Build better apps, faster appsRealm Java 2.2.0: Build better apps, faster apps
Realm Java 2.2.0: Build better apps, faster apps
 
Oct 2012 state of project keystone
Oct 2012 state of project keystoneOct 2012 state of project keystone
Oct 2012 state of project keystone
 
Codemotion 2013 scalatra play spray
Codemotion 2013 scalatra play sprayCodemotion 2013 scalatra play spray
Codemotion 2013 scalatra play spray
 
Php user groupmemcached
Php user groupmemcachedPhp user groupmemcached
Php user groupmemcached
 
What makes a good bug report?
What makes a good bug report?What makes a good bug report?
What makes a good bug report?
 
The Java EE 6 platform
The Java EE 6 platformThe Java EE 6 platform
The Java EE 6 platform
 
JS Fest 2019. Thomas Watson. Post-Mortem Debugging in Node.js
JS Fest 2019. Thomas Watson. Post-Mortem Debugging in Node.jsJS Fest 2019. Thomas Watson. Post-Mortem Debugging in Node.js
JS Fest 2019. Thomas Watson. Post-Mortem Debugging in Node.js
 
CouchApps: Requiem for Accidental Complexity
CouchApps: Requiem for Accidental ComplexityCouchApps: Requiem for Accidental Complexity
CouchApps: Requiem for Accidental Complexity
 
分散式系統
分散式系統分散式系統
分散式系統
 
Drupalcamp gent - Node access
Drupalcamp gent - Node accessDrupalcamp gent - Node access
Drupalcamp gent - Node access
 
Eclipse Banking Day
Eclipse Banking DayEclipse Banking Day
Eclipse Banking Day
 
CouchDB Vs MongoDB
CouchDB Vs MongoDBCouchDB Vs MongoDB
CouchDB Vs MongoDB
 

Destaque (6)

Exploring Windows Azure Cloud Storage
Exploring Windows Azure Cloud StorageExploring Windows Azure Cloud Storage
Exploring Windows Azure Cloud Storage
 
Azure blob cloud drive
Azure blob cloud driveAzure blob cloud drive
Azure blob cloud drive
 
Windows Azure Storage – Architecture View
Windows Azure Storage – Architecture ViewWindows Azure Storage – Architecture View
Windows Azure Storage – Architecture View
 
Windows Azure platform
Windows Azure platformWindows Azure platform
Windows Azure platform
 
A complete guide to azure storage
A complete guide to azure storageA complete guide to azure storage
A complete guide to azure storage
 
Azure Storage Performance
Azure Storage PerformanceAzure Storage Performance
Azure Storage Performance
 

Semelhante a Windows Azure Storage

Building services using windows azure
Building services using windows azureBuilding services using windows azure
Building services using windows azure
Suliman AlBattat
 

Semelhante a Windows Azure Storage (20)

[Flutter] 來體驗 bloc 小方塊的神奇魔法 @Devfest 2022
[Flutter] 來體驗 bloc 小方塊的神奇魔法 @Devfest 2022[Flutter] 來體驗 bloc 小方塊的神奇魔法 @Devfest 2022
[Flutter] 來體驗 bloc 小方塊的神奇魔法 @Devfest 2022
 
GemStone/S Update
GemStone/S UpdateGemStone/S Update
GemStone/S Update
 
How abusing the Docker API led to remote code execution same origin bypass an...
How abusing the Docker API led to remote code execution same origin bypass an...How abusing the Docker API led to remote code execution same origin bypass an...
How abusing the Docker API led to remote code execution same origin bypass an...
 
TMPA-2017: Dl-Check: Dynamic Potential Deadlock Detection Tool for Java Programs
TMPA-2017: Dl-Check: Dynamic Potential Deadlock Detection Tool for Java ProgramsTMPA-2017: Dl-Check: Dynamic Potential Deadlock Detection Tool for Java Programs
TMPA-2017: Dl-Check: Dynamic Potential Deadlock Detection Tool for Java Programs
 
PostgreSQL as seen by Rubyists (Kaigi on Rails 2022)
PostgreSQL as seen by Rubyists (Kaigi on Rails 2022)PostgreSQL as seen by Rubyists (Kaigi on Rails 2022)
PostgreSQL as seen by Rubyists (Kaigi on Rails 2022)
 
Rac 12c optimization
Rac 12c optimizationRac 12c optimization
Rac 12c optimization
 
The Ring programming language version 1.3 book - Part 8 of 88
The Ring programming language version 1.3 book - Part 8 of 88The Ring programming language version 1.3 book - Part 8 of 88
The Ring programming language version 1.3 book - Part 8 of 88
 
ConFoo - Migrating To Mongo Db
ConFoo - Migrating To Mongo DbConFoo - Migrating To Mongo Db
ConFoo - Migrating To Mongo Db
 
Darknet yolo
Darknet yoloDarknet yolo
Darknet yolo
 
Seaside Portability
Seaside PortabilitySeaside Portability
Seaside Portability
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 
New Features Of JDK 7
New Features Of JDK 7New Features Of JDK 7
New Features Of JDK 7
 
Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012
 
2019 JJUG CCC Stateless Microservice Security with MicroProfile JWT
2019 JJUG CCC Stateless Microservice Security with MicroProfile JWT2019 JJUG CCC Stateless Microservice Security with MicroProfile JWT
2019 JJUG CCC Stateless Microservice Security with MicroProfile JWT
 
py25
py25py25
py25
 
Introduction to jOOQ
Introduction to jOOQIntroduction to jOOQ
Introduction to jOOQ
 
Building services using windows azure
Building services using windows azureBuilding services using windows azure
Building services using windows azure
 
JEEConf 2017 - How to find deadlock not getting into it
JEEConf 2017 - How to find deadlock not getting into itJEEConf 2017 - How to find deadlock not getting into it
JEEConf 2017 - How to find deadlock not getting into it
 
Mpg Dec07 Gian Lorenzetto
Mpg Dec07 Gian Lorenzetto Mpg Dec07 Gian Lorenzetto
Mpg Dec07 Gian Lorenzetto
 

Mais de goodfriday

Narine Presentations 20051021 134052
Narine Presentations 20051021 134052Narine Presentations 20051021 134052
Narine Presentations 20051021 134052
goodfriday
 
09 03 22 easter
09 03 22 easter09 03 22 easter
09 03 22 easter
goodfriday
 
Holy Week Easter 2009
Holy Week Easter 2009Holy Week Easter 2009
Holy Week Easter 2009
goodfriday
 
Holt Park Easter 09 Swim
Holt Park Easter 09 SwimHolt Park Easter 09 Swim
Holt Park Easter 09 Swim
goodfriday
 
Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092
goodfriday
 
Eastercard2009
Eastercard2009Eastercard2009
Eastercard2009
goodfriday
 
Easterservices2009
Easterservices2009Easterservices2009
Easterservices2009
goodfriday
 
Bulletin Current
Bulletin CurrentBulletin Current
Bulletin Current
goodfriday
 
March 2009 Newsletter
March 2009 NewsletterMarch 2009 Newsletter
March 2009 Newsletter
goodfriday
 
Lent Easter 2009
Lent Easter 2009Lent Easter 2009
Lent Easter 2009
goodfriday
 
Easterpowersports09
Easterpowersports09Easterpowersports09
Easterpowersports09
goodfriday
 
Easter Trading 09
Easter Trading 09Easter Trading 09
Easter Trading 09
goodfriday
 
Easter Brochure 2009
Easter Brochure 2009Easter Brochure 2009
Easter Brochure 2009
goodfriday
 
March April 2009 Calendar
March April 2009 CalendarMarch April 2009 Calendar
March April 2009 Calendar
goodfriday
 

Mais de goodfriday (20)

Narine Presentations 20051021 134052
Narine Presentations 20051021 134052Narine Presentations 20051021 134052
Narine Presentations 20051021 134052
 
Triunemar05
Triunemar05Triunemar05
Triunemar05
 
09 03 22 easter
09 03 22 easter09 03 22 easter
09 03 22 easter
 
Holy Week Easter 2009
Holy Week Easter 2009Holy Week Easter 2009
Holy Week Easter 2009
 
Holt Park Easter 09 Swim
Holt Park Easter 09 SwimHolt Park Easter 09 Swim
Holt Park Easter 09 Swim
 
Easter Letter
Easter LetterEaster Letter
Easter Letter
 
April2009
April2009April2009
April2009
 
Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092
 
Eastercard2009
Eastercard2009Eastercard2009
Eastercard2009
 
Easterservices2009
Easterservices2009Easterservices2009
Easterservices2009
 
Bulletin Current
Bulletin CurrentBulletin Current
Bulletin Current
 
Easter2009
Easter2009Easter2009
Easter2009
 
Bulletin
BulletinBulletin
Bulletin
 
March 2009 Newsletter
March 2009 NewsletterMarch 2009 Newsletter
March 2009 Newsletter
 
Mar 29 2009
Mar 29 2009Mar 29 2009
Mar 29 2009
 
Lent Easter 2009
Lent Easter 2009Lent Easter 2009
Lent Easter 2009
 
Easterpowersports09
Easterpowersports09Easterpowersports09
Easterpowersports09
 
Easter Trading 09
Easter Trading 09Easter Trading 09
Easter Trading 09
 
Easter Brochure 2009
Easter Brochure 2009Easter Brochure 2009
Easter Brochure 2009
 
March April 2009 Calendar
March April 2009 CalendarMarch April 2009 Calendar
March April 2009 Calendar
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

Windows Azure Storage

  • 1.
  • 2.
  • 3. Windows Azure Storage SQL Data Services
  • 4.
  • 5. blobs tables queues
  • 6.
  • 8. Account Container Blob IMG001.JPG pictures IMG002.JPG sally movies MOV1.AVI
  • 9.
  • 12. Account Container Blob Name PUT http://dvd.blob.core.windows.net/movies/TheBlob.wmv HTTP/1.1 Content-Length: 10000000000 Content-Type: binary/octet-stream x-ms-meta-year:1958 x-ms-meta-tagline:Beware%20of%20the%20Blob Content-MD5: HUXZLQLMuI/KZ5KDcJPcOA== x-ms-date: Mon, 27 Oct 2008 17:00:25 GMT Authorization: SharedKey dvd: F5a+dUDvef+PfMb4T8Rc2jHcwfK58KecSZY+l2naIao= ……… Blob Data Contents ………
  • 13. GET http://dvd.blob.core.windows.net/movies/TheBlob.wmv HTTP/1.1 Authorization: SharedKey dvd: RGllHMtzKMi4y/nedSk5Vn74IU6/fRMwiPsL+uYSDjY= x-ms-date: Mon, 27 Oct 2008 17:00:25 GMT GET http://dvd.blob.core.windows.net/movies/TheBlob.wmv HTTP/1.1 Range: bytes=1024000-2048000
  • 14. Account Blob Block Container IMG001. JPG pictures IMG002. JPG sally Block 1 movies MOV1.AVI Block 2 Block 3
  • 15. blobName = “TheBlob.wmv”; 10 GB Movie PutBlock(blobName, blockId1, block1Bits); Block Id 2 Block Id N Block Id 1 Block Id 3 PutBlock(blobName, blockId2, block2Bits); ………… PutBlock(blobName, blockIdN, blockNBits); PutBlockList(blobName, blockId1,…,blockIdN); TheBlob.wmv Windows Azure Storage
  • 16. BlobName = ExampleBlob.wmv Block Id 4 Block Id 4 Block Id 2 Block Id 1 Block Id 3 Sequence of Operations PutBlock BlockId1 PutBlock BlockId3 PutBlock BlockId4 PutBlock BlockId2 PutBlock BlockId4 Block Id 2 Block Id 3 Block Id 4 PutBlockList BlockId2, BlockId3, BlockId4 Committed and readable version of blob
  • 18.
  • 19.
  • 20.
  • 21. Blobs Tables – Provide structured storage. A table is a set of entities, which contain a set of properties Queues
  • 22.
  • 23. Account Table Entity Name =… Email = … users Name =… Email = … sally Photo ID =… Date =… photo index Photo ID =… Date =…
  • 24.
  • 25.
  • 26. … Property N Partition Key Row Key Property 3 Document Version Modification Description Name Time … Committed version Example Doc V1.0 8/2/2007 Partition Alice’s working version Example Doc V2.0.1 9/28/2007 1 FAQ Doc V1.0 5/2/2007 Committed version Alice’s working version Partition FAQ Doc V1.0.1 7/6/2007 2 Sally’s working version FAQ Doc V1.0.2 8/1/2007
  • 27.
  • 28.
  • 29.
  • 30.
  • 31. [DataServiceKey(quot;PartitionKeyquot;, quot;RowKeyquot;)] public class Customer { // Partition key – Customer Last name public string PartitionKey { get; set; } // Row Key – Customer First name public string RowKey { get; set; } // User defined properties here public DateTime CustomerSince { get; set; } public double Rating { get; set; } public string Occupation { get; set; } }
  • 32. Customer cust = new Customer( ‚Lee‛, // Partition Key = Last Name ‚Geddy‛, // Row Key = First Name DateTime.UtcNow, // Customer Since 2.0, // Rating ‚Engineer‛ // Occupation); // Service Uri is ‚http://<Account>.table.core.windows.net/‛ DataServiceContext context = new DataServiceContext(serviceUri); context.AddObject(‚Customer‛, cust); DataServiceResponse response = context.SaveChanges();
  • 33. DataServiceContext context = new DataServiceContext(‚http://myaccount.table.core.windows.net‛); var customers = from o in context.CreateQuery<Customer>(‚Customer‛) where o.PartitionKey == ‚Lee‛ select o; foreach (Customer customer in customers) { } GET http://myaccount.table.core.windows.net/Customer? $filter= PartitionKey eq ‘Lee’
  • 34. ServicePointManager.DefaultConnectionLimit = X; ServicePointManager.Expect100Continue = false; MergeOption = MergeOption.NoTracking DataServiceContext.ResolveType
  • 35.
  • 36.
  • 37. Blobs Tables Queues – Provide reliable storage and delivery of messages for an application
  • 38. Public internet n m Worker Web role Q role Load balancer Cloud storage (tables, blobs, queues)
  • 39.
  • 40. Account Queue Message 128x128, http://… thumbnail jobs 256x256, http://… sally http://… photo processing jobs http://…
  • 41. queue
  • 42.
  • 43. Producers Consumers 1. Dequeue(Q, 30 sec)  msg 1 C1 P2 4 3 2 1 C2 P1 2. Dequeue(Q, 30 sec)  msg 2
  • 44. Producers Consumers 1. Dequeue(Q, 30 sec)  msg 1 1 C1 P2 5. C1 crashed 6. msg1 visible 30 seconds after Dequeue 43 3 2 1 2 C2 P1 2. Dequeue(Q, 30 sec)  msg 2 3. C2 consumed msg 2 4. Delete(Q, msg 2) 7. Dequeue(Q, 30 sec)  msg 1
  • 45.
  • 46. Blobs Container http://<account>.blob.core.windows.net/<container> Table Entities Account http://<account>.table.core.windows.net/<table> Queue Messages http://<account>.queue.core.windows.net/<queue>
  • 47.
  • 49. Your feedback is important!
  • 50. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.