|History of jDUL/DUDE
It must have been 1999. I was introduced by my boss Michel Balliere at a large company in Johannesburg, South Africa.
The only thing I knew from the site was that they used Oracle 8.0.4 OPS on IBM SP2 for their data warehouse. And that they had problems – serious problems.
I was brought in because … well … because I happened to know a thing or two about parallel server internals and as always, people were hoping for some quick fixes. In the end, I stayed for 2 years on and off in SA.
It was then and there that I met Kugendran Naidoo. He was the DBA in charge of the warehouse. He kind of reminded me of Mohammed Ali – confident, strong and cocky – not afraid to juggle with 60000 raw devices night after night. He was the typical DBA – lack of dress code, packs of cigarettes everywhere, linux guru and long days at work. I knew immediately this was going to be fun !
We worked primarily at nights and weekends, redoing the warehouse. At the time we were both heavy smokers – sometimes 3 packs a night, and desperately running through all desks looking for a 4th pack in the morning – and I now know for sure : the best ideas come at night, while admiring the exhaled cigarette smoke combined with a sweet sting of caffeine, talking crap while waiting for db jobs to finish. It was a great synergy – me and Kugen.
Two ideas we developed into open source projects :
- Pretoria : http://pretoria.sourceforge.net & http://sourceforge.net/projects/pretoria - which was a manipulation tool for Oracle indexfiles. Kugendran wrote it first in Korn but he was not happy with performance. As it happened, I had about the same idea about writing a tool like that. After I saw Mr K’s tool, I immediately wrote my own – Pretoria. It was only later that I placed it in public domain. I still find it quite handy when migrating large amounts of segments.
- Ora*Pepi : this was originally a collection of Korn scripts I wrote, to speed up export and import of large amounts of data. It was basically what datapump does in 10g – but back in the 8.0 era. It was entirely run from a scheduler (so you could log off) , you could adjust parallel degree on the fly and you could even suspend and resume export/import jobs. Kugendran, as a Korn wizard, rewrote the whole thing with extra bells and whistles and this became Ora*Pepi – open sourced at http://pepi.sourceforge.net & http://sourceforge.net/projects/pepi
It was during one of our long working weekends in 2000, when we were coming up with idea’s about the fastest way to extract data from a database. We both agreed it had to be data extraction, directly from Oracle blocks, bypassing the Oracle engine completely. We started discussing on how to write the coolest algorithms, block internals and so on, but in the in the end it was just a joke, a thing to pass time during the night.
Nevertheless, the idea kept spinning in my mind and by the end of 2000 I had written a basic block parser. I named it jDUL. In my search for papers on block internals I had read about DUL. And it basically did what I wanted to do.
Whenever I got bored, I continued working on jDUL. Step by step – sometimes coding through the night – sometimes only 2 lines of code in half a year. By the end of 2001, I had written a bootstrap routine to extract the Oracle data dictionary and I had a basic command line interpreter. From then on I wanted to open source jDUL. But it was not really appreciated by the Oracle community. A tool that bypasses the Oracle engine and thus, Oracle security must be a dangerous tool. For me it was just a means to pass time and to learn more about the Oracle internals. I tried to keep the Sourceforge page up-to-date, but I knew very early on I would never release the code.
From then on I’ve implemented almost every aspect of block internals into jDUL. I renamed jDUL to DUDE, because people were confusing it with Oracle’s DUL. DUDE stands for Database Unloading by Data Extracting. What’s in a name… During DUDE’s 9 year existence it has been used on 150 or so database recoveries (over 14Tb!), on various platforms and versions, making it better and better. In 2005, I’ve met Mogens Norgaards from Miracle AS in Denmark. He convinced me to make DUDE available to the community. If it wasn't for him - I would never have released DUDE for others to use. I did however remember all feedback from the early days – so I made sure DUDE is *secure*. There’s no way it can be abused. (see DUDE PROBE)
The original data warehouse team during a nightly service marathon - from left to right - Kurt Van Meerbeeck (DBA and yours truly), Luc 'Loek' Vlaeminckx (Team Leader), Kugendran 'MrK' Naidoo (DBA), Randell McBride (Unix Admin), Michel 'Mickey' Balliere (ICT Project Manager)
Kurt Van Meerbeeck
Cell : +32 495 580714
Henrik Bjerknæs Rasmussen
Service & Support Manager
Cell: +45 53 747 110
Cell : +1 303 885 4526
South Africa :
Cell : +27 82 7799275
East Asia Pacific
Cell : +61 2 9191 7427 ext. 1270