Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • 19/07/10
  • 19/07/10
  • 19/07/10
  • 19/07/10
  • 19/07/10
  • 19/07/10
  • 19/07/10
  • 19/07/10
  • 19/07/10
  • 19/07/10
  • 19/07/10
  • 19/07/10
  • 19/07/10
  • [ppt]

    1. 1. Prototyping SD-SQL Server: a Scalable Distributed Database System Soror SAHRI Witold LITWIN Thomas Schwarz [email_address] [email_address] [email_address] Ceria Laboratory Comp. Eng. Dep. Santa Clara U.
    2. 2. Overview <ul><li>Introduction </li></ul><ul><li>Overall Architecture </li></ul><ul><li>Application Interface </li></ul><ul><li>Implementation </li></ul><ul><li>Performance </li></ul><ul><li>Conclusion </li></ul>
    3. 3. <ul><li>Most of DBSs have distributed/parallel versions </li></ul><ul><ul><li>SQL Server, Oracle, DB2 </li></ul></ul><ul><li>DBSs do not provide dynamically scalable tables. </li></ul><ul><ul><li>All require manual repartitioning when tables scale-up. </li></ul></ul>A Scalable Distributed Database System: SD-DBS Introduction Architecture Issue Solution Solution?
    4. 4. <ul><li>Applies SDDS technology to DBSs </li></ul><ul><li>Provide many scalable distributed partitioning schemes. </li></ul><ul><li>LH*, RP*, k-RP*, LH* RS … </li></ul><ul><li>These schemes can serve as the basis for SD-DBS architecture </li></ul>Introduction Architecture Issue Solution Solution Why SDDSs?
    5. 5. SDDS Technology for DBSs Basic Design Constraints <ul><li>SDDS </li></ul><ul><ul><li>Key & tuple-at-the-time based access </li></ul></ul><ul><ul><ul><li>Search and insert </li></ul></ul></ul><ul><ul><li>Forwarding </li></ul></ul><ul><ul><li>Access to system internals </li></ul></ul><ul><li>SD-DBS </li></ul><ul><ul><li>Rich assertional SQL queries </li></ul></ul><ul><ul><li>No access « under the cover » </li></ul></ul><ul><ul><ul><li>Application interface has to be used </li></ul></ul></ul><ul><ul><li>No forwarding </li></ul></ul><ul><ul><ul><li>Not built-in in any major DBMS </li></ul></ul></ul>
    6. 6. SD-SQL Server <ul><li>A prototype SD-DBS </li></ul><ul><li>Runs on SQL Server </li></ul><ul><li>Uses linked SQL Server nodes </li></ul><ul><ul><li>Shared Nothing Architecture </li></ul></ul><ul><ul><li>Client, Server & Peer SDDS nodes </li></ul></ul><ul><ul><li>Up to 250 nodes at present </li></ul></ul><ul><li>Uses updatable distributed partitioned views </li></ul><ul><ul><li>SDDS client image </li></ul></ul><ul><li>Uses AFTER triggers </li></ul><ul><ul><li>To monitor local tables </li></ul></ul><ul><ul><li>To split locally overflowing ones </li></ul></ul>
    7. 7. SD-SQL Server Architecture Split User/Application User/Application Linked SQL Servers D1 NDBs D2 D i D i +1 _D1_T SD-SQL server SD-SQL server SD-SQL client S S P C I I D1_T SD-SQL Server Managers _D1_T I _D1_T T sd_select SD-SQL peer sd_insert
    8. 8. SD-SQL Server Architecture: Nodes, SDBs, NDBs <ul><li>SD-SQL Server is a collection of distributed SD-SQL Server nodes . </li></ul><ul><ul><li>Linked SQL Server Nodes </li></ul></ul><ul><li>An SD-SQL Server Node carries node databases (NDBs) </li></ul><ul><ul><li>SQL Server DBs </li></ul></ul><ul><ul><li>Elements of some SDBs </li></ul></ul><ul><li>A dynamic collection of NDBs with the same name forms a Scalable (Distributed) Database (SDB) </li></ul><ul><ul><li>Created at some node with one local NDB </li></ul></ul><ul><ul><ul><li>Becoming primary NDB and node for the SDB </li></ul></ul></ul>
    9. 9. SD-SQL Server Architecture DB1 SDB Node1 Node2 Node3 Node i D B 1 …… D B1 D B 1 DB2 SDB D B2 D B2 DB3 SDB D B3 D B3 MDB
    10. 10. <ul><li>An SD-SQL Server NDB is </li></ul><ul><ul><li>Client NDB </li></ul></ul><ul><ul><ul><li>Carries only images </li></ul></ul></ul><ul><ul><ul><li>Interfaces applications </li></ul></ul></ul><ul><ul><li>Server NDB </li></ul></ul><ul><ul><ul><li>Carries only the segments </li></ul></ul></ul><ul><ul><li>Peer NDB </li></ul></ul><ul><ul><ul><li>Both functions </li></ul></ul></ul><ul><ul><li>Primary NDB </li></ul></ul><ul><ul><ul><li>First created for an SDB </li></ul></ul></ul><ul><ul><ul><li>Carries SDB meta-data </li></ul></ul></ul><ul><ul><ul><li>Can be server or peer NDB only </li></ul></ul></ul>SD-SQL Server Architecture: Nodes, SDBs, NDBs
    11. 11. <ul><li>An SD-SQL Server node is </li></ul><ul><ul><li>Peer Node </li></ul></ul><ul><ul><ul><li>Carries any NDBs </li></ul></ul></ul><ul><ul><li>Client Node </li></ul></ul><ul><ul><ul><li>Carries only Client NDBs </li></ul></ul></ul><ul><ul><li>Server Node </li></ul></ul><ul><ul><ul><li>Carries only Server NDBs </li></ul></ul></ul><ul><ul><ul><li>No application interface </li></ul></ul></ul><ul><ul><li>Primary Node </li></ul></ul><ul><ul><ul><li>First ever created </li></ul></ul></ul><ul><ul><ul><ul><li>By a script </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Can only be server or peer node </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Carries the meta-DB (MDB) </li></ul></ul></ul></ul>SD-SQL Server Architecture: Nodes, SDBs, NDBs
    12. 12. <ul><li>sd_create_node ‘Dell1’ /* Primary node created by script */ </li></ul><ul><li>sd_create_node ‘Dell2’ /* Server by default */ </li></ul><ul><li>sd_create_node ‘Dell3, ‘client’ </li></ul><ul><li>sd_create_node ‘Ceria1’,’peer’ </li></ul><ul><li>sd_alter_ node ‘Dell3’, ‘ADD server’ /* Becomes peer*/ </li></ul><ul><li>sd_create_scalable_database ‘SkyServer, ‘Dell1’ /* Creates the primary SkyServer NDB as well at Dell1*/ </li></ul><ul><li>sd_create_node_database ‘SkyServer’, ‘ Dell3 ’, ‘client’ </li></ul>SD-SQL Server Architecture: Nodes, SDBs, NDBs
    13. 13. SD-SQL Server Architecture: Scalable Table : Creation <ul><li>An SDB contains scalable (distributed) tables </li></ul><ul><li>Created by the sd_create_table command </li></ul><ul><li>Issued to client or peer NDB </li></ul><ul><li>sd_create_table ‘PhotoObj (objid BIGINT PRIMARY KEY…)’, 10000 </li></ul>
    14. 14. SD-SQL Server Architecture: Scalable Table : Images <ul><li>A scalable (distributed) table is a collection of segments hidden behind images </li></ul><ul><ul><li>Scalable SQL Server distributed updatable partitioned views of the segments </li></ul></ul><ul><ul><ul><ul><li>Union-all views </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Using Lazy Schema Validation option </li></ul></ul></ul></ul><ul><ul><li>Primary image </li></ul></ul><ul><ul><ul><li>Created by SD-SQL Server at the table creation </li></ul></ul></ul><ul><ul><ul><li>Resides at the creation node </li></ul></ul></ul><ul><ul><ul><ul><li>Client or peer NDB where the command was issued </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>In the current prototype </li></ul></ul></ul></ul></ul><ul><ul><ul><li>Has the name of the scalable table </li></ul></ul></ul><ul><ul><li>Secondary images </li></ul></ul><ul><ul><ul><li>Created later </li></ul></ul></ul><ul><ul><ul><ul><li>by sd_create_image command </li></ul></ul></ul></ul><ul><ul><ul><li>Reside at other client or peer NDBs of the SDB </li></ul></ul></ul><ul><ul><ul><li>Have a specific name, other than that of the table </li></ul></ul></ul><ul><ul><ul><ul><li>To avoid name conflict </li></ul></ul></ul></ul>
    15. 15. Images CREATE VIEW PhotoObj AS SELECT * FROM N1.DB1.PhotoObj UNION ALL SELECT * FROM N2.DB1.PhotoObj UNION ALL SELECT * FROM N3.DB1.PhotoObj DB1 SDB N1. D B1 N2. D B1 N3. D B1 S S S PhotoObj ScalableTable Primary Image
    16. 16. SD-SQL Server Architecture: Scalable Table : Segments <ul><li>Segments are SQL tables </li></ul><ul><ul><li>Initially, the table has only one primary segment </li></ul></ul><ul><ul><ul><li>At some server or peer node </li></ul></ul></ul><ul><ul><ul><li>Peer node could be the table creation node </li></ul></ul></ul><ul><ul><li>Splits produce the other segments </li></ul></ul><ul><ul><ul><li>Each is located at a different NDB </li></ul></ul></ul><ul><ul><ul><ul><li>Within the SDB </li></ul></ul></ul></ul><ul><ul><ul><ul><li>If there is not enough NDBs, splits dynamically append new ones </li></ul></ul></ul></ul><ul><ul><li>A split occurs when an insert overflows the segment capacity </li></ul></ul><ul><ul><ul><li>Measured in # of tuples </li></ul></ul></ul><ul><ul><ul><li>At present all segments of a table have the same capacity </li></ul></ul></ul><ul><ul><li>Segments may be indexed </li></ul></ul><ul><ul><ul><li>By segments of SD-SQL Server scalable indexes </li></ul></ul></ul>
    17. 17. SD-SQL Server Architecture: Scalable Table : Split <ul><li>A single insert may overflow </li></ul><ul><ul><li>One segment by one tuple </li></ul></ul><ul><ul><ul><li>Tuple insert split </li></ul></ul></ul><ul><ul><ul><li>Produces half-half split appending a single new segment </li></ul></ul></ul><ul><ul><li>One segment by any number of tuples </li></ul></ul><ul><ul><ul><li>Bulk insert single segment split </li></ul></ul></ul><ul><ul><ul><li>Appends one or several new segments </li></ul></ul></ul><ul><ul><ul><li>Each new segment is 50% loaded </li></ul></ul></ul><ul><ul><ul><li>Splitting segment is at least 50% - 100% loaded </li></ul></ul></ul><ul><ul><li>Several segments, each by any number of tuples </li></ul></ul><ul><ul><ul><li>Multiple segment split </li></ul></ul></ul><ul><ul><ul><li>Appends one or several new segments </li></ul></ul></ul><ul><ul><ul><li>Each new segment is 50% loaded </li></ul></ul></ul><ul><ul><ul><li>Each splitting segment is at least 50% - 100% loaded </li></ul></ul></ul>
    18. 18. SD-SQL Server Architecture: Scalable Table : Split <ul><li>Splits are range partitioned </li></ul><ul><li>With respect to the partition key </li></ul><ul><ul><li>Must be a key attribute (SQL Server restriction) </li></ul></ul><ul><ul><li>1st key attribute (SD-SQL Server default) </li></ul></ul><ul><ul><li>Any other key attribute (user defined in sd_create_table command ) </li></ul></ul><ul><ul><ul><li>E.g., foreign key </li></ul></ul></ul><ul><li>Split generate SQL Server check constraints </li></ul><ul><ul><li>Whenever the table has several segments </li></ul></ul><ul><ul><li>The constraints fix the range of key for each segment </li></ul></ul>
    19. 19. Tuple insert split b+1 Check Constraint? b S S S 1 p b+1-p p=INT(b/2) C( S)=   { c: c  h = c (b+1-p)} C( S 1 )={c: c > l = c (b+1-p)}
    20. 20. Bulk Insert Single Segment Split (a) Initially (b) After the insert (c) After the split
    21. 21. Multiple Segment Split
    22. 22. SD-SQL Server Architecture: Scalable Table : Image Adjustment <ul><li>Splits do not manipulate images </li></ul><ul><li>A split makes all existing images outdated </li></ul><ul><ul><li>The existing distributed partitioned views do not address any new segments </li></ul></ul><ul><li>Image correctness is checked when a query addressing the image comes in </li></ul><ul><ul><li>Before SD-SQL Server executes the query </li></ul></ul><ul><li>Image is adjusted if needed </li></ul><ul><ul><li>New view is produced </li></ul></ul>
    23. 23. SD-SQL Server Command Interface <ul><li>The application manipulates scalable tables through SD-SQL Server commands. </li></ul><ul><ul><li>These start with sd_.... to distinguish from SQL Server commands for static tables </li></ul></ul><ul><li>Command types: </li></ul><ul><ul><ul><li>Creation : sd_create_node … SDB, NDB, table, image, index </li></ul></ul></ul><ul><ul><ul><li>Alteration : sd_alter_node, sd_alter_table </li></ul></ul></ul><ul><ul><ul><li>Removal : sd_drop_node… </li></ul></ul></ul><ul><ul><ul><li>Search queries : sd_ select </li></ul></ul></ul><ul><ul><ul><ul><li>includes sd_select …into… </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Creating a scalable table </li></ul></ul></ul></ul></ul><ul><ul><ul><li>Update queries : sd_insert , sd_update , sd_ delete </li></ul></ul></ul>
    24. 24. SD-SQL Server Command Interface <ul><li>Every command is implemented as SQL Server stored procedure </li></ul><ul><ul><li>Initially in MDB </li></ul></ul><ul><li>Every standard SQL command has SD-SQL Server counterpart: </li></ul><ul><ul><li>With slightly different syntax, besides the sd_ prefix </li></ul></ul><ul><ul><ul><li>Brackets around standard SQL clauses, SD-SQL Server specific clauses… </li></ul></ul></ul><ul><ul><li>Performing some SD-SQL Server specific processing </li></ul></ul><ul><ul><li>Generating some SQL command </li></ul></ul><ul><ul><ul><li>To image(s) or every segment </li></ul></ul></ul><ul><li>SD-SQL Server commands do not support some SQL Server specific clauses </li></ul><ul><ul><li>Case Of for instance </li></ul></ul><ul><li>SQL Server create view command does not have SD-SQL Server counterpart </li></ul>
    25. 25. SD-SQL Server Command Interface <ul><li>sd_create_table ‘Neighbors (htmid BIGINT, objid BIGINT, Neighborobjid BIGINT) ON PRIMARY KEY…)’, 500, ‘objid’ </li></ul><ul><li>sd_alter_table ‘PhotoObj ADD t INT, 1000 </li></ul><ul><li>sd_create_index ‘run_index ON Photoobj (run)‘ </li></ul><ul><li>sd_create_image ‘Ceria1’, ‘PhotoObj’ </li></ul><ul><li>sd_drop_image 'SD.Dell3_Photoobj‘ </li></ul><ul><li>USE Skyserver /* SQL Server command */ </li></ul><ul><li>sd_insert ‘INTO PhotoObj SELECT * FROM Ceria5.Skyserver-S.PhotoObj </li></ul><ul><li>sd_select ‘* FROM PhotoObj’ </li></ul><ul><li>sd_select ‘TOP 5000 * INTO PhotoObj1 FROM PhotoObj’, 500 </li></ul>
    26. 26. SD-SQL Server Naming Rules <ul><li>At each NDB, including MDB, SD-SQL Server has its own account named SD </li></ul><ul><ul><li>For secondary images and segments </li></ul></ul><ul><ul><li>For the meta-tables </li></ul></ul><ul><li>Otherwise SD-SQL Server uses the SQL Server public dbo account </li></ul><ul><ul><li>For any primary image </li></ul></ul><ul><ul><ul><li>Hence for every scalable table, for the applications </li></ul></ul></ul><ul><ul><li>For SD-SQL Server stored procedures </li></ul></ul><ul><ul><ul><li>commands etc. </li></ul></ul></ul><ul><li>SD-SQL Server does let scalable tables to be under user accounts </li></ul><ul><ul><li>At present </li></ul></ul><ul><ul><li>E.g., table dell1.Skyserver.soror.photoObj can only be a static table </li></ul></ul>
    27. 27. SD-SQL Server Naming Rules <ul><li>Primary image of scalable table T has SQL Server name dbo.T in its NDB </li></ul><ul><ul><li>Users at different NDBs may create different scalable tables T </li></ul></ul><ul><ul><li>Not at the same NDB </li></ul></ul><ul><li>At every NDB, segment of T created at node N of the SDB bears the name SD. _N_T. </li></ul><ul><li>At every NDB, secondary image of T created at node N of the SDB bears the name SD. N_T. </li></ul><ul><li>The rules avoid the name conflict </li></ul><ul><ul><li>Between primary and secondary images and the segments of different scalable tables named T at their NDBs </li></ul></ul><ul><ul><li>Between SD-SQL Server objects and other SQL Server objects </li></ul></ul><ul><ul><ul><li>Static tables and views </li></ul></ul></ul>
    28. 28. SD-SQL Server Meta-Tables <ul><li>Contain various SD-SQL Server specific data in every NDB </li></ul><ul><li>Every server NDB ( S -catalog) </li></ul><ul><ul><li>SD.RP (SgmNd, CreatNd, Table) </li></ul></ul><ul><ul><ul><li>Describes the actual partitioning of every scalable table with the primary segment at the NDB </li></ul></ul></ul><ul><ul><li>SD.Size   (CreatNd, Table, Size) </li></ul></ul><ul><ul><ul><li>Contains the segment size for every scalable table at the NDB </li></ul></ul></ul><ul><ul><li>SD.Primary (PrimNd, CreatNd, Table). </li></ul></ul><ul><ul><ul><li>For every segment at the NDB, a tuple points towards the primary segment of the table the segment belongs to </li></ul></ul></ul><ul><ul><li>SD.SDBNode (Node) </li></ul></ul><ul><ul><ul><li>Points towards the primary NDB of the SDB. </li></ul></ul></ul><ul><ul><li>SD.MDBNode (Node) . </li></ul></ul><ul><ul><ul><li>Points towards the primary node. </li></ul></ul></ul>
    29. 29. Scalable Tables S S S … S DB1 SDB N1. D B1 N2. D B1 N3. D B1 PhotoObj Scalable Table Ni. D B1 1000 Size N1.DB1 Primary Meta-Tables Ni.DB1 Nodes N1.DB1 N2.DB1 N3.DB1 RP
    30. 30. SD-SQL Client Meta-Tables <ul><li>Client NDB ( C- catalog) </li></ul><ul><ul><li>SD.Image (Name, Type, PrimNd,Size) </li></ul></ul><ul><ul><ul><li>registers all the local images </li></ul></ul></ul><ul><ul><li>SD.Server (Node) </li></ul></ul><ul><ul><ul><li>provides the server (peer) node(s) available for the primary segment of a table to create. </li></ul></ul></ul><ul><ul><ul><ul><li>Contains only one tuple at present </li></ul></ul></ul></ul><ul><ul><ul><ul><li>May contain more </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>e.g., for the fault tolerance or load balancing. </li></ul></ul></ul></ul></ul><ul><ul><li>SD.SDBNode (Node) </li></ul></ul><ul><ul><ul><li>Points towards the primary NDB of the SDB. </li></ul></ul></ul><ul><ul><li>SD.MDBNode (Node) . </li></ul></ul><ul><ul><ul><li>Points towards the primary node. </li></ul></ul></ul>
    31. 31. SD-SQL Peer & al. Meta-Tables <ul><li>Peer NDB ( P- catalog) </li></ul><ul><ul><li>C- catalog UNION S- catalog </li></ul></ul><ul><li>MDB </li></ul><ul><ul><li>SD.Nodes (Node, Type) </li></ul></ul><ul><ul><ul><li>Each tuple registers an SD-SQL Server node currently forming the SD-SQL configuration. </li></ul></ul></ul><ul><li>Each primary NDB </li></ul><ul><ul><li>SD.NDB (Node, NDBType) . </li></ul></ul><ul><ul><ul><li>Registers all the NDBs currently composing the SDB. </li></ul></ul></ul><ul><ul><ul><li>NDBType indicates whether the NDB is a peer, server or client. </li></ul></ul></ul>
    32. 32. SD-SQL Server Table Evolution <ul><li>The split leaves the overflowing segment at least half full. </li></ul><ul><ul><li>Every new segment ends up half full </li></ul></ul><ul><ul><ul><li>To attain the typical load factor of almost 70 % </li></ul></ul></ul><ul><li>Split processing tries to do not delay the commit of the insert triggering it </li></ul><ul><ul><li>Splitting may be a relatively long operation </li></ul></ul><ul><ul><li>AFTER trigger tests the overflow </li></ul></ul><ul><ul><li>Asynchronous SQL Server job termed Splitter performs the split </li></ul></ul>
    33. 33. SD-SQL Server Table Evolution <ul><li>The allocation of nodes to new segments of a scalable table tries to randomly balance node loads among the clients and /or peers. </li></ul><ul><li>The splitting algorithm allocates nevertheless the same nodes to the successive segments of different scalable tables of the same client. </li></ul><ul><ul><li>All this, to reduce query execution time </li></ul></ul><ul><ul><ul><li>Usually the queries tend to address the tables of the same client </li></ul></ul></ul>
    34. 34. SD-SQL Server Table Evolution <ul><li>Concurrent execution of the split and of the scalable queries is efficient and serializable . </li></ul><ul><ul><li>A concurrent scalable query that addresses the tuples in an overflowing segment </li></ul></ul><ul><ul><ul><li>either manipulates them before the split migrates out any of them </li></ul></ul></ul><ul><ul><ul><li>or manipulates them only when the split is over </li></ul></ul></ul>
    35. 35. SD-SQL Server Table Evolution <ul><li>SD SQL Server processes every command as a distributed transaction at Repeatable Read isolation level </li></ul><ul><li>Splits use exclusive locks on RP and segments </li></ul><ul><ul><li>Shared locks on other meta-tables </li></ul></ul><ul><ul><ul><li>E.g. SD.Primary </li></ul></ul></ul><ul><li>Scalable queries use basically shared locks on RP, Image and any other table involved </li></ul><ul><li>See details in the paper </li></ul><ul><ul><li>Creation of new segment scheme </li></ul></ul><ul><ul><ul><li>Keys </li></ul></ul></ul><ul><ul><ul><li>Check Constraint calculus </li></ul></ul></ul><ul><ul><li>Indexing new segments </li></ul></ul><ul><ul><li>Serializability analysis </li></ul></ul><ul><ul><li>Deadlocks </li></ul></ul><ul><ul><li>Etc. </li></ul></ul>
    36. 36. Concurrent Split Processing Exclusive Lock attente Exclusive Lock Shared Lock Exclusive Lock X X Splitter sd_alter N2.DB1 N1.DB1 N2.DB1 N3.DB1 RP S
    37. 37. SD-SQL Server Image Processing <ul><li>Image Checking & Adjustment </li></ul><ul><ul><li>Compares Image meta-table and RP </li></ul></ul><ul><ul><ul><li>Expected / Actual # of segments of the table </li></ul></ul></ul><ul><ul><li>Recreates the distributed partitioned view if needed </li></ul></ul><ul><ul><li>Updates Image </li></ul></ul><ul><li>Image Binding </li></ul><ul><ul><li>Finds whether a name in FROM clause depends on a scalable table </li></ul></ul><ul><ul><ul><li>The name can be a view name or a table name </li></ul></ul></ul><ul><ul><ul><li>A view may depend on a view etc. </li></ul></ul></ul><ul><ul><li>Processing parses the query and goes recursively through </li></ul></ul><ul><ul><ul><li>Image table </li></ul></ul></ul><ul><ul><ul><li>SQL Server system tables: </li></ul></ul></ul><ul><ul><ul><ul><li>sysobjects and s ysdepends </li></ul></ul></ul></ul><ul><ul><li>Et the end, it determines all the image names involved and checks upon each of them </li></ul></ul>
    38. 38. Experimental Performance Analysis <ul><li>To determine the SD-SQL Server processing efficiency </li></ul><ul><ul><li>On P4 1.8 GHz PCs with 1 Gbs local net. </li></ul></ul><ul><li>Use of the SkyServer BD as benchmark http:// research.microsoft.com /~gray/SDSS </li></ul><ul><ul><li>Use of the PhotoObj table as a scalable table. </li></ul></ul><ul><ul><li>PhotoObj has 158,426 tuples ( about 260 MB) </li></ul></ul>
    39. 39. Experiments (Q) SELECT COUNT (*) FROM PhotoObj Execution time of (Q) on SQL Server and SD-SQL Server
    40. 40. Conclusion <ul><li>Scalable distributed databases with scalable tables are now a reality with SD-SQL Server </li></ul><ul><ul><li>No more manual repartitioning </li></ul></ul><ul><ul><ul><li>Unlike in any other DBS we know about </li></ul></ul></ul><ul><ul><ul><ul><li>See the “Related Work” in the paper </li></ul></ul></ul></ul><ul><li>The performance analysis proves </li></ul><ul><ul><li>Efficiency of our design </li></ul></ul><ul><ul><li>Immediate utility of SD-SQL Server </li></ul></ul><ul><li>Future Work </li></ul><ul><ul><li>Quite a lot </li></ul></ul><ul><ul><ul><li>Our system is only the “proof-of-the-concept” </li></ul></ul></ul><ul><ul><li>See the paper </li></ul></ul>
    41. 41. Thank You
    42. 42. D1_T Linked SQL Servers D1 D2 Di Di+1 S S P C _D1_T _D1_T User/Application T sd_create_table NDBs SD-SQL server SD-SQL server SD-SQL client SD-SQL Server Managers SD-SQL peer User/Application sd_insert _D1_T Split
    43. 43. DB1 SDB Node1 Node2 Node3 Node i D B 1 …… D B1 D B 1 DB2 SDB D B2 D B2 MDB
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.