OOW 2014: Сряда

 Общи  Коментарите са изключени за OOW 2014: Сряда
фев. 262015

Събудих се около шест сутринта. Тази нощ поспах добре, но се чувствам все по-болен. Гърло, хрема, отпадналост…
За щастие днес има прекрасно, слънчево време. За нещастие първите ми няколко лекции са в най-студените стаи – 102 и 103 в Moscone South
Сутрешната процедура е еднаква всеки ден. В епъл шопа пак няма телефони, а опашката отпред е относително малка. Служителя, който питах, ми каза „Не знам тия хора за какво чакат, не се знае кога ще получим доставката„. Тия епъл са бахти наглите, нарочно провокират безкраен съспенс. Толкова ли е сложно да се направи система за предвидими доставки? Или, още по-добре – поръчка онлайн и край на всички опашки.

Започваме деня с Resource manager best practice на Sue-Kyoung Lee, Akshay Shah
Една интересна забележка за multitenant (ако някой го ползва изобщо) – every PDB has 1 share and maximum 75% CPU utilization by default
Малко записки:

Resource management is like having a budget – the simpler it is, the higher chance to be followed.

Even if you overubscribe with instance caging, it’s still much better than no resource manager.

On Linux and Solaris, 12c allows you to bind some databases to specific CPU cores or sockets, if you are so hard-core and you have super-super critical DBs (or NUMA)

With mixed workload, OLTP may get some really slow IOs when DWH kicks in (even up to a second per IO). That’s why IORM protects the latency of OLTP by putting OLTP io requests in front of the queue (otherwise we have FIFO)
To make this, the DB tags every io request with various info. E.g. OLTP is put in prioritized queue, LGWR is out even higher – at the very top, large DWH reads are put with lower priority

Standby DBs
Best practice – use the same resource plan as on primary (CPU and IO)

След това отидох на продължението на една от миналодневните (има ли такава дума? щом има миналогодишни, трябва да има и миналодневни) сесии: Real-world performance of star and snowflake schemes part 2: the reality – Andrew Holdsworth, Mike Hallas, John Clarke
Обясниха, в общи линии, че трябва винаги да се мъчим да докараме execution plan-а до star transformation

This is counterintuitive – you know the output an try to create the input to produce it

С други думи, знаеш как изглежда execution plan-а, и трябва да намериш query-то, което ще ти го докара.

Ето малко записки

There are no predicates on fact table. All filters are on dimensions
Always put Not null constraints on join keys – helps optimizer
Put PK and FK constraints. If you do th constraints in RELY mode, remember to enable query_transformation in RELY mode
Data types
Make sure data types between parent and child match (incl. precision)
Do not rely on dynamic sampling
Think about correlation
Enable column usage tracking. Gather stats after data load, and again after some real usage, to get extended stats
Partition fact table on time dimension

Star transformation with bitmap indexes is great for extracting relatively low number of rows from fact table
Exadata smart scans and bloom filters are much better for retrieving big amount of data from fact table
In-memory with vector joins is good for big volumes. Actually vector joins are available even for non-inmemory at

Snowflake is much slower than star
Cardinality estimations is much less accurate, much more unneeded data is moved during joins, etc.
Try hard to go to star, e.g. with mviews

Links between dimensions are also bad. Never join dimensions. Note: DWH is not intended to enforce business rules!

Never use same dimension key to join to more than one dimension. Each dim should have its own dk

Това за enforce-ването на business rules е много важна забележка, за която не съм се сетил преди. Наличието на constraints в DWH може да бъде обусловено и е полезно само за разкриване на повече информация/възможности на optimizer-a.

Доволно, вкусно, бързо. То нямаше и много време, само половин час между лекциите. Но хапнахме добре. Само дето някакви бездарници грачеха – The Afrikanas. Не знам защо, тази година организаторите са решили, че всеки обяд трябва да е съпроводен с музика на живо – при предишните ми посещения нямаше такива неща. Но изглежда бюджета за тази музка е силно ограничен и стига само за някакви квартални банди със собствен транспорт(примерно). Как да е, не ми пречат чак толкова.

Следобеда започнах с If you think partitioning is only for performance, think again – Hermann Baer, Matthias Fuchs

Data management
– fast population of data – prepare aside and exchange partition
– fast removal of data – truncate/drop partition
– fast reorganization of data (compression, movement, etc)

12c new features
– merge more than two partition
– split to more than two partitions
– move partition fully online – allows all concurrent DML, takes care of global and local indexes
– async global index maintenance during DROP and TRUNCATE partition. Partition maintenance is metadata-only operation. Data stays in index, index stays valid, no wrong results, etc. Data can be cleaned later by ALTER INDEX REBUILD/COALESCE
– partial local and global indexes

Tips and tricks for 12c
– gather stats on to-be-exchanged table, do the exchange, global partitioned table stats are automagically updated
– do online move during low-load time. During the move, a journal of changes is kept. The smaller the journal, the faster move completion. Note: first part of move is direct-path, so can compress, but journal apply is row-by-rows

General tip
– try to combine multiple partition maintenance operations into one
– use partition extended bulk load syntax – puts X-lock only on intended partition, not whole table. Careful with data cleanness

Следваща сесия: Trouble free upgrade to Oracle 12c with Oracle Real Application Testing – Kurt Engeleitner (на кого ли не му предстои този ъпгрейд…)

RAT = response time testing + load testing
SQL performance analyze (sqlpa) allows automatically to create tunning task for statements with degraded performance, or to create baselines for them

– Always use sqlpa first, to fix individual queries, before running real load test (database replay)
– capture and replay manageable amount if time – 1-2 hours
– key metric of database replay is DB time, not elapsed time
– capture SQL tunning sets during capture and replay for additional validation
– use OEMCC with the very latest database plugin – implements best practices for RAT, new wizards, etc.

След това прескочих до хотел Интерконтинентал да изслушам Been there, done that: real stories of engineered systems pioneers – Amod Khale (America Airlines), Eyad Al-Sahli (AMMROC), Richard Ewald (Sprint), Ron Pollard („Specialized“ bicycle components), Greg Crider (Oracle)
Като цяло тази лекция се водеше като полу-дискусия между IT мениджъри, които са направили смелата стъпка към Oracle engieered systems и споделят опита си от меиджърско ниво.

– Implementation is teamwork – DBAs, Sysadmins, net admins, etc.
– AAMROK is taking care of hi tech weapons of Abu Dabi – Jet fighters for example. You cannot take care of F16 using SQL Server, righ?
– Sprint have had the biggest single-node oracle database – 1.5 petabytes. Keeps 2 years or CDR data.
– AmericanAirlines made PoC on SuperCluster provided by oracle. Worked great, and they purchased it and went live

Engineered systems are organizational challenge. Who owns the box – storage admins, sys admins, net admins, DBAs? Usually DBA volunteer
Engineered systems have great supportability. No finger pointing, everything is clear. Ease of deployment and configuration. You can focus on business

Последната лекция за деня:

The best new Oracle Database 12c features – Rich Niemiec
Този път му се получаваше по-добре. Успя да представи точно 237 слайда. Плюс тоновете бъзици и съвети

Oracle will spend $5B on R&D this year – leverage it!

Can you imagine the size of this company? For OOW, they are carpeting the street! Can you imagine this – somebody calls to the carpet factory and says
– OK, I want red carpet on Howard street
– No problem, sir. On which number?
– Oh, doesn’t matter. Just put it on the whole street from 3rd to 4th!

Хауърд е една от централните улици в Сан Франциско, две-три ленти в едната посока, и e затворена заради конференцията между четвърта и трета улица. Все едно някой да затвори бул. Васил Левски от паметника Левски до университета и да сложи червен килим.

Е, това е вечерта на големия концерт на Treasure Island – свирят Aerosmith и разни други. Ядене, пиене, лунапарк и т.н. Билетите са ограничени, само за full conference attendees. За всички други – билети се продават на черно.
Аз моя билет го подарих. Защото точно тази вечер, или 5:00 сутринта софийско време, имаме планиран switchover test към новия data center. Така че докато другите купонясват, аз ще работя. Това е съдбата на админа…

 Posted by at 10:21

OOW 2014: Вторник

 Общи  Коментарите са изключени за OOW 2014: Вторник
фев. 262015

Тази нощ будувах от 3 до 5. Въпреки това се чувствам по-добре от вчера. Направих си сутрешната гимнастика и отпрашихме.
Първо минахме през Епъл стора – само от далече, де. Имаше огромна опашка. Не ми се губят два часа за някакъв си айФон, особено при никаквата гаранция че ще стигнат до мен. Завихме у лево и се забихме в любимия Тад за закуска.
Палачинките, оказва се, са пристрастяващи. А и започвам да задобрявам с оливането им с кленов сироп. След обилното похапване се засилихме към OrakTable world (OTW)

Днеят ни започва със Hacking oracle 12c на Tannel Poder. Тоя човек е Змей. Разхожда се из SGA и x$ с лекота.
Показва как се използват някои негови скриптове – snapper, ashtop и други

След това излгедах Successful oracle exadata implementation: a real-life example представено от Heli Helskyaho, Elise Valin-Raki, Tuomas Pystynen. Нали и на нас ни се случва една такава консолидация, искам да нагледам как го правят по света.
Оказа се, че техния проект е дори още по-предизвикателен – подкарали са почти 100 бази на X3-2 1/8 rack. От друга страна самата процедура по миграцията е била лесна – един уикенд downtime за production базите и един месец (месец!) за дев/тест! Ние имаме 5 минути downtime на база… Знаете ли как се копират терабайтови бази от Лондон до Виена за 5 минути? 🙂

След това с удоволствие изгледах Real-world performance of star and snowflake schemes part 1: the theory представено от Andrew Holdsworth, Mike Hallas, John Clarke

Real world problems – most often root causes
– database is not being used as it designed to be used
– the application code/architecture design is sub-optimal
– there is sub-optimal algorithm in oracle code

Представиха четири варианта за достъп до star schema
– b-tree index
– bitmap index
– exadata
– in-memory

Много тестове, някои обяснения.

* * *

Днес обяда е много по-добре организиран. Явно кетъринг фирмата си е взела поука от вчерашното фиаско – или са им набили обръчите да се стегнат. Този път имаше достатъчно сандвичи, и времето, прекарано на опашката, беше наистина кратко. Сандвича беше вкусен, салатката с кускус, стафиди и магданоз бива, а брауни-то допълни добре композицията. Междувременно и времето се оправи – слънчево, топло, чак търсихме сянка.



Следобеда започна с поредния Keynote, т.е. свободно време за нас. Прескочих до епъл стора, нямаше наличност. Минете по-късно. Кога – никой не знае.

Следобедните сесии започнах с хардлайнера Том Кайт: Five more things about SQL and PL/SQL
Залата беше доволно претъпкана. Том е звезда. Говори за относително скучни неща. Но и той е човек, не може винаги да измисля интересни презентации

След това имах късмета да попадна на нещо много полезно в нашата ситуация: Best practices: consolidate with oracle exadata and manage resources – Rene Kundersma and Sue-Kyoung Lee
Хората много добре си знаеха темата, от релния живот. Започнаха с обяснение на стандартните предизвикателста при проект за консолидация и после минаха към решенията, предлагани от Ексадата. Например IORM – това красиво нещо, което може да си позволи само фирма, която си произвежда пълния стек – от БД, през ОС, до сториджа. (При нас IORM работи много добре, след първоначалното разчистване на мотики).
Друго, по-стандартно нещо, за които става дума, включваха instance caging. Никога не трябва да се задава CPU_COUNT=1
Паметта е друг конфликтен ресурс. Примерно нашите ексадати ги поръчахме с memory expansion – т.е. половин терабайт RAM на сървър – и пак зор събираме всичко. А за разлика от процесорите, където може да се послъгва (obersubscription), с паметта не може да шикалкавиш.
(ако имаш пет бази, и всяка се нуждае от 10 процесора, можеш спокойно да минеш с 40 процесора – няма как всичките да са активно на макс по едно и също време
обаче ако всичките искат по 150 GB SGA, нам начин това да влезе в 512 GB общо). Друг споделен ресурс – флаш. Според техните наблюдения, когато флаша е претоварен то заявки, времето за отговор може да скочи до 3 ms (от нормалнните около 0.5). Пак е по-добре от дисковете, де – нашите сме ги виждали да скачат до абсурдните 100 ms.
Подсказаха, че съвсем скоро ще има доста гъвкавост относно настройките (приоритети на базите, min/max falsh storage per database) за флаша на Exadata

* * *
Вечерта бяхме поканени на сбирка на Oracle ECEMEA (East and Central Europe, Middel East, Afrika). Сбирката беше в едно интересно хале на около три километра от конферентните сгради. Двамата с колегата единодушно решихме да стигнем пеша, което не беше зле. Съвсем малко по-западнал, по-индустриален квартал, но беше добра разходка. Минахме покрай две сгради на Adobe. Преди двайсет години, когато ползвах PageMaker за предпечат на училищния вестник, или Photoshop за работата с картинки, въобще не съм могъл дори и да си помисля, че ще видя къде се създават тези продукти.


Иначе самата сбирка беше умерено интересна, леееко по-формална от моя вкус. Бяхме може би малко над стотина човека и имахме удоволствието да бъдем лично поздравени от Safra Catz, един от настоящите CEO на Oracle след оттеглянето на Лари Елисън. Т.е. половин Лари.


Имаше разни манджи от различните региони на ECMEA. Аз пробвах африканското – оказа се не лоша, но обикновена пилешка яхния. Имаше и нещо като питка-палачинка, с интересна консистенция на гъба. Към 21:30 подкарах колегата да се прибираме – отчасти защото не ми се разхожда сред тъмни улички посред нощ, отчасти заради костюмарската обстановка, но най-вече защото настинката ми взе да става съвсем гадна. Не знам дали съм вдигнал температура, но се чувствах като парцал.

 Posted by at 10:12
фев. 262015

Обичам да пътувам с влак (да, и с БДЖ!). Пътуването с влак е някак безгрижно. Можеш да се разходиш, можеш да си четеш, да се протегнеш… Но много рядко имам този шанс. Всъщност миналата година имам 38 полета със самолет и точно нула пътувания с влак. Така де, влака е ОК за пътуване сам или с другарче, но с жена и три деца не е най-удобния вариант.

Но в момента се движа с 228 км/ч с RailJet по австрийските железни пътища. Точната скорост я знам от екрана, който дава всякаква полезна информация – коя е следващата спирка, в колко часа, какви връзки има на съответната гара, какво има след това…

В началото беше малко объркващо – да намеря точния влак на Wien Wesbahnhoff. Аз пътувам за Sallfelden през Salzburg. Влака ми потегля в 6:30. На гарата имаше влак за Salzburg потеглящ в 6:38. Имаше и влак за Insbruck в 6:30. Срамота, но и информационното гише не работи в шест сутринта. Все пак намерих кого да питам и се качих на втория.

Влакът потегли точно навреме. То и БДЖ потегля навреме от началната гара (обикновено). Веднага мина една какичка да почерпи с вафлички, а след нея – кондуктура

(Тук е момента да спомена, че си купих билета онлайн, с кредитна карта, и си го разпечатах на принтера)

Още едно предимство, което едва ли би струвало безумни много на БДЖ за да имплементират, е свободния wifi. 

Няма смисъл да обяснявам колко чисти са вагоните – българските вагони ние сами си ги осираме. Креслата са удобни, има и dedicated място за багаж. Стюардесата минава редовно и предлага (платени) сандвичи и безалкохолни. Нещо като количките на РСВ едно време, но с руса коса и червена поличка 🙂

Само едно нещо липсва до сега – гледката. Почти навсякъде има обезшумяващи стени около нас, което отнема част от удоволствието. Но пък не ми пречи да си чета книжка, или да блогвам, слушайки български радиа през безплатния нет.


p.s. Преди всяка гара обявяват по уредбата къде пристигаме и кои връзки на кой коловоз са. На немски И АНГЛИЙСКИ. още една много приятна изненада.

 Posted by at 9:17

Добър сървър, верен другар

 Общи  Коментарите са изключени за Добър сървър, верен другар
фев. 112015

Доставен, инсталиран, go to production… и бачка яко без да спира, докато не му изтече гаранцията:

$ uptime
14:09:49 up 1149 days, 21:10, 4 users, load average: 1.20, 1.25, 1.21

Това са 3 години, 1 месец, 3 седмици и 2 дни без рестарт.

Сега излезе в пенсия, т.е. ще се използва за DEV среди

 Posted by at 16:19