Table alter at scale Aosc története István Pödör MySQL Ops. Eng. Oct, 20. 2012.

Slides:



Advertisements
Hasonló előadás
Bevezető Innovációs területek S+S Epilógus. pptPlex Section Divider Bevezető The slides after this divider will be grouped into a section and given the.
Advertisements

2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Merényi Ádám Microsoft Magyarország
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
E-banking summit © 2013 Cisco and/or its affiliates. All rights reserved. 1 A jövő munkahelye – Együttműködéses megoldások Mihályfi Márton mérnök tanácsadó,
Tester Developer Architect Project Manager Business Analyst Designer Database Professional.
Nyereményjátékok és a Facebook - aki mer, az nyer!?”
Richter Elek Technikai terméktámogatási felelős Microsoft Magyarország.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Üzleti Megoldások a KKV szegmens számára Cisco partner nap 2009 április.
2 3.NET Framework 3.0 Visual Studio Extensions for WF Visual Studio Extensions for WCF/WPF CTP ASP.NET AJAX 1.0 Ajax Toolkit.NET Framework 3.5 Visual.
21 Years of Partnership and Innovation 1989 Citrix Systems founded 2010 Citrix signed licensing agreement with Microsoft for NT Server Introduced Independent.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Delphi programozás alapjai
2 8 Kiadás éve / Platform Server (1000’s of users) Workgroup (Dozens of users) Desktop (Single User) Laptop Tablet PC Windows CE.
Bemutatkozás Barta Csaba Deloitte Zrt. Manager CHFI
System Statistical Functions. CPU Tesztelése SELECT AS busy Vissza adja milliszekundumban, mennyi időt töltött munkával a szerverünk indítás.
IT-DEV-CON – Adatkezelés a felhőben Windows Phone 7 alkalmazással Tóth László
Árvai Zoltán Számalk Oktató központ.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
Többtáblás lekérdezések, allekérdezések Rózsa Győző
megismerése, mintaadatbázis létrehozása
INSERT INTO Egy vagy több rekordot ad hozzá a táblához. Egyetlen rekordot hozzáfűző kifejezés: INSERT INTO cél_tábla (mező1,mező2,…) VALUES (érték1, érték2,
Neo4j bevezető Rácz Gábor
Image készítés Windows AIK segítségével
TRANZIENS ADATTÁROLÁS State objektum Egy alkalmazásszintű gyűjtemény (Dictionary), mely Tombstone esetén megőrzi tartalmát a memóriában kulcs/érték párokként.
(MY)SQL MEGJEGYZÉSEK. MYISAM VS. INNODB  A MySQL-ben többféle tárolási motor is használatos: MyISAM, InnoDB  A régebbi verziókban a MyISAM alapértelmezett,
Készítette: Sárközi Anikó
Adatbáziskezelés Horváth Ernő 1. Elérhetőségek Kiss Jenő Horváth Ernő Tanszéki honlap
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
SQL – OLAP 8. óra.
Delegátumok C#-ban Krizsán Zoltán iit 1.0.
ADATBÁZISOK
ADATBÁZISOK
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
1 SQL – Structured Query Language IBM fejlesztette ki 70-es években (SEQUEL) 1986-ban lett szabvány (SQL86) SQL86, SQL89, SQL92, SQL99, SQL3, SQL2003 DDL,
Oracle multimédia Kiss Attila Információs Rendszerek Tanszék
Oracle – ORDMS lehetőségek UDT:- objektum típusok - kollekció típusok SQL> CREATE TYPE SZEMELY AS OBJECT ( 2 NEV VARCHAR2(20), 3 TEL VARCHAR2(14)); SQL>
PHP VI Adatbázisok, MySQL
Service Manager.. Remedy Action Request System OpenView Operations.
„MICROSOFT IT ÜZLETI INTELLIGENCIA MEGOLDÁS BEMUTATÓ” Avagy az IT adat vizualizációs lehetőségi egyéb szervezeti egységek felé („ablak” a nagyvilágra)
Edge Transport Routing and AV/AS Enterprise Network External SMTP servers Phone system (PBX or VOIP) Client Access Client connectivity Web services.
Windows Server 2008 { PowerShell }
„MICROSOFT SYSTEM CENTER 2012 OPERATIONS MANAGER” Intelligens mérési megoldások gyorsan Benkovics Viktor Vezető tanácsadó Microsoft Magyarország – Services.
Alertet indíthat egy: SQL Server esemény (LOG) SQL Server performancia érték WMI events Alert végezhet: Operátor értesítést JOB indítás (válasz az eseményre)
Építészet és kritika Weblap bemutatása, Tóth Enikő.
Szervező program Pénzügy figyelő, számlázó program Legújabb alkalmazás.NET Framework 2.0 WSE.NET Framework 4.0 WCF Régebbi, jól bevált alkalmazás.
Egy GAZDAG HIBAJELENTÉS elég információt tartalmaz ahhoz, hogy AZONNALI LÉPÉSEKET lehessen tenni, a javítás érdekében.
Gábor Dénes Főiskola (IAI)Programozási technológia (Java) - III. / 1 13.Állományok, bejegyzések 14.Folyamok 15.Közvetlen hozzáférésű állomány.
DDL – Adatdefiníciós nyelv
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks P-GRADE Portal gyakorlat ismertető Gergely.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
var q = ( from c in dc.Customers where c.City == "London" where c.City == "London" select c).Including( c => c.Orders ); select c).Including(
Wondeer Zene cloud alapokon Monda László ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫ (_….__…_) _(.. ( …) / (_…._)(_…._…_) \ / / / / | \ \ \ / / / / | \
Adatokkal a vásárlók és az eladók nyomában (Mindenhol vár egy jófogás) Kovács Márton.
Felhasználók és jogosultságok
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Könyvtár, csomag és alprogramokVHDL Könyvtár, csomag és alprogram n Library és use n Package n Alprogramok –Procedure –Function –Resolution function Egy.
Domain names and DNS Félegyházi Márk Laboratory of Cryptography and System Security (CrySyS) Budapest University of Technology and Economics Department.
HTTP kommunikáció Androidon HttpClient-en keresztűl HttpPost/HttpGet objektum használatával HttpClient execute metódusának meghívása.
- Group Policy - Group Policy Preferences - Group Policy 4x5 - Optimális munkakörnyezet – az első lépcsőfok.
ORACLE ORDBMS adminisztrációs feladatok 3. rész dr. Kovács László 2004.
© 2013, LogMeIn, Inc. | The Capability Cloud TM Git használata Visual Studio-ból.
Adatbázis-kezelés Tarcsi Ádám január. 15. MySQL és PHP.
Web Application 1 Web Application 3 Web Application 2 Web Application 4 Shared Service Provider 1 Shared Service Provider 2 Excel Services1 Search1.
Szerver és kliens gép közötti kommunikáció Adattárolási modellek  OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó.
Webprogramozó tanfolyam
General Motors Powertrain – Magyarország Kft. Dátum: Április 16
Design Thinking módszertan Juhász Dániel UI Designer / DT Coach Buday Balázs Product Owner / DT Coach.
Nokia C5 Data Sheet Planned Market Introduction • Q Category
Előadás másolata:

Table alter at scale Aosc története István Pödör MySQL Ops. Eng. Oct,

1 Alapok 2 Rendszerek felépítése és a problémák 3 Manuális megoldások és a múlt 4 Automatizált megoldás 5 Q&A Agenda

Db ops team ▪ A csapat amiben én magam is dolgozom (MySQL Infrastructure Operations Engineering) ▪ Minden adat, aminek perzisztensnek kell lennie (1milliárd aktív felhasználóhoz) ▪ Petabyte méretű adattárház ▪ Több ezer instance amire 60m+ lekérdezés jut másodpercenként ▪ 8(+2+3(perf/eng)) fős csapat, ezért főleg fejlesztéssel foglalkozunk

Alapok ▪ Kérdezz! (jobb egy érdekes beszélgetes, mint egy unalmas előadás) ▪ Minden külön gép > host ▪ Minden futó mysql egy host-ton > instance ▪ Shard vagy dbid, replikáció lánc (gépcsoport) ▪ Tier egy gépcsoportokat összefogó lista (pl dbid, dbname, services/instances)

OnlineSchemaChange (OSC) ▪ Downtime nem elfogadható és a masterek váltása nem elég biztonságosan automatizálható, túl drága ▪ Kellett egy online megoldás (OSC) ▪ Új tábla az új schema-val ▪ Triggerek létrehozása ▪ Adatok átemelése ▪ Kicserélni a régit az újjal

Megoldás és a problémák ▪ Futtatni minden gépen és db-n kézzel (tool-ok) ▪ Borzalmasan sok idő ▪ Rengeteg a hibalehetőség ▪ A gépek gyakran cserélődnek, a hostname irreleváns ▪ Nehéz jegyezni hol készült el, az ellenőrzés költséges (és nem teljesen megbízható) ▪ Leggyengébb láncszem problémája (slave/master, egy tábla egy időben) ▪ Az egyszerű és gyors alter 2hét volt (sok instance)

Fejlesztők manual-OSC dba Manuálisan

A szükség ▪ Alter automatikusan, ember nélkül ▪ Maximális kihasználtság ▪ szabályozhatóan, concurrency, prioritás ▪ Failsafe működés ▪ Nyomonkövethető, bármikor szüneteltethető, leállítható ▪ _automatikusan_

Mit kell tudnunk az automatizáláshoz? ▪ Konzisztens tábla szerkezetek ▪ Instance aktuális állapotának tárolása ▪ Helyi státuszok összegyűjtése ▪ Alter management ▪ Helyi állapotok összegyűjtése ▪ Queue összeállítása ▪ Alter elindítása

Mielőtt elkezdjük… ▪ Végigmegyünk egy példán ▪ Kérdezz, vitatkozz bátran! ▪ jobb egy érdekes beszélgetes, mint egy unalmas előadás…

Mit kell tudnunk az automatizáláshoz? ▪ Konzisztens tábla szerkezetek tárolása (svn) ▪ Aktuális állapotok tárolása (mysql, local/central) ▪ Helyi státuszok elkészítése (aosc_cheksum) ▪ Alter management (aosc_brain) ▪ Helyi állapotok összegyűjtése (aosc_collector) ▪ Queue összeállítása (aosc_scheduler) ▪ Alter elindítása (aosc_osc_ww)

CREATE TABLE `tabla1` ( `id` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 (minden gepen van checkout) svn - tier/tabla1 Schema tárolás

Mit kell tudnunk az automatizáláshoz? ▪ Konzisztens tábla szerkezetek tárolása (svn) ▪ Aktuális állapotok tárolása (mysql, local/central) ▪ Helyi státuszok elkészítése (aosc_cheksum) ▪ Alter management (aosc_brain) ▪ Helyi állapotok összegyűjtése (aosc_collector) ▪ Queue összeállítása (aosc_scheduler) ▪ Alter elindítása (aosc_osc_ww)

svn - tier/tabla1 checksum udbxx.snc:3306 MySQL tábla: aosc_local_status CREATE TABLE `aosc_local_status` ( `host`, `port` int(4), `database`, `table_name`, `hash_current`, `hash_desired`, `status` enum('OK','NA','INC’), `last_run` timestamp) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 aosc_checksu m (osc segítségével) kivánt schema

svn - tier/tabla1 udbxx.snc:3306 MySQL tábla: aosc_local_status CREATE TABLE `aosc_local_status` ( `host`, `port` int(4), `database`, `table_name`, `hash_current`, `hash_desired`, `status` enum('OK','NA','INC’), `last_run` timestamp) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 udbxx.snc:3306 -dbid1.tabla1 -dbid2.tabla1 -dbid3.tabla1 aosc_checksu m (osc segítségével) udbxx.snc | 3306 | dbid1 | tabla1 | abcd | efgh | INC udbxx.snc | 3306 | dbid2 | tabla1 | efgh | efgh | OK udbxx.snc | 3306 | dbid3 | tabla1 | NULL| efgh | NA kivánt schema összehasonlítá s checksum

svn - tier/tabla1 udbxx.snc:3306 MySQL tábla: aosc_local_status CREATE TABLE `aosc_local_status` ( `host`, `port` int(4), `database`, `table_name`, `hash_current`, `hash_desired`, `status` enum('OK','NA','INC’), `last_run` timestamp) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 udbxx.snc:3306 -dbid1.tabla1 -dbid2.tabla1 -dbid3.tabla1 aosc_checksu m (osc segítségével) udbxx.snc | 3306 | dbid1 | tabla1 | abcd | efgh | INC udbxx.snc | 3306 | dbid2 | tabla1 | efgh | efgh | OK udbxx.snc | 3306 | dbid3 | tabla1 | NULL| efgh | NA kivánt schema összehasonlítá s tárolás checksum

svn - tier/tabla1 udbxx.snc:3306 MySQL tábla: aosc_local_status CREATE TABLE `aosc_local_status` ( `host`, `port` int(4), `database`, `table_name`, `hash_current`, `hash_desired`, `status` enum('OK','NA','INC’), `last_run` timestamp) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 udbxx.snc:3306 -dbid1.tabla1 -dbid2.tabla1 -dbid3.tabla1 aosc_checksu m (osc sefítségével) udbxx.snc | 3306 | dbid1 | tabla1 | abcd | efgh | INC udbxx.snc | 3306 | dbid2 | tabla1 | efgh | efgh | OK udbxx.snc | 3306 | dbid3 | tabla1 | NULL| efgh | NA 1. kivánt schema 2. összehasonlítás 3. tárolás ▪ osc_wrapper.php –dry_run opcióval ▪ checksum md5() function-nel php-ból ▪ Lekérdezés 1 query-vel (select database from aosc_local_status where table_name = ‘tabla1’ and status <> ‘OK’) checksum

Mit kell tudnunk az automatizáláshoz? ▪ Konzisztens tábla szerkezetek tárolása (svn) ▪ Aktuális állapotok tárolása (mysql, local/central) ▪ Helyi státuszok elkészítése (aosc_cheksum) ▪ Alter management (aosc_brain) ▪ Helyi állapotok összegyűjtése (aosc_collector) ▪ Queue összeállítása (aosc_scheduler) ▪ Alter elindítása (aosc_osc_ww)

svn - tier/tabla1 brain udbxx.snc:3306 MySQL: aosc_local_status aosc_db MySQL: -allowed_alters -current_alters dba CREATE TABLE `allowed_alters` ( `group`, `table_name`, `allowed_by`, `allowed_at`, `priority`, `server_list` enum('default','custom’), ) ENGINE=InnoDB DEFAULT CHARSET=latin1 insert into allowed_to_alter values (‘udb', ‘tabla1’, 'istvan', NULL, 10, 'default');

svn - tier/tabla1 brain udbxx.snc:3306 MySQL: aosc_local_status aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters CREATE TABLE `allowed_alters` ( `group`, `table_name`, `allowed_by`, `allowed_at`, `priority`, `server_list` enum('default','custom’) )) ENGINE=InnoDB DEFAULT CHARSET=latin1 (‘udb', ‘tabla1’, 'istvan', NULL, 10, 'default'); CREATE TABLE `finished_alters` ( `group`, `table_name`, `finished_at`, `tries` )) ENGINE=InnoDB DEFAULT CHARSET=latin1 ?

svn - tier/tabla1 brain udbxx.snc:3306 MySQL: aosc_local_status aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters CREATE TABLE `allowed_alters` ( `group`, `table_name`, `allowed_by`, `allowed_at`, `priority`, `server_list` enum('default','custom’) )) ENGINE=InnoDB DEFAULT CHARSET=latin1 (‘udb', ‘tabla1’, 'istvan', NULL, 10, 'default'); CREATE TABLE `current_alters` ( `group`, `table_name`, `status` enum('DONE','IPR','HOLD’), `priority`, `server_list` enum('default','custom’) )) ENGINE=InnoDB DEFAULT CHARSET=latin1 (‘udb', ‘tabla1’, ‘IPR', 10, 'default'); CREATE TABLE `finished_alters` ( `group`, `table_name`, `finished_at`, `tries` )) ENGINE=InnoDB DEFAULT CHARSET=latin1 ? – 3x24h sleep

svn - tier/tabla1 brain udbxx.snc:3306 MySQL: - aosc_local_status aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters ▪ Allowed_alters az egyetlen tábla amihez ember/alkalmazás kivülről hozzányúlhat ▪ A gépek cserélődése miatt, minimum 3x24 óráig várunk ha a gépeket konzisztensnek ítéltük ▪ A harmadik probálkozás után, az aosc_brain ellenőrzi, hogy valóban mind rendben van-e ellenorzes aosc_checksu m CREATE TABLE `current_alters` ( `group`, `table_name`, `status` enum('DONE','IPR','HOLD’), `priority`, `server_list` enum('default','custom’) )) ENGINE=InnoDB DEFAULT CHARSET=latin1 (‘udb', ‘tabla1’, ‘IPR', 10, 'default');

Mit kell tudnunk az automatizáláshoz? ▪ Konzisztens tábla szerkezetek (svn) ▪ Aktuális állapot tárolása (mysql, local/central) ▪ Helyi státuszok összegyűjtése (aosc_cheksum) ▪ Alter management (aosc_brain) ▪ Helyi állapotok begyűjtése (aosc_collector) ▪ Queue összeállítása (aosc_scheduler) ▪ Alter elindítása (aosc_osc_ww)

svn - tier/tabla1 collector udbxx.snc:3306 MySQL: - aosc_local_status aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters - alter_udb_tabla1 aosc_checksu m aosc_collector (‘udb', ‘tabla1’, ‘IPR', 10, 'default');

svn - tier/tabla1 collector udbxx.snc:3306 MySQL: - aosc_local_status aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters - alter_udb_tabla1 aosc_checksu m aosc_collector (‘udb', ‘tabla1’, ‘IPR', 10, 'default'); CREATE TABLE `alter_udb_tabla1`( `host`, `port`, )) ENGINE=InnoDB DEFAULT CHARSET=latin1

svn - tier/tabla1 collector udbxx.snc:3306 MySQL: - aosc_local_status aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters - alter_udb_tabla1 aosc_checksu m aosc_collector (‘udb', ‘tabla1’, ‘IPR', 10, 'default'); pmysql CREATE TABLE `alter_udb_tabla1`( `host`, `port`, )) ENGINE=InnoDB DEFAULT CHARSET=latin1 (‘udbxx.snc’, 3306);

svn - tier/tabla1 collector udbxx.snc:3306 MySQL: - aosc_local_status aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters - alter_udb_tabla1 aosc_checksu m aosc_collector (‘udb', ‘tabla1’, ‘IPR', 10, 'default'); pmysql CREATE TABLE `alter_udb_tabla1`( `host`, `port`, )) ENGINE=InnoDB DEFAULT CHARSET=latin1 (‘udbxx.snc’, 3306); ▪ A collector hozza létre az alter_$tier_$table táblát ▪ Amennyiben nem talál inkonzisztens instance-ot, kezeli a finished_alters táblát is ▪ A server lista, a csoport neve alapján egy központi rendszerünkből jön ▪ Pmysql > paralell mysql query

Mit kell tudnunk az automatizáláshoz? ▪ Konzisztens tábla szerkezetek (svn) ▪ Aktuális állapot tárolása (mysql, local/central) ▪ Helyi státuszok összegyűjtése (aosc_cheksum) ▪ Alter management (aosc_brain) ▪ Helyi állapotok begyűjtése (aosc_collector) ▪ Queue összeállítása (aosc_scheduler) ▪ Alter elindítása (aosc_osc_ww)

svn - tier/tabla1 scheduler udbxx.snc:3306 MySQL: - aosc_local_status - aosc_osc_ww aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters -alter_db_tabla1 -running_alters aosc_checksu m aosc_collector aosc_scheduler Queue paraméterek (‘udbxx.snc’, 3306); gépek táblák (‘udb', ‘tabla1’, ‘IPR', 10, 'default');

svn - tier/tabla1 scheduler udbxx.snc:3306 MySQL: - aosc_local_status - aosc_osc_ww aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters -alter_db_tabla1 -running_alters aosc_checksu m aosc_collector aosc_scheduler Queue paraméterek (‘udbxxsnc’, 3306); gépek táblák (‘udb', ‘tabla1’, ‘IPR', 10, 'default'); ▪ Figyelembe veszi a tier/csoport egyéni tulajdonságait (pl maximális alterek száma) ▪ Host/instance alapú teljesítmény elosztás ▪ Queue karbantartás ▪ Datacenter alapján elosztja a terhelést ▪ Figyelembe veszi a prioritást ▪ Replikaciós sorrendet kezel (master/slave) ▪ (hamarosan) súlyozást is támogatja

svn - tier/tabla1 scheduler udbxx.snc:3306 MySQL: - aosc_local_status - aosc_osc_ww aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters -alter_db_tabla1 -running_alters aosc_checksu m aosc_collector aosc_scheduler Queue parameterek (‘udbxx.snc’, 3306); gépek táblák (‘udb', ‘tabla1’, ‘IPR', 10, 'default'); CREATE TABLE `running_alters` ( `host`, `port`, `group`, `table_name`, `osc_status` enum('READY','RUNNING','DONE’), `last_updated`, )) ENGINE=InnoDB DEFAULT CHARSET=latin1 (‘udbxx.snc’, 3306,’udb’,’tabla1’,’READY’, NULL); CREATE TABLE `aosc_osc_ww` ( `host`, `port`, `table_name`, `osc_priv` enum('OK','STOP’), `status` enum(‘WAITING’,'RUNNING’,'DONE’). `percentage`, `last_update`, `try`, `priority`, `start_time`, `group`) | udbxx.snc |3306| tabla1| OK| WAITING | 0 | NULL |0|10| NULL | udb |

Mit kell tudnunk az automatizáláshoz? ▪ Konzisztens tábla szerkezetek (svn) ▪ Aktuális állapot tárolása (mysql, local/central) ▪ Helyi státuszok összegyűjtése (aosc_cheksum) ▪ Alter management (aosc_brain) ▪ Helyi állapotok begyűjtése (aosc_collector) ▪ Queue összeállítása (aosc_scheduler) ▪ Alter elindítása (aosc_osc_ww)

svn - tier/tabla1 scheduler udbxx.snc:3306 MySQL: - aosc_local_status - aosc_osc_ww dbid1.tabla1 dbid2.tabla1 dbid3.tabla1 aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters - alter_udb_tabla1 -running_alters aosc_checksu m aosc_collector aosc_scheduler (‘udbxx.snc’, 3306); gépek táblák (‘udb', ‘tabla1’, ‘IPR', 10, 'default'); (‘udbxx.snc’, 3306,’udb’,’tabla1’,’READY’, NULL); CREATE TABLE `aosc_osc_ww` ( `host`, `port`, `table_name`, `osc_priv` enum('OK','STOP’), `status` enum(‘WAITING’,'RUNNING’,'DONE’). `percentage`, `last_update`, `try`, `priority`, `start_time`, `group`) | udb01.snc1| 3306| tabla1| OK| WAITING |0| NULL |0|10| NULL | udb | queue aosc_osc_ww jogosultság Inkonzisztens db-k

svn - tier/tabla1 scheduler udbxx.snc:3306 MySQL: - aosc_local_status - aosc_osc_ww dbid1.tabla1 dbid2.tabla1 dbid3.tabla1 aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters - alter_udb_tabla1 -running_alters aosc_checksu m aosc_collector aosc_scheduler (‘udbxx.snc’, 3306); gépek táblák (‘udb', ‘tabla1’, ‘IPR', 10, 'default'); (‘udbxx.snc’, 3306,’udb’,’tabla1’,’READY’, NULL); queue aosc_osc_ww ellenörzés jogosúltság

svn - tier/tabla1 scheduler udbxx.snc:3306 MySQL: - aosc_local_status - aosc_osc_ww dbid1.tabla1 dbid2.tabla1 dbid3.tabla1 aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters - alter_udb_tabla1 -running_alters aosc_checksu m aosc_collector aosc_scheduler (‘udbxx.snc’, 3306); gépek táblák (‘udb', ‘tabla1’, ‘IPR', 10, 'default'); (‘udbxx.snc’, 3306,’udb’,’tabla1’,’READY’, NULL); queue aosc_osc_ww (osc_wrapper.php ) ellenőrzés jogosúltság alter inditása alter status>

svn - tier/tabla1 scheduler udbxx.snc:3306 MySQL: - aosc_local_status - aosc_osc_ww dbid1.tabla1 dbid2.tabla1 dbid3.tabla1 aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters - alter_udb_tabla1 -running_alters aosc_checksu m aosc_collector aosc_scheduler (‘udbxx.snc’, 3306); gépek táblák (‘udb', ‘tabla1’, ‘IPR', 10, 'default'); (‘udbxx.snc’, 3306,’udb’,’tabla1’,’READY’, NULL); queue aosc_osc_ww befejezés

svn - tier/tabla1 scheduler udbxx.snc:3306 MySQL: - aosc_local_status - aosc_osc_ww dbid1.tabla1 dbid2.tabla1 dbid3.tabla1 aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters - alter_udb_tabla1 -running_alters aosc_checksu m aosc_collector aosc_scheduler (‘udbxx.snc’, 3306); gepek tablak (‘udb', ‘tabla1’, ‘IPR', 10, 'default'); (‘udbxx.snc’, 3306,’udb’,’tabla1’,’READY’, NULL); queue aosc_osc_ww (osc_wrapper.php ) ellenorzes jogosultsag alter inditasa alter befejezes

svn - tier/tabla1 Scheduler - karbantartás udbxx.snc:3306 MySQL: - aosc_local_status - aosc_osc_ww aosc_brain aosc_db MySQL: -allowed_alters -current_alters -finished_alters - alter_udb_tabla1 -running_alters aosc_checksu m aosc_collector aosc_scheduler (‘udbxx.snc’, 3306); gépek táblák (‘udb', ‘tabla1’, ‘IPR', 10, 'default'); ▪ Ellenőrzi a queue státuszokat ▪ Nem várunk-e túl régóta az alter indítására ▪ Nem fut-e túl régóta ▪ Létezik-e egyáltalán még az instance ▪ Ha egy instance-ot elvesztünk, nem törődünk vele, töröljük aosc_osc_ww

Mit kell tudnunk az automatizáláshoz? ▪ Konzisztens táblaszerkezetek (svn) ▪ Aktuális állapot tárolása (mysql, local/central) ▪ Helyi státuszok összegyűjtése (aosc_cheksum) ▪ Alter management (aosc_brain) ▪ Helyi állapotok begyűjtése (aosc_collector) ▪ Queue összeállítása (aosc_scheduler) ▪ Alter futtatása (aosc_osc_ww)

Jelenlegi állapot ▪ Működik  ▪ Nem tökéletes a queue-ing (nincs súlyozás)

Have an impact! ▪ Dolgozz nálunk! ( ▪ Move Fast! ▪ Dba-ként, egy hét után a newsfeedben volt a kódom... ▪ Személyes kedvenceim: ▪ Zseniális munkatársak ▪ Nincs pozícióval kapcsolatos versengés ▪ Korlátlan mennyiségű redbull… ▪ “Tedd amihez értesz, itt van hozzá minden”

Kérdések? ▪ (UI: ingyen ajándékok itt nálam)

(c) 2009 Facebook, Inc. or its licensors. "Facebook" is a registered trademark of Facebook, Inc.. All rights reserved. 1.0