1 / 12

Možnosti paralelismu v databázích

Daniel Kapča – KAP077. Možnosti paralelismu v databázích. Zpracování multi -user požadavků Při query ( select , join , group , sort) Vytváření velkých indexů Hromadné query (insert, update, delete ) Agregace. Kde můžeme paralelizaci využít?. Vlákna obstarávají jednotlivé uživatele

floria
Download Presentation

Možnosti paralelismu v databázích

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Daniel Kapča – KAP077 Možnosti paralelismu v databázích

  2. Zpracování multi-user požadavků Při query(select, join, group, sort) Vytváření velkých indexů Hromadné query (insert, update, delete) Agregace Kde můžeme paralelizaci využít?

  3. Vlákna obstarávají jednotlivé uživatele Vzniká konkurenčnost požadavků Možnost deadlocku Nutnost použití transakcí Multi-user požadavky

  4. Tabulka se rozdělí na bloky po řádcích, sloupcích nebo obou Jednotlivé procesory/jádra pak zpracovávají jednotlivé bloky Případné nevyužité procesory/jádra mohou být vytíženy umísťováním data z jiných procesorů/jáder do front, z kterých jsou postupně odebírány (schéma - spící holič) Tvorba velkých indexů

  5. Rozdělení query na bloky Následné vykonání na jednotlivých procesorech/jádrech Opět můžeme využít systém front Hromadné query

  6. Agregace: • Rozdělení úlohy na bloky řádků • Provedení agregační funkce v jednotlivých blocích • Stromově opakujeme až do finálního výsledku (od spodu nahoru – jako u pavouka sportovních zápasů) Agregace

  7. Vždy je přítomna řídicí jednotka (např. PEC - parallelexecutioncoordinator) • Základní paralelní jednotkou je „Granule“ • BlockRange Granule (podjednotkouPartition) • Partition Granule • Jednotlivé operace, které mohou být paralelizovány jsou děleny na „Granule“ • 2 základní druhy paralelizace: • Serverová (Partition Granule) • Lokální (BlockRange Granule) Query

  8. Serverová paralelizace

  9. Serverová paralelizace

  10. SELECT * FROM table • SELECT * FROM table1, table2 • SELECT * FROM table1 WHERE x IN (SELECT x FROM table2) • SELECT * FROM table1 WHERE x=y • (krásné využití stromové struktury) • SELECT * FROM table ORDER BY x • (krásné využití merge sortu) Lokální paralelizace

  11. Paralelní obdoba LINQ Součást PFX library Jak pro SQL, tak i pro XML Součástí VS2010 a .NET 4.0 (nyní pouze CTP) var x = from x in data select x; var x = from x in data.AsParallel() select x; plinq

  12. http://www.dba-oracle.com/real_application_clusters_rac_grid/parallelism.htmhttp://www.dba-oracle.com/real_application_clusters_rac_grid/parallelism.htm http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/c0004557.htm http://www.cs.cmu.edu/~damon2006/pdf/cieslewicz06parallelism.pdf http://www.cs.columbia.edu/~kar/pubsk/simd.pdf http://documents.bmc.com/products/documents/91/79/69179/69179.pdf http://msdn.microsoft.com/en-us/magazine/cc163329.aspx Vlastní úvaha Zdroje

More Related