Ян. 312007
 

Снощи бях на театър. Гледах “Ножица трепач” в Театъра на българската армия.

Не съм театрален критик, няма и да се правя на такъв. Само ще споделя мнението си. Искам искрено да препоръчам постановката на всеки, който има възможност да я гледа. В началото просто се счупих от смях. Просто за няколко минути толкова зверски се смях, че от очите ми потекоха сълзи, които обляха цялото ми лице. Култови лафове!

После нещата бяха по-спокойни, но пак веселки. И добре че се успокои топката – цялата постановка е 3 часа. Просто нямаше да издържа толкова!

Заредих смешните си батерии за седмици напред…

Евала и на актьорите. Просто с поведение, нотки в гласа, с реакция те съсипват от веселба. Играят много добре. А и в постановката има страшно много игра с публиката – публиката си е направо участник. Дори и сценарист.

С една дума – препоръчвам. Яко!

 Posted by at 11:13
Ян. 302007
 

Тези дни са препълнени с емоции.

Веселбата за рождения ми ден се получи много добре. На отиване беше страшна мъгла, по пътя карах едва-едва, но пристигнехме навреме за да можем да затоплим. Средното време между запалването на джамала и затоплянето до доволно ниво се оказа около 4 часа (това без да е под нулата).

Вечерта всички бяха супер весели и се получи както съм си мечтал. Всичко. За това искам да благодаря на всичките толкова много другарчета, които дойдоха и стана весело.

А на сутринта… беше още по-веселко 🙂

 Posted by at 15:40
Ян. 252007
 

Най-после успях да се сетя да си взема GPS-а на работа, за да го update-на. А колко updates има!!!

Първо си обнових самия WebUpdater. След това с негова помощ обнових firmware на GPS. След това GPS Tracking софтуера. Издърпах си и нови версии на MapSource и nRoute.

Мога само да аплодирам Garmin за безпроблемното обновяване. 5 ъпдейта за половин час, като 20 минути бяха за downloads. Евала!

Как става самия update на firmware на Garmin GPS? Супер елементарно! Имат си едно програмче WebUpdater. Закачаш си GPS-а към компютъра (с USB кабела, който идва със самия GPS – няма да те карат да си купуваш кабел, както обичат да правят производителите на принтери, да речем); пускаш WebUpdater и натискаш 2 пъти Next. От там нататък програмчето се грижи да намери подходящия firmware за твоето устройство; да го изтегли от сайта на Garmin; екрана на GPS светва в бяло и има един надпис LOADING. В това време се затрива стария firmware и се слага новия. Толкова. Чиста работа.

А какво става, ако спре тока по време на ъпдейта? Не съм опитвал… но до колкото знам, няма страшно. Самия Loader е в ROM, така че няма как да се загуби – просто се пуска update отново. Но не искам да опитвам 😉

С две думи: много съм доволен от софтуера на Garmin. И от хардуера, де

 Posted by at 11:03
Ян. 232007
 

За първи път съм притеснен от факта, че не успаявам да поканя всичките си най-близки другарчета на рожданния си ден. Просто няма толкова място. Нямам такъв терен. Имам място за 10-12 човека. С малко мъка ще се съберем 14. Но това не са всички.

Как се получи така? Преди 8 години, когато за първи път бяхме на това място за рожденният ми ден, бяхме точно трима.

3

А сега… Не че се оплаквам. Не ме разбирайте погрешно. Напротив, щастлив съм, че имам толкова много другарчета. И толкова много хора ще се вдигнат от майната си и ще дойдат до Милевци само заради мен. Толкова много хубави, „качествени“ хора.

Само ми е малко тъпо, че не мога да поканя всички. Някой ще останат непочерпени.

Това са превратностите на живота. Трябва да се разширява терена. Напролет започвам 😉

 Posted by at 17:54
Ян. 222007
 

Основното действие, което се случва в една БД, дори и при OLTP системи, е извличането на данни. Четенето е десетки пъти по-често от промяната.

И така, какво става при извличане на данни от БД?

Инициатор на четенето е процеса (thread, под Windows), който пуска заявката. Четенето се извършва от същият този процес.

Първото нещо е да се провери дали този блок е кеширан в паметта. Така би се избегнало „скъпото“ и бавно четене от дисковата подсистема. Обикновено в една добре оразмерена система над 80-90% от четенията се задоволяват от кеша.

Но за целта не е добре да се прочита цялата памет за всяко едно блокче. Когато процеса определи адреса (DBA, Database Block Address) на блока, който трябва да се прочете, този процес се хешира през специална хеш функция, която връща адрес на набор от блокове (bucket), намиращи се в свързан списък в паметта (cache buffer chain). Процеса изчита този списък за да извлече желаният блок. За да се изчете този списък се изисква неговият latch в share mode, но това си е тама на друга лекция

Ако търсеният блок бъде намерен в този списък, при прочитането му се увеличава неговия touch count индикатор (не винаги). Увеличаването на този touch count не е защитено от latch, т.е. може да се “загубят” някои повишения, но това не е голям проблем (не си заслужава да се прави latch специално за това). Touch count показателя се използва за да се поддържат в паметта най-използваните блокове. Поддържането на този индикатор също е тема за друга лекция.

Ако не бъде намерен блокът се задейства друг механизъм:
– взема се свободен LRU буфер чрез LRU latch (ако няма – следва чакане)
– този LRU буфер се закача към намереният cache buffer chain
– блока се извлича от диска в буфера и буфера става I/O буфер. В този момент всякак друга сесия, която иска да го прочете, трябва да се изчака (busy buffer wait)
Ако няма място (достигнато е максималното количество заета памет за кеш), се „изхвърлят“ по-малко използвани блокове, за да се направи място за новите. Тук трябва да се отбележи, че за да бъде изхвърлен един блок от кеша, той не трябва да бъде “dirty”, т.е. ако е променян, трябва промените да са записани на диска. Това се прави от фоновия процес DBWR. Докато се случи това изчистване на буфери, потребителската сесия чака.

В края на тази фаза блока със сигурност е в паметта и е идентифициран.

В този момент се проверява SCN номера в хедъра на блока. SCN е съкращение от system commit number или system change number. В началото на изпълнението на каквато и да е заявка се запомня SCN, при който започва тя. Ако SCN на прочетения блок е по-нов, това означава, че блока е бил променен от друг потребител след като е започнало изпълнението на заявката (но преди да бъде прочетен). В такъв случай се взима адреса на транзакцията, променила блока (той се намира в ITL секцията в хедъра на блока), намира се нейният undo сегмент и от него се извлича т.нар. before image на блока – състоянието му от преди да го промени. Отново се проверява SCN на реконструираният блок. Ако пак е по-нов от SCN на заявката, се нямира още по-стара версия и т.н., докато не се намери блока във вида, в който е бил в началото на изпълнението на заявката. Ако няма повече дани в undo/rollback сегмента, а блока не е възстановен до желният SCN, се получава печално известната грешка ORA-1555 Snapsjot too old
По този начин всяка заявка получава данните във вид, консистентен към началото на изпълнението си, като това се получава без никакви заключвания за четене.
Ето един пример от документацията на Oracle Database:
***
Заявката започва да се изпълнява. Запомян се текущият SCN (в случая, 10023). Блоковете се четат в реда, в който са необходими за заявката. Ако някой блок е по-нов от SCN 10023, възстановява се неговото състояние от undo/rollback сегментите.

 Posted by at 9:37
Ян. 222007
 

При създаване на database приложения може да се подходи по 2 начина към БД:

– подхода на черната кутия: Разработчиците приемат БД за една черна кутия с изключително прости правила: JABORAC. Подават си заявки и получават резултат. Този подходи има редица недостатъци, които могат да се обобщят като 1) изключително нерационално използване на ресурсите, което се отразява негативно върху производителността на полученото приложение; 2) неизползване на пълния потенциал на БД, което води до намалена функционалност или увеличено време за разработка

– database-wise подход: Разработчиците се запознават с БД на едно задоволително ниво. Основен недостатък на този подход е, че трябва някой да запознае разработчиците с БД 😉

По тази причина аз се опитах да повдигна малко булото на черната кутия пред очите на нашите девелъпъри на срещата в петък.
Yavor's lecture
Говорих за четенето на данни, оптимизатора на заявките, execution plans, consistent reads, etc. Останах приятно изненадан от отзвука – по-силен от предварителните ми очаквания. Сега се надявам евентуално понякога да се замислят.

А на следващата среща на софтуерната къща може би ще има поговоря за транзакции и заключвания. Да поддържам интригата 🙂

 Posted by at 9:31
Ян. 182007
 

Напоследък из нета се търкалят доста коментари относно кампанията „да запазим българската култура“ – „пиратството ограбва“. И на мен ми е странно как пиратите могат да оберат скулптор, но няма да повтарям написаното в други блогове.

Също така ми е странно как могат да оберат и актьор. Най-близкото до пиратстване нa театрална постановка е… какво? Да я снимаш и да я разпространяваш? Ха! Глупости.

Не съм забелязал толкова да е закъсала българската култура. Вчера ходих да си купя билети за „Ножица трепач“ в Театъра на българската армия. Постановката е след 2 седмици. Единствените билети, които бяха останали непродадени бяха в ъгъла на 5 ред от балкона (по 12 лева) и на абсолютно-съвсем-най-последния ред на балкона (по 10 лв). За представлението тази събота, естествено, нямаше места. А за другия месец – няма още програма.

Е как е закъсала българската култура, след като салоните са пълни поне 2 седмици предварително, въпреки, че цената на билетите е поне 2 пъти по-висока от билет за кино?

Следващият човек, който се опита да ме убеди, че няма пари за култура в България, да се готви за спор!

Всъщност може би малко ме е яд че не можах да се уредя с по-хубави места и се заяждам. Но фактите са си факти

 Posted by at 15:01

Работен уикенд

 Общи  Коментарите са изключени за Работен уикенд
Ян. 132007
 

Има нещо странно в „уикенд-ните смени”.

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

Странното е магията на… хммм… тийм билдинга.

Ето, събрали сме се тук аз, нашият сисадмин, сисадмина на фирмата, в която сме и един магьосник от сервиза. И правим нещо. Бачкаме в извънработно време.

И ни е кеф.

А защо сме тук, всъщност?

Аз съм тук, защото страшно ме сърбят ръцете да се занимая с някакво истинско предизвикателство. Е, или поне някакво. Не ми е работа да съм тук. Нито пък някой ще ми плати, или ще ми каже „браво”.

Местният сисадмин – е, то си му е работа.

Нашия сисадмин – спорно е. От една страна – помага. Но имам чувството, че и той е тук по причина, аналогична на моята.

А пича от сервиза… ми звъннахме му и той подскочи от кеф. И дойде.

Всички тук се радваме на магията. „Да си начешем крастата”.

Може би трябва да кажа какъв е плана. Идеята е от един сървър с 2 диска в mirror да направим нешо доста по-добро с 4 диска в RAID 1+0 и един пети диск, на който да се пишат backps/archivelogs. Това, естествено, ще наложи пълна преинсталция на ОС и Oracle – старите дискове стават част от новия масив. Ще използваме случая и за миграция от 9.2 на 10.2, с всички произтичащи от това забавления.

По план започнахме вчера. Само с един час закъснение, да приключат работа. Спрях достъпа на потребителите до Oracle, засилих всички транзакции към master site и спрях БД. Копирахме базата на друга машина, и, за по-сигурно, и на един USB диск. Извадихме един от настоящите огледални дискове и го скрихме за застраховка – масива 1+0 ще го правим с другия и трите нови.

Голямото закучване запончна днес. Сървъра просто отказва да поеме повече от 2 диска. Загубихме над 5 часа с това. Накрая дойде магьосника от сервиза оправи нещата за 5 минути. Сега, в 16 часа започваме инсталация на ОС. По план аз трябваше да започна с моята работа в 12 🙂

Не се съмнявам, че ще се справим. Ако няма повече проблеми – до 3 часа ще сме готови. Хаха.

Не се съмнявам, че никой няма да разбере за борбата.

Не сме тук за лаври.

Аз поне.

Аз съм тук да си начеша крастата. И се получава.

А с колегите, след всеки такъв случай, ставаме все по-… Хм. Абе нещо като «бойни другари». Чувството е прекрасно. Който знае, ще ме разбере 🙂

Допълнение:
20:00 Най-после имаме напълно работеща и ъпдейтната ОС. Започва моята част.
После върви разправяй, че нищо не значело това, че е 13-ти 😉

 Posted by at 16:58
Ян. 092007
 

Много важно за един Oracle експерт (както и за всички IT, а и всякакви други експерти и консултанти) е да поддържа острието на знанията си. Нещо средно между cutting-edge – да си запознат с новите технологии; и sharp blade – да поддържаш форма.

Има дни (уви, и седмици), в които не ми попадат реални проблеми за решаване. Ето сега, след празниците, почти никой не се обажда. Никъде не се случват драми, никой не иска консултации и т.н.

За такива моменти страшно помага Oracle-L. Това е най-популярния mail list с Oracle (предимно Oracle Database) насоченост. Основан в началото на 1998 от Jared Still, това е нескончаем ресурс от проблемчета и решения.

От една страна винаги можеш да си намериш там драма, с която да се бориш. Просто хора от цял сват пишат проблемите си.

От друга страна там доста често се заформят интересни дискусии относно Oracle или близко до Oracle теми. Просто това е едно място, на което съвсем открито контактуват Oracle експерти от цял свят.

При това доста често се включват хора като Jonathan Lewis, Steve Adams, Tim Gorman, Mogens Nørrgaard, Ric Van Dyke, Jared Still, Robert Freeman…

Даа… Цяло щастие е, че съществува това средище на Oracle експерти. Наистина, четейки пощата от там имам чувство, че съм на един голям нескончаем публичен семинар с всеобщо участие.

Интересното е, че там няма много RTFM въпроси. Няма и спам. За това, до някъде, помага това, че за да постнеш съобщение, трябва да си одобрен от модератора (самият Steve Adams). Одобрението изисква просто един мейл, но си е нещо. Да не забравяме и Mladen Gogala, винаги готов да сиктирдоса някой, който се изказва неподготвен. Като резултат на ден се получават 40-70 мейла, съвсем поносимо количество, с изключително голям процент на полезност. И почти всяка седмица се заформя интересен дебат.

Да не забравяме и основната цела на включването към този mail list: възможност да се потърси помощ от хиляди хора, настъпвали какви ли не мотики. Изключително бързо се намират решения на проблеми както с Oracle Database, така и свързани Unix въпроси, SQL, PL/SQL, Java, Installation issues, покупка на компютърна литература, TOAD, RAC и какво ли още не.

И всичко това е абсолютно безплатно (за разлика от oracle@lazydba, примерно)

🙂

 Posted by at 12:14

Гуми

 Общи  Коментарите са изключени за Гуми
Ян. 082007
 

Благодаря на слънцето, че изгони снега докато се наканя да обуя някакви зимни гуми. Доста търпеливо зимата ме изчака до януари 🙂
Сега си взех Snowprox S941 и нямам търпение да завали да ги проверя.
Snowprox S941
Като цяло смятам, че това е разумния компромис между истински снежните копачки (примерно Gislaved Nord Frost 3, препоръчвани във много форуми) и реалната употреба на де факто сухи или мокри настилки през 99% от времето (където се иска стабилност, устойчивост при скорости и т.н.). Конкретно Snowprox S941 са истински зимни гуми, със скоростен показател до 190 КМ/ч и висока устойчивост на мокра настилка.
Освен това нкой не е казал лоша дума за TOYO.
Ще видим дали сметките ми ще изязва верни 🙂

 Posted by at 13:43