text:
Skip Unused Pages with MySQL Enterprise Backup 3.9.0
By Ingo Strüwing on Sep 18, 2013
DisclaimerThe views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
IntroductionThere are database usage patterns, where tables grow big at times and many rows are deleted from them later. InnoDB does never shrink a table space. In these cases we can end up with big data files, which contain a lot of unused pages. It is a waste of disk- and I/O- resources to back them up.
Users have manifold requested that MySQL Enterprise Backup does not back up unused InnoDB data pages. Some want smaller backups, some want less I/O, some want shrinked table spaces.
MySQL Enterprise Backup 3.9.0 can help with smaller backups. The effect on I/O is not that remarkable. InnoDB data files must be expanded to their original size when they are restored. Backup cannot accomplish a shrinkage of InnoDB table spaces.
In the following I will try to explain, how things work, and why not all wishes can be satisfied. I will also try to show the complexity of the feature. This should clarify, why it comes so late. Because my explanations might be a bit technical, I'll try to summarize important facts in advance.
Administrative SummaryYou can use the command line option --skip-unused-pages with any backup operation, but it will be ignored and give a warning for the following cases:
- backup-and-apply-log. The skipped pages must be re-inserted at the beginning of the apply-log operation. So it would be a waste of resources to do this when backup and apply-log are combined in one operation.
- incremental-with-redo-log-only. This operation copies log pages only. No data pages are copied. So there is no data page to be skipped.
- incremental backup: This is simply not implemented in MEB 3.9.0.
At the beginning of the apply-log operation, the skipped pages must be re-inserted. This means that every backed-up InnoDB data file must be copied over with the skipped pages stuffed in. This means that the total apply-log operation will take at least as long as the backup operation took.
Be prepared that the backup directory grows up to the original database size. At the end of each file, the backup file will be removed, but right before that point, the file exists in the compact and expanded form. You need to have the space for one extra copy of your biggest table.
You can combine --compress and --skip-unused pages. However, in MEB 3.9.0, the uncompression and expansion operations are executed in separate steps. Since both operations copy over all data files, it will take about twice the time as the backup operation took.
In MEB 3.9.0, the single-step restore operation copy-back-and-apply-log cannot be used on backups that have been taken with --skip-unused-pages.
Technical details
PrerequisiteThe InnoDB table spaces contain bitmap pages, which indicates pages as free or not free (in-use, that is). The bitmap pages occur every page_size pages in the tablespace. For uncompressed tablespaces, that would be on pages 0, 16384, 32768, 49152, 65536, and so on. For a compressed tablespace with a 2K page size, the bitmap would be on pages 0, 2048, 4096, and so on. The bitmap page always covers the following page_size pages.
NomenclatureIn the following, the set of pages, which are covered by a bitmap page, is called a "map-set".
In the following, the terms "free page" and "unused page" are used interchangeably.
In the following, the term "zero page" means an InnoDB page, which has all its bytes set to zero.
The "free limit" is an InnoDB internal term. It is a page number. It is less or equal to the table space size in pages. If the free limit is less than the table space size in pages, itself and all pages above it are free.
A LSN is a Log Sequence Number. It is the offset in bytes from the logical start of the redo log. The LSN marks the start of a log entry.
The general problemThe task sounds simple. Read the bitmaps. Identify unused pages. Omit them from backup. Replace them with empty pages on restore. All over.
It would be almost as easy as this if we would take backups from cleanly shut down databases. That is, if all data files would be in a consistent state and not be modified during the backup operation.
But if a backup is taken from a hot database, the data files are modified while the backup operation is reading them. Since we cannot read all pages at once, we likely read pages that are modified at different times. When we read a bitmap page and later the pages, which are covered by this bitmap, then they may not be consistent. The bitmap could declare some page as free, but while we read other pages in between, the page may no longer be free when we read it. And vice versa.
Another problem is the InnoDB data cache. Pages are written from the cache to disk at different times. The main constraint is, that a page is never written before all log entries, which describe its modifications, are on disk. Another constraint is that at the time, when an InnoDB checkpoint is noted in the redo log, all page modifications up to that log entry are on disk. Since we start copying the redo log from the latest checkpoint, each page on disk can have any state between that
checkpoint and the current state.
Sure, we have the redo log. We keep copying it in parallel to the data file copy. It should be able to replay all changes that are done on the data pages during the backup operation. But the replay algorithm requires each modified page to be in a certain state. That is, it expects that there are certain data in the page. Each redo log entry describes a transformation of the page contents from one state to another. If the page doesn't have the expected contents, the algorithm fails.
This means that we need to take care, what page contents to restore for pages that were marked free when the corresponding bitmap page was copied. The following shall show, which problems needed to be resolved.
Empty pagesAbove we said that we will replace skipped unused pages by empty pages. However, the term "empty page" does not mean a zero page. This won't work because of the following reasons.
The redo algorithm is an idempotent algorithm. The idem-potency is based on the page LSN. Every change to a data page is logged in a log entry of the redo log. That log entry's LSN is written into the page. When the redo log is applied to a database or backup, a log entry is applied to a page only if the page's LSN is lower than the log entry's LSN.
The redo algorithm does not use a pure physical logging. Most log entries do not set a certain number of bytes at a certain offset in a page, but transform a page from one state to another. In other words, the algorithm relies on the correct page contents.
We copied the redo log from the latest checkpoint onward. Usually this contains log entries from before the backup start. So it could happen that there were log entries, which modified a page, before it became unused and before the backup started.
If the unused pages had been recreated as zero pages, their LSN would be zero. Every log entry's LSN is greater than zero. So every log entry for that page would be tried to apply. But the page contents is not, what the log entry expected. The redo log algorithm would fail.
If the unused pages had been recreated as zero pages, but with their LSN set to infinite, no log entry would be applied to unused pages. The apply-log algorithm would finish without errors and warnings. But if there are log entries, which re-initialize and modify the page after the backup operation read the bitmap page, they would not be applied due to the high LSN. The result would be an inconsistent table space.
The correct solution is to use empty pages with the LSN of the bitmap page, which claims it to be an unused page. We know that the page was unused at that LSN. If a page gets freed or re-used, the bitmap is changed and that makes an redo log entry for the bitmap page. The bitmap page gets that LSN. When we copy the bitmap page, we get the bitmap and the corresponding LSN into the backup. Our algorithm assures that each page is consistent in itself. So we have assured knowledge, which pages were free at that LSN. The next higher LSN that affects an unused page must consequently be a log entry, which re-initializes the page. Any log entry with an LSN lower than the bitmap LSN is irrelevant to the pages that are marked free by that bitmap.
Besides the LSN, empty pages will also have the page number, which corresponds to their location in the table space, the table space id, and the checksums set. The remaining part of empty pages are all zero bytes.
Non-free zero pagesThe page number of a zero page is zero. Usually one would expect that pages with a page number of zero have never been used and are marked free (except of the page at offset zero - the table space header). But sometimes a page like this is not marked free.
One possible situation in which a page could have a zero page number and not be marked free could occur if a page did become used for the first time short before the backup started, and was not flushed to disk until backup read the page. When the page became used, the bitmap was updated and flushed and the page was updated in memory but not flushed yet. It is possible, yes even probable, that there are redo log entries in the log file, which manipulate the page. The corresponding log entries could have LSNs below the bitmap page's LSN if later more changes were done to the bitmap page. If we would skip the page, and thus effectively declare it as free, the expansion algorithm would insert a page with the bitmap page's LSN, which could be too high.
To be safe, we include non-free zero pages in a backup. They are rare and thus don't make a big difference.
Skip unused pages when reading from the original data filesIf we use the bitmaps to avoid reading of unused pages, we turn sequential reading into random reading. Depending on the distribution of unused pages among used pages, this could even drop the read performance. Only if unused pages occur in big contiguous chunks, skipping those could give a speed increase.
Since a bitmap page occurs every page_size pages, only page_size - 1 pages can be skipped in one go at best. Hence, the optimal performance enhancement cannot be reached. All bitmap pages are used pages and must be copied to the backup, even if they mark all "their" pages as free. After all, we could detect such case only after having read the bitmap page. Anyway, it will be rare cases that multiple bitmap pages in a table space mark all their pages free. In theory this could happen in a new table space, which was created way too big for the data. But then InnoDB maintains the free limit. Bitmap pages at and above the free limit are not initialized and don't need to be backed up.
At the beginning of each map-set, only the bitmap page needs to be read. Then unused pages can be identified in contiguous chunks. If a chunk is big enough, then that chunk can be skipped from reading.
It does not seem desirable to read in different chunk sizes. So the read algorithm is now designed so that the read size is the data buffer size. At the beginning of a map-set, a data buffer is always read. Skipping of read pages is done in multiples of the data buffer size. A buffer can only be skipped, if all its pages are unused. Since MEB does currently use a fixed buffer size of 16 MB, it contains at least 1024 pages, depending on the table's page size. The probability for 1024 contiguous pages to be free isn't that high. That's why we won't reduce the I/O load much. And so we haven't implemented this part yet.
Skip unused pages when writing to the backup filesOn the write side it is advantageous to suppress even single unused pages. It doesn't break sequential writes.
The algorithm is similar to incremental backup. From the read side we get a buffer, which could contain unused pages. For the write side we produce a buffer with only the used pages from the read buffer. For each page, we decide independently, if we copy it to the output buffer. Every bitmap page needs to be included.
Compressed files must not be empty. If the backup files are compressed before they are written, we must assure that they contain some contents. This is a requirement of our compression algorithm. Since we include all bitmap pages, this is not a problem for file-per-table table spaces, nor for the first file of the system table space. But it can happen if a follow-up data file of the system table space has all its pages free, and does not have a bitmap page below the free limit. To work around this problem, we do always include the first page of a file.
A map-set can cover pages from multiple buffers. We need to keep them in memory until all covered buffers are written.
RestoreOn restore, MEB has to recreate unused pages at the right places. The reason for this is explained below in the section "Backup cannot shrink table spaces". Since the contents of the inserted pages do not matter, except of page number, space id, LSN, and checksums, empty pages are written.
In the following, the algorithm to recreate the skipped pages is called "expansion".
Please note that the expansion must take place before an apply-log operation. The apply-log algorithm works on a data file where all pages are at their correct places. Apply-log can modify initially unused pages. Hence those must also be present at the right places in the data file, and have the right LSN.
In MEB 3.9.0, a sequential algorithm is used, which detects skipped pages by a mismatch of a page number and the current write position in the expanded file. Empty pages are inserted until the page number matches the current write position.
If the last page from the backup file is below the free limit from the table space header, empty pages are appended up to the free limit. If the resulting page is below the table space size from the table space header, zero pages are appended up to the table space size.
Backup cannot shrink table spacesWhat users really want, is a feature to remove unused pages from a table space, and make the data file(s) smaller.
MEB cannot help with it. Every InnoDB page has a page number, which corresponds to its position in a data file. The InnoDB tablespaces contain tree structures, where a page can reference one or more other pages. These references are done by page numbers. Hence it is vital that every page retains its position in a data file. If there are unused pages among used pages, the used pages cannot be simply shifted down in a file to take the place of an unused page.
If one wants to change a position of a page, one must assign it a new page number (the one that corresponds to its new place) and modify the page number in all places that reference the page. This means that a bunch of random-access page-read and page-write operations can be necessary for each shifted page.
If a table has a single-file table space (innodb-file-per-table=ON) then an OPTIMIZE TABLE statement would create a new tablespaace with freshly constructed trees and thus take the minimum amount of space. Unfortunately that operation can put a too big burden on the database. With MEB, one could think of a workaround. Do a backup of the table, restore it to a temporary place, run a server on it, OPTIMIZE TABLE, and transport the resulting tablespace to the original server.


text:
This pannier system turns the BMW R1200R into a sporty touring machine!
The robust stainless steel pannier rack is mounted as close as possible to the rear frame and is fastened by means of the existing attachment points. We can use two panniers of the same size due to the slim construction of the rack. This system has proven that it is perfectly suited for touring after completing many miles of test journeys.

subset: commoncrawl


text:
I was reading some articles the other day about Gary Gygax, Dave Arneson and the history of Dungeons and Dragons. I started to wonder: Where did these guys from Wisconsin get the now iconic polyhedral dice from? Did the war games of the time use polyhedrals?
Sign up
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
Before original D&D was published, but after its invention and they'd started playing it, the story I've heard is that a Dave Wesley found these odd dice in an educational supplies catalogue and thought they might be good for the game. Gary Gygax had a love of statistics and probability, and that probably had a lot to do with his quick adoption of the dice.
Polyhedral dice were called for in the original D&D, and low-quality pack-in dice sets appeared in the boxed editions, so they've been part of the game since the beginning. Though some few rare wargames may have used them, that's not from whence they came to D&D.
Ah, I found the quote I was remembering. Greg Svenson, one of the original Blackmoor players, recalls:
David Wesely is credited by Dave Arneson with having introduced polyhedral dice to D&D. Theory from the Closet interviewed Wesely on a train to Gen Con in 2010 if you're interested in hearing about it from the man himself. (There are some sound quality issues with the recording, but it's quite worth it.)
So, doing some light reading, I stumbled across an article written by Dave Anderson about this exact issue!
It's in Kights of the Dinner Table #150. Pages 103 and 104.
Here are some quotes:
Anyway, those are the relevent parts
For a strongly-sourced historical look at this question, see the analysis of the history of polyhedral gaming dice here. This story is basically about how the wargaming community became aware of the availability of polyhedral dice, about which companies adopted it first, and then how these dice ended being a part of D&D.
In short, though d20s were available in the 1960s through international standards associations, they were little known to gamers. That changed when Wargamer's Newsletter began publishing notices about them around 1969, describing d20s as a good means of resolving percentile statistics in games. Gary Gygax subscribed at the time, and mentioned that these dice would go well with a game he was working on called Tractics, a modern-setting wargame that made extensive use of statistics. In turns out that the cheapest way for Guidon Games (publisher of Tractics) to get the dice was to order a whole set of Platonic solids from a company in California called Creative Publications (one of their period advertisements is included in the blog post). From there, in June 1973, Gygax started posting about using all five Platonic polyhedra in games, in particular mentioning his work on fantasty campaign rules at the time.
All of this is excerpted from the chapter of Playing at the World on dice (Section 18.104.22.168) though the blog post has better pictures. The comments on the blog post address some of the alternative accounts (like Wesely's).
Incidentally, the Dalluhn Manuscript ("Beyond This Point Be Dragons") is remarkable for its lack of use of polyhedral dice - it is one of factors that makes it look like a pre-publication document rather than something later.
This is from Wikipedia's article on Dice:
Gygax was was very familiar with these war games so he would have had access to these different kinds of polyhedral dice.
There is a much older game known as Little Wars by H.G Wells but I haven't found any evidence to support that it used dice
Also there is a much, much older game known as Kriegsspiel that also used dice.
The original edition published used nothing but d6's as required dice, but had an option for use of d20's as well.
The 1975 release of Supplement 1: Greyhawk moved to the much wider use of polyhedrals, requiring d4, d6, d8, d10, d12, and d100 rolls.
There is limited evidence, however, that the earlier drafts may have extensively used percentile dice. Namely, a manuscript entitled Beyond This Point Be Dragons, supposedly found in the possessions of Professor M.A.R. Barker, and not quite authenticated by Dave Arneson. This manuscript is nominally called the "Dalluhn Manuscript." Some of the released extracts show percentile driven tables, such as "Exhibit C".
There is little convincing evidence of polyhedral use other than the d20 and d100 prior to 1974 (the pre-release era), tho Gygax is said to have been using the d20 driven "Alternative" Combat system from before release. Dave Arneson did use percentiles almost exclusively in early drafts.
It is worth noting that the d100 rolls used 2d20, as the available d20's were marked 0-9 twice, not 1-20. The pentagonal trapezodipyramid was not commercially readily available until the later half of the 1970's.


text:
Take our 10-question Mobile IQ Test to find out what you know, what you don't, and what to do next. The test is based on data from leading analysts and represents the latest research on enterprise mobility - so you can see how up to date your thinking is.
At the end you'll get your personal Mobile IQ score and a chance to see how you compare to others just like you.


text:
TOPEKA, Kan. (WIBW) - Deidre Barnett woke up one morning last October with a bad headache. It was so bad, she called in sick to her job at Topeka's Stormont-Vail Health Care.
She ended up there that day anyway.
Deidre says she took a shower and, when she got out, looked in the mirror and noticed the left side of her face was drooping.
"I thought, 'This isn't good!" she said.
As a person, she didn't want to believe the worst. But as a Registered Nurse, she knew she had to call 911.
"Things progressed quickly," she said. "In my head, I was thinking clearly. But then, when I tried to call and I couldn't speak, I knew that was a progressive sign."
By the time paramedics arrived, Deidre says, she had trouble getting onto the stretcher because her left side had become weak.
She was having a stroke and, like all stroke patients, recovery depends on getting treated quickly.
Dr. Jon Jones, an emergency room physician at Stormont, cites a UCLA study that estimated 1.9 million neurons are lost for every minute of stroke. That means once symptoms appear, if not treated, you rapidly lose brain function.
Jones says part of getting that quick treatment is calling 911. He says an ambulance crew can not only start initial evaluations and medications, they also can transport a patient quickly and notify the ER ahead of time that they have a patient that has stroke symptoms so everyone is ready when the patient arrive. Having that heads up, he says, gives a time advantage. Stormont is a certified stroke center and has a stroke team dedicated to diagnosing and treating people suffering a stroke.
Deidre says her story also serves a reminder to call an ambulance. She says, as quickly as her symptoms escalated, she'd hate to think what would have happened had she gotten behind the wheel and tried to drive herself to the hospital.
Deidre spent two months in rehab, regaining her speech and strengthening her left side. She returned to work using a walker, but, by March, joined her team at a national tennis tournament, winning her match.
"My goal was to get back to 100 percent and I think I've accomplished that," she said.
Know the warning signs of a stroke with the acronym "FAST" - if your Face droops on one side; you raise both Arms and one drifts down; or your Speech is slurred, it's "Time" to call 911.


text:
Teaching Assistant Program
During the fall semester, the Academic Success Program, with the cooperation of the first year doctrinal professors, offers bi-weekly TA-run labs for each section of Civil Procedure and Torts. These labs are not intended to function as Q&A sessions and their purpose is not to review the material covered in the professor's class. Instead, the ASP TA labs are a way for 1L students to actively engage with the subject matter through practice with hypotheticals, multiple-choice and essay questions, and various other hands-on exercises geared toward enhancing students' academic skills, while simultaneously reinforcing the doctrinal material.
Similar TA labs are also offered during the spring semester in conjunction with the 1L Property classes.
Please refer to the ASP 1L TWEN page for regularly updated materials provided during the TA labs.


text:
I want to create a table of contents in a Google Docs document where the page numbers are automatically referenced.
Is it possible to put page numbers in a table of contents like this?
I want to create a table of contents in a Google Docs document where the page numbers are automatically referenced.
Is it possible to put page numbers in a table of contents like this?
I just found a possible work-around for the original question. It isn't elegant, but it may work.
In each of your section headings (ie, in the text, which are then used to generate the TOC automatically), add a tab and the page number. You have to type in the page number manually, and I'm pretty sure it doesn't pay to get too fancy with placement, adjusting tab stops, etc.
Now, if you refresh the TOC, you get the page number separated from the heading by a tab. (When I tried to adjust the tab stops in the TOC, I got various errors.)
If you don't want the page numbers to appear next to the headings in the body of the document, highlight them there and change the text color to the background color of the document (usually white). The numbers are still there, and will still show up in the TOC, but you can't see them elsewhere.
Unfortunately, the page numbers won't flow as you edit the document, so do this just before final publication.
Again, not elegant -- not in appearance or in process -- but if you must have physical page numbers in a printed document, it should do the trick.
Google Docs support says:
I think the way the table of contents "refreshes" as described in Step 5 is the automatic referencing you're referring to. Let us know if this does what you want.
I misunderstood the question before - we're talking about adding page numbers within the table of contents, not just having the table of contents auto-refresh. My bad. It looks like that particular feature is no longer supported in the new version of Google Docs, though there is a lot of support for the idea of bringing it back. As far as I can tell there's been no word from Google themselves on the subject.
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?


text:
Enjoy award-winning service and direct flights to Marrakech from London with British Airways.
Find a British Airways flight for less, we'll refund the difference.
Low price finder and low initial deposits.
Fly with British Airways and enjoy award-winning service, excellent value for money and no hidden charges:
Enjoy award-winning service and direct flights to Marrakech from London with British Airways.
Hypnotic and Exotic – experience a sensory overload in Marrakech, one of the most vibrant cities in the world. From old-world allure at the Medina to glamourous nightlife in Gueliz, you'll find a new side to the 'Red City' around each corner.
Lose yourself in the colours, sounds and smells of Marrakech – embrace the chaos of this fascinating city. The streets are filled with bundled donkey carts, speeding mopeds and delicious smells. Discover the famous Djemaa El-Fna square, sit back with a glass of mint tea and wonder at the snake charmers and story-tellers. Rich spices and pungent tanneries vie for attention in the labyrinthine passageways. While dazzling souks selling everything from saffron to jewel festooned slippers bewilder and excite. As the day turns to dusk, sit atop a riad roof terrace listening to the cries of enchanting calls to prayer. For those looking for a more relaxed time, make a trip out to the foothills of the Atlas Mountains, to experience breathtaking views amid sublime, otherworldly landscapes.
The 12th century walled city of Medina is the historic heart of Marrakech. Starting in the iconic square of Djemaa el-Fna you will find a congregation of curious street vendors, snake charmers and storytellers. In the evening there is an unbelievable barbecue scene, with hundreds of chefs competing business. Honeycomb alleyways have you wandering through souks swathed in silks and bright fabrics. Stop to haggle for crafts, hand-wrought instruments and aromatic spices. Don't miss the glorious Koutoubia Mosque and the architectural spectacle of the Bahia Palace.
The Hivernage Quarter is a respite from the labyrinthine Medina, with wide palm-lined streets less packed with bustling crowds. You will find a slower pace, with trendy bars and chic cafes dotted along the terraces. Pamper yourself in the lavish five star hotels in Hivernage, such as the Four Seasons spa. Then dine at some of the finest restaurants in Morocco, with both traditional Moroccan and international cuisine on offer. Le Comptoir is a lively and popular venue for after-dinner drinks, and a great place to watch some belly-dancing at dusk.
You can find a relaxing respite from the urban throngs in tranquil Palmeraie. Amongst the lush palm trees, which earned this exclusive area its name, you will find five star hotels alongside the homes of Marrakech's elite. Perfect for luxury holidays in Marrakech, the opulent Sahara Palace hotel offers a spectacular location and wonderful manicured gardens. Or unwind in the exquisitely beautiful and sought after surroundings of the award-winning Palais Namaskar.
Known as the 'French Quarter' of Marrakech, Gueliz has a definite modern European feel. It is a great area for those looking for a break from the haggling and hassling of the Medina's souks. Make your way here for luxury shopping and chic boutiques with fixed prices – a sometimes welcome return. You will find an abundance of lively bars and popular clubs, including the electrifying African Chic – where local celebs gather at the weekend. Alternatively, spend a cultural afternoon ambling around the magnificent oasis that is the Majorelle Garden.
The charming fishing port of Essaouria, along Morocco's western coast, has quaint buildings painted the traditional white and blue. The Atlantic Ocean laps six miles of rugged coastline, and whilst not warm enough for swimming or bathing, it is ideal for surfing and kite-surfing. If you are feeling less active, unwind at a traditional Hammam, which is less a massage and more a vigorous yet enjoyable rub down. Or wander around the souks of the walled medina, and haggle for a great bargain, before taking a sunset stroll along the battlements.
Located 30 minutes outside of the city to the south, the foothills are an ideal place to get away from the commotion of Marrakech. Visit with traditional Berber households, take in the heart-stopping scenery and drink in the beauty that North Africa offers. You will find luxury hotels here offering a beautiful setting to relax and unwind, with spas and hammams ready to cleanse both body and mind. If you are looking for a peaceful time, away from modern life, then this is the place for you.


text:
I have a problem wherein I have defined a function $I_r(t) = \int e^{(2r-1)at} \int e^{(2r-3)at} \cdots \int e^{at} dt\cdots dt$, and $I_r(0) = 0$, for $r = 1,2,3,\ldots$.
I find that $e^{-ar^2t} I_r(t) = \left(1-e^{-at}\right)^r q(t)$, where $q(exp(-at))$ is a polynomial of $e^{-at}$. Is there a general technique for evaluating repeated integrals of this type that allows me to write $q$ in a nice clean way?
If I took $I^*_r(t) = \int e^{at} \int e^{at}\cdots \int e^{at} dt\cdots dt$ with $I^*_r(0) = 0$, and multiplied by $e^{-art}$, I would get $e^{-art}I^*_r(t) = (1-e^{-at})^r$. I am looking for a nice closed-form solution where I have a quadratic in $r$.
This is related to the derivation of a discrete probability distribution where the transition rate function is quadratic w/r.t. the number of events per cell.


text:
Meet and Communicate with Fun Singles Near You on BBW Personals Plus
Register now to search thousands of members and post your FREE profile!
I am 43, hard working, honest, and loyal man. I can be a very caring person by what my friends say. I have been told I am a very compas...
ForgottenAngel is a 45yr-old single man in New Smyrna Beach, FloridaView Profile


text:
Students at Volunteer State Community College will be able to easily transfer to Western Kentucky University under a new dual admissions agreement between the two schools.
Leaders from both schools will sign the new agreement at the community college campus in Gallatin on Thursday.
Students who earn a two-year degree at Volunteer State can enroll at WKU to pursue a bachelor's degree and are advised by counselors at both schools to create an easy transition between schools. The program ensures that students' credits will transfer to WKU and can save students time and money.
The program is applicable to Vol State students who want to pursue any academic areas at WKU.


text:
Hot Sheet: Laughter Through Tears Is Our Favorite Emotion
10. TV: The Crimson Petal and the White
Set in the dark underbelly of Victorian London, the two-part miniseries serves up deliriously hypersexed drama as a vicious brothel proprietor (Gillian Anderson) makes life hell for a sweet prostitute named Sugar (Romola Garai). Premieres on Encore Monday.
9. DVD: AbFab 20
Eddie and Patsy are still running amok all over London in the three latest episodes of the beloved Britcom. Available on DVD Tuesday.
8. FILM: Swoon Anniversary Screening
Tom Kalin's stark black-and-white take on the notorious Leopold and Loeb murder case remains a touchstone of the New Queer Cinema movement. See it again at Brooklyn's BAM Cinemtek with Kalin and star Craig Chester in attendance Thursday. For more information go here.
7. PERFORMANCE: Steel Magnolias
If laughter through tears is your favorite emotion and you don't have anything nice to say about anybody, buy a ticket for Robert Harling's cherished tearjerker. Frances Conroy, Jennifer Coolidge, Elizabeth Perkins, and Annie Potts headline director Judith Ivey's 25th anniversary staged reading at L.A.'s Broad Stage as a benefit for the Juvenile Diabetes Research Foundation Sunday. For more information go to SteelMagnolias-25Years.org.
6. FILM: The Right to Love: An American Family
Cassie Jaye's documentary, which focuses on married gay dads Jay Foxworthy and Bryan Leffew, makes an impassioned plea for equality. Opens in select theaters today.
5. FILM: Bachelorette
This might sound familiar: Just before a wedding, several bridesmaids go in search of fun but find chaos instead. Spirited turns from Kirsten Dunst, Lizzy Caplan, and even Bridesmaids' Rebel Wilson make this more than just a retread of last year's funniest comedy. Plus The New Normal's Andrew Rannells takes it off as a stripper. Opens in theaters today.
4. THEATER: NEWSical the Musical
Blogger-activist Perez Hilton will realize a lifelong dream as he makes his professional stage debut in the long-running off-Broadway celeb-skewering hit revue. Previews begin Saturday. For more information go here.
3. TV: Legends From Here
Veteran celebrity interviewer Paul Ryan (not that one) has done Q&A's with more than 2,000 notable figures, including the late film legends Rock Hudson and Shelley Winters, and eternal music superstar Kylie Minogue. Tune in to the new 30-minute interview series every Friday night on Here!
2. FILM: Keep the Lights On
The Delta's director, Ira Sachs, returns with another powerful and autobiographical tale that looks at the dizzying highs and crippling lows of an LTR between a closeted lawyer (Damages' Zachary Booth) and a documentary filmmaker (Thure Lindhardt). Opens in select theaters today.
1. TV: The New Normal
Trademark witty, rapid-fire dialogue and deliciously oversize characterizations mark what will likely be Ryan Murphy's latest surefire hit. The sitcom about a gay couple (Justin Bartha and a star-making performance by Andrew Rannells) planning to have a child through a sweet surrogate (Georgia King) despite the objections of her comically bigoted grandmother (Ellen Barkin, hilarious). Premieres on NBC Tuesday.


text:
I've installedand configured my printer many times with this guide: https://help.ubuntu.com/community/CanonCaptDrv190
I've tried 2.4 and 2.3 drivers but noticed no difference. At first installed by using guide to 12.04 as I have that version on ubuntu. Then tried the longer version. And mixed them up and googled a lot.
Now I'm in situation that captstatusui doesn't show anything at all. Gui launches but all fields are empty. When I try to print a test page it tries to process a while and gives me this error message: ccp send_data error, exit


text:
ArtCorps is introducing technology and art to engage youth in activities that develop leadership while documenting traditional conservation stories and practices from community elders.
As in much of rural Guatemala, people who live in Totonicapán rely heavily on the land for their livelihoods - carpentry, forestry and farming. But Totonicapán is notable for its centuries-old conservation practices, which have protected the world's largest remaining stand of endangered Guatemalan fir trees. In partnership with EcoLogic and 48 Cantons, ArtCorps is revitalizing indigenous knowledge by inspiring the next generation of leaders to understand, document and continue practicing communal forest management.
As Totonicapán's Quiché elders continue to age, they face a generational divide and fear collective memory loss. There is no systematized version of how and why to manage the forest in a state of ecological equilibrium, and the rich tapestry of stories that have informed these practices throughout the ages are neither collected nor recorded.
- 50 ArtCorps-trained Youth Leaders in Conservation from 10 communities are using new creative skills to document the stories and traditions behind successful conservation practices in Totonicapán.
- 35 teachers from nine schools are replicating the ArtCorps conservation methods with over 1,000 students.
- A growing sense of ownership and pride in their traditional practices has emerged among community members.
- Youth Leaders in Conservation: ArtCorps has formed three groups of more than 50 youth from 10 different communities in Totonicapán. Through experiential workshops, these budding environmental stewards develop performing and visual arts skills for engaging and educating their peers. Their accomplishments include an environmental mural in the public meeting house and an art installation in the forest. Their conservation-themed exhibits have been viewed by over 2,250 students. Meet Victor, one of the Youth Leaders in Conservation.
- Green Week/Green Month: ArtCorps designed this series of creative environmentally-themed activities (from poetry and story slams to a parade, recycling campaign and concert) to raise awareness about conservation throughout the region. Reaching over 3,500 people, this event was such a success that the 48 Cantons board voted to make it an annual tradition and expand its programming from one week to one month!
- Book about Mayan Environmental and Cultural Heritage Illustrated by Youth: To gather content for their book "The Wisdom of the Rockies," the Youth Leaders in Conservation attended weekly story circles where elders shared their traditional knowledge. To produce the illustrations, the youth practiced a variety of visual techniques, including sketching in the forest, collage, stamp-making and shadow drawings.
- Partnering with Schools: Isabel has trained 35 teachers from eight different villages in Art for Social Action methods that they are applying in their classrooms with over 1,000 students. By implementing the arts-based activities developed by ArtCorps, they multiply the number of Youth Leaders in Conservation in the region. The teachers are also integrating creative methods into their regular lesson plans to invigorate the rural education system. Read about one of the ArtCorps workshops for teachers.
- Strengthening Local Water Management: Isabel trained 60 local officials from the water committees and members of the 48 Cantons board in new ways to mobilize their constituents to protect their natural resources. Read about a workshop with the 48 Cantons board.
2012-2013: Isabel Carrió is a visual artist from Argentina in her third year with ArtCorps. In 2011, she applied her painting, sculpture and photography talents to enrich FUNDENOR's education and outreach, and now she continues to incorporate Mayan culture into her leadership development work with 48 Cantons.
The teachers' response to the ArtCorps workshops has been incredible. They are well-respected leaders and role models who grew up in the region where they teach, and they are applying their new creative skills not only in their classrooms but in all of the community spheres where they participate. ~ARTCORPS ARTIST ISABEL CARRIÓ
2011: Andrea Shigeko Landin is a classically trained musician and poet from the US who launched this project.
Our Partners
The 48 Cantons of Totonicapán is a centuries-old Maya-Quiché governing body responsible for managing the natural resources of the villages surrounding the Los Altos de San Miguel Forest. EcoLogic Development Fund has been working with 48 Cantons to introduce new conservation methods and reinvigorate indigenous ones.
Help Our Creative Work Take Root and Blossom!Donate >>
Education and Training News
By Clare Dowd Executive Director The training is practical and highly innovative. It taught me how to work with multiple stakeholders...
Artist in Residence NewsBy Artist in Residence Annalisa Sevaly Its amazing to think that my time here in Belize has just passed the one-month mark. Time...
Read More >>


text:
Narrow your search
The LG Marquee's slim design and jam-packed feature set make it Boost Mobile's flagship phone. But its high price (even without a contract) and slow processor will make it a tough sell.
The RIM BlackBerry Torch 9810 should satisfy BlackBerry fans with its responsive touch screen and overall specs, but for $50 more, T-Mobile customers could get the much better Bold 9900 instead.
Despite solid hardware, great battery life, and fast startup, we can't recommend the Samsung Chromebook Series 5 until and unless Google improves the Chrome OS.


text:
Peaches 'n Cream
Since 1946, Peaches 'n Cream has been one of the most popular brands of children's clothing in the United States. No matter what she's wearing by Peaches 'n Cream, she's sure to stand out and look good! Shop for fabulous girls clothes - including toddler dresses, baby outfits and toddler outfits. These one of a kind looks from Peaches 'n Cream and even girls accessories are all here at affordable prices you'll simply love!
Peaches n Cream Silver Sparkle Christmas Bubble Dress Little Girl 4-14
Our Price $50.00
Sale Price: $18.99


text:
Home > BMW > BMW 1-Series Urban Line 2012
Below you will find the high resolution car wallpaper for BMW 1-Series Urban Line 2012. You may use the car wallpaper for any of the following widescreen screen resolutions:
1920x1200 | 1680x1050 | 1440x900 | 1280x800
BMW 1-Series Urban Line 2012
The BMW 1-Series Urban Line includes special cloth/leather seats, a sports leather steering wheel, an adjustable armrest, and contemporary interior trim finishers in acrylic glass. This has a strong sense of depth and is available in white or black with matt oxide silver accent strips. A striking effect is also provided by the ambient and courtesy lights, which can be switched between orange and LED royal blue and white and royal blue respectively.


text:
I am a beginner of Fourier analysis, but my major is economics, I have not much of idea about frequency domain. My question is, since we have whole set of theory to work on time domain, such as time series analysis and stochastic process, why we need frequency domain.
I don't know much about its utility in economics, but Fourier analysis is invaluable in physics.
The main reason for that is that it transforms linear differential equations into simple algebraic equations. For instance, consider a solution $f(t)$ to the equation
$$ \frac{d^2}{dt^2} f(t) + v\frac{d}{dt}f(t) + \omega_0^2 f(t) = h(t)$$
where $\omega_0,v$ are given numbers and $h(t)$ is a given function. (This describes the motion of a damped spring subject to some external driving force $h(t)$)
The magic of Fourier transformation is that it turns derivatives $\frac d{dt}$ into multiplication with the frequency $-i\omega$. For example, the fourier transform of the equation above is
$$ -\omega^2\hat f(\omega) -iv\omega\hat f(\omega) + \omega_0^2\hat f(\omega) = \hat h(\omega)$$
which is readily solved as
$$ f(\omega) = \frac{h(\omega)}{\omega_0^2 - \omega^2 + vi\omega} .$$
This is the familiar Lorentz-peak.
This kind of calculation is pervasive in many fields of physics, see also: linear response, dispersion, electrical signal processing.
The "frequency domain" is simply a different way to look at the data that you have in the time domain. When you listen to a symphony, the time domain description tells you what sound you hear in every given instant, while the frequency domain description tells you, roughly, what instruments are involved and the ways they are played.
To have a possible application at hand: If your stocks change on a weekly basis only, that fact is most easily seen via the frequency domain description: Higher frequencies than weekly ones won't turn up in the power spectrum of your stock value time series. If, on the other hand, very high frequencies turn up in the power spectrum, you know that you'll better keep your eyes on your news ticker.
We have a whole left eye, so why do we need a right eye? The answer is perspective. Being able to view a problem in both the time and frequency domains is a powerful tool and often reveals structure to a problem that isn't obvious in just the time domain.


text:
ANDERSON, S.C. – Anderson University junior volleyball standout Shannon Gillespie, senior softball shortstop Abby Child and senior men's basketball guard Chandler Hash were honored as the Female and Male Athletes of the Year, respectively, at the annual Athletics Honors Night Tuesday evening at the Abney Athletic Center.
Gillespie, an outside hitter, helped lead the Trojans to their first-ever appearance in the South Atlantic Conference championship match and first NCAA Tournament victory in AU's second Southeast Region tourney appearance. She was named First-Team All-South Atlantic Conference and garnered First-Team Daktronics All-Region accolades while also being named to the 2013 NCAA Southeast Region All-Tournament Team.
A native of Fishers, Ind., Gillespie set a new school record for kills in a single season and is currently seventh in AU's record books with 1,193 career kills. The 5-foot-10 outside hitter led the SAC and ranked 15th in the nation with her 4.05 kills per set average and also paced the league in total kills, points and points per set. Gillespie ranked eighth in the SAC in digs (449) and 12th in digs per set (3.45). Off the court Gillespie earned Capital One First-Team Academic All-District honors.
Child holds numerous school records and has helped lead the Trojans to school-record win totals each of the last three seasons, while starting every game during her stellar four-year career. The veteran shortstop holds the school record with 195 consecutive starts, 43 home runs, 126 walks, 184 RBI, and a .651 career slugging percentage. Child also ranks fifth all-time with a .363 batting average.
This season, Child leads the South Atlantic Conference in walks, is second with 11 home runs and is third in runs scored, fourth in runs batted in and fifth in slugging percentage. She currently ranks 28th nationally in total walks, 34th in home runs and 63rd nationally in home runs per game. As a sophomore, the LaGrange, Ga. native was named the South Atlantic Conference Player of the Year.
Hash capped his stellar career with Division II Bulletin Honorable Mention All-America accolades and an appearance in the National Association of Basketball Coaches (NABC) All-Star Game. The sharpshooter from Greer, S.C. also earned NABC First-Team All-District accolades and Daktronics First-Team All-Region honors after being named First-Team All-South Atlantic Conference for the second consecutive year. Hash, the South Atlantic Conference Tournament MVP, helped lead Anderson to its fourth NCAA Southeast Region Tournament appearance in five seasons, while leading the conference and ranking fifth in the nation in scoring.
His 778 total points was tops in NCAA Division II this season and marks the second-highest single-season total in league history. Hash concluded his career in third place on Anderson's all-time scoring list with 1,537 career points and his career-high 44 points in the Trojans' SAC Tournament semifinal appearance ranks seventh in the league all-time for points scored in a single game.
In addition to the SAC Players of the Week, All-Tournament and All-Conference honorees, SAC Freshmen of the Year and Track and Field Athletes of the Year, the softball team was recognized for earning a share of the league championship title.
Hash was also honored for being selected as the South Atlantic Conference Men's Basketball Scholar-Athlete of the Year for the second consecutive year, after becoming the fourth consecutive honoree for the award from AU's men's basketball team. He followed back-to-back awards earned by former standout Nick Trull. Hash carries a 3.51 GPA majoring in nursing and is a member of the Chi Alpha Sigma Honorary Society, the AU Dean's List and the Capital One Academic All-District and All-America Teams.
Kelly Wragg, Assistant Food Service Director, took home the "Trojan Pride" award for her demonstrated pride and unselfish dedication in helping staff AU's athletic events and helping ensure that the events were top-notch. She received multiple nominations for the award, which is presented annually to a team or an individual that exhibits and represents the highest level of pride in the program. It was common for Wragg to make appearances at nearly all home events.
Athletic Honors Night – Team Awards
Most Valuable Pitcher – Landon Beck
Most Valuable Player – Steven Cooper
Most Valuable Player – Nathaniel Galliford
Most Improved Player – Nick Jackson
Most Valuable Player – Chandler Hash
Tough Trojan Award – Lesley Woods
Most Valuable Player – Sierra Simpson
Coach's Award – Ned Kennedy
Most Valuable Player – Parks Edwards
Coach's Award – Grace Gerlock
Most Valuable Player – Olivia Gardner
Coach's Award – Eric Hoover
Most Valuable Player – Philip DeGraaf
Coach's Award – Savanna Keese
Most Valuable Player – Brooklyn Watt
Leadership Award – Rob Warren
Most Valuable Player – Sean Shelton
Leadership Award – Katie Eskew
Most Valuable Player – Katie Eskew
Coach's Award – Alex Delpy
Most Valuable Player – Lars Zimmerman
Coach's Award – Tera Dolan
Most Valuable Player – Olivia Scalzitti
Legacy Award – Laura Jansky
Legacy Award – Danielle Swygert
Legacy Award – Abby Child
Legacy Award – Charlotte Sieber
Coach's Award – Carly Hudson
Frank Eskridge Sr. Coach's Award – Paul Michael Calhoun
Most Valuable Player – Juan Carracedo
Frank Eskridge Sr. Coach's Award – Avery Owens
Most Valuable Player – Rebecca Bruning
Most Dedicated Award – Sarah Eckert
Most Valuable Player – Alix Hooker
Nancy Simpson/Bobby Beville Most Outstanding Wrestler Award – Zak Hale
Thom Hoppler Memorial Award – Cory Monteforte
Iron Horse Award – CJ Gleaton
Most Spirited Award – Madison Ellenburg
Coach's Award – DeDe Morris
Women's Golf


text:
I am trying to implement GTD using OneNote.
If for example I have a project "fix house" and a next action "ring plumber"
Should that action be on 3 lists:
- Next actions list
- At phone list
- Project actions list
It seems like a lot of duplication. If you forget to delete it from one of the lists when it is done, it can get confusing.
Should the action be on a single list?


text:
Hear why parents highly recommend Albuquerque Academy
Posted at: 12/07/2012 4:09 PM | Updated at: 12/10/2012 2:00 PM
Parents Tracy Small and Maria Otero share why they chose Albuquerque Academy for their kids and what impresses them most about the school.
Albuquerque Academy
2013-2014 Admission
Application deadline February 8, 2013
Applicants must register for a test date
This Good Day New Mexico segment may include paid advertising content. It is not affiliated with KOB-TV's News Department.


text:
The ESA statute does not allow books to be bought separately. However, if a textbook that is part of a curriculum, requires additional reading such as a classic or other literature piece in order to complete the curriculum; then the additional required item(s) is approved and may be purchased.
Posted in: Approved Program Expenses


text:
I think "Body content relevance" is the written "non-image" text on the page of the web site which is descriptive in nature and relates to the title, description and keywords. It is not mandatory to have relevant body content, but it most definetly will assist your ranking on the search engines and yours thinks.
What is "body content relevance"?
Part of the content visible to the users
I think body content relevance is written non image text.
i think body content relevancy is important...............
body content relevance is a kind of feature of content according to which all the text and pictorial information provided should be related to our tiltle and keywords we r using.


text:
CHARLOTTE, N.C. - The Charlotte men's tennis team defeated Tennessee Tech 6-1 in a dominating performance at the Halton-Wagner Tennis Complex earlier Saturday afternoon.
"Today was a solid overall effort from our team," said head coach Billy Boykin. "We struggled to find consistency in our doubles play, but played pretty fearless tennis at the end to clinch the doubles point. We took that momentum into the singles and our play was pretty solid from top to bottom. I'm pleased with how we competed and am looking forward to a good week of practice."
In the singles competition, Forrest Edwards defeated Alejandro Augusto 6-3, 6-2. Alex Calott took down Artem Tarasov 6-2, 6-0. Edwards and Calott have won nine single matches this season. Jordi Massallé Ferrer topped Vasily Eremeev 6-1, 6-2 and Kamil Khalil defeated Alvaro Cintas 6-3, 6-2. Paul Cisti wrapped up the singles by winning 6-0, 6-0 over Othon Lima. Syrym Abdukhalikov got Tennessee Tech's only win in the singles round and defeated Jack Williams 6-7, 6-4, 10-6.
In doubles action, Williams and Edwards defeated Abdukhalikov and Augusto 8-7. Kamil Khalil and Krzysztof Kwasniewicz took down Cintas and Pavel Perovic 8-1. Calott and Ferrer fell 8-4 to Tarasov and Eremeev.
The Niners return back to action on Saturday, Feb. 2 as they host Campbell at the Halton-Wagner Tennis Complex at 1 p.m.


text:
I've installed Lubuntu on an Asus EeePC 1015CX.
I tried it first running on a 16gb peg, runs like a dream with 1024x600 resoluton.
Installed on the netbook itself, it only does 800x600.
-- I tried installing additional drivers (cedar trail I think). When I boot the blue lubuntu screen (at 1024x600) comes on for a split second. The I get a blinking cursor. I can get command line (again, at 1024x600) but thats all.
-- I reinstalled and xrandr gives me this:
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 800 x 600, current 800 x 600, maximum 800 x 600
default connected 800x600+0+0 0mm x 0mm
800x600 61.0*
Appreciate any advice.


text:
Continuing Education Blog
PNCA offers evening and weekend classes for adults and young people. For adults we offer courses in art, craft, and design, as well as professional development classes. For children we have Saturday classes during the school year and week-long camps during the summer. In addition to our regular teen classes, we also offer immersive summer Pre-College Studios. Our blog below gives you an idea of some of the goings on, and you can see our full course catalogue online here.
November News and Notes
A great fall term has just finished, thanks to all of the great students and instructors. You can get a peek in classroom by visiting the adult program Flickr site.
The Animation class, led by Lori Damiano presents their work Friday December 2 at 7:30. This screening will be held at the IPRC and is free and open to the public.
Check out Paul Missal's show at Blackfish Gallery.
Currently on display in the CE Hallway are works from Sara Kaltwasser, Youth Program Coordinator and prints from this Fall's Screenprinting class.
December 16+17 we are having Illustrator Patterns and Repetition with Damien Gilley. In this new class students learn to make repeating patterns utilizing the power of Adobe Illustrator.
The Continuing Education office will be closed Thursday the 24th and Friday the 25th.
Looking Back…
We've had the opportunity to meet some great students, and share some especially lovely experiences over the last 8 weeks. Here are a few choice moments that we will remember from this term. We had so much fun!
As always, it's been a blast! Visit our Flickr site to check out more of the goings on from our classes this Fall. Don't forget to visit our Flickr after Saturday November 19th to see additional artwork and class candids.
Sneak Peek - Online Exhibition!
Two more days until the conclusion of our Fall term. Wow. I can't believe classes are over for this year. We've had so many great Youth and Pre-College instructors teach with our program during 2011, and we've had so many awesome students join us. While there are still a few works to be documented from this round of classes, the majority of images are up on our Flickr Site! Here is a sneak peek of the amazing art from our Art Explorers, Drawing Studio, and Visual Elements students!
If you would like to see more visit our Online Exhibition Collection.
Winter Classes and Scholarships
Our Fall classes will be ending this Saturday. Looks like we'll have to take a break from "Art Stretches" with Wayne Bund; a ritual that our 4 to 6 year old students practice each week prior to starting the day's project. But don't worry, we have a lot of great class options starting over the next few months! Our Winter term starts on January 28th and runs through March 17th, 2012. We will be offering Mini Masters (4-6), Drawing + Painting (7-8), Art + Storytelling (9-11), Hand Printed Fabric Design(12-14), and Beginning Painting Techniques (Pre-College). You can read more about upcoming Youth Program classes by visiting the registration section of our website.
Did you know that we also offer scholarships to attend classes with our Program? Our application deadline for Winter Term is Friday December 9th, 2011. You can learn more about Youth Program scholarships including required materials and information, download a PDF of our application, or apply online on the Youth & Teen section of our website.
Our Portland Project and Exhibit!
Classes are hard at work on their submissions for our Youth Program Exhibition in March. Art Explorers and Visual Elements started the project this last Saturday. Several students from Drawing Studio have completed their submissions for our Portland-centric exhibit. Check out this awesome piece that features our city's stellar soccer team, the Portland Timbers. Click the jump to see more —> River City Art Exhibit
Clay Creatures
Our Art Explorers clay work has come out of the kiln! It looks awesome! Among other items that were fired: several houses, a bird, a few cats, and some crazy shapes that aren't quite identifiable.
Landscapes with Amy Steel
Last Saturday, longtime instructor Amy Steel subbed for our Art Explorers class. She is an amazing educator and a good friend to the program. She coordinated with Wayne Bund on the lesson; an exploration of landscape using Ansel Adams as a reference point. Students looked at his photography and read a story that focused on silhouetted figures and shape. Our 4-6 cohort worked with sumi ink on watercolor paper to create really lovely black and white landscapes.
The final results can be seen below.
Self Portraits!
As usual, Saturday classes at PNCA were epic. Several projects are starting to come to a close as the end of the semester draws near. All of the classes are working on, or will start, their submissions to our 2012 exhibit which takes place in March. We will keep you posted on that project as the submissions are completed. In addition, our Drawing Studio class started a self portrait project this last week. We encourage students to draw from life, using mirrors as a reference. It's always interesting to see how 7 and 8 year olds will depict themselves during an observed portrait assignment.
Online Exhibition - Fall 2011
We're still a few weeks out from the conclusion of our Fall term, but artwork is already being uploaded and shared on Flickr from our current youth classes. There are some really lovely pieces of work in our exhibition sets. Hey, did you know that we have an exhibition archive that features work from the last 3 years of classes? It's true. It's a great way to see what a class with our program is like or explore the awesomeness that is kid-made-art. If you what to check out this term's sets or sets from past classes just visit our Online Exhibition Archive on Flickr.
More from our Evening Classes
We are about 3-weeks out from the end of our Fall term. It's hard to believe the time has gone by so quickly. Even so, our Instructors and students are making the most of that time in our classes by producing some great artwork! Artist and photographer Heather Zinger was nice enough visit campus last week, and take some very lovely photos of the goings on in Continuing Education. You can see more images from our classrooms by visiting our flickr site. If you would like to know what we will be doing next term you can visit our Registration site, or contact Continuing Education Staff directly.
Past Articles
By month ...
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
January 2007
Useful Apps
PDX Bus: Trimet
Food Carts Portland
Portland Essentials
PDX Pipeline
Portland Weather
AnyStop: Trimet
Food Carts Portland
Portland Essentials
PDX Pipeline
Portland Weather


text:
Deployment and Failover Study of HA MySQL on a Solaris Cluster
By Krish Shankar on Apr 02, 2008
- Executive Summary
- Document Scope
- Benefits of Solaris Cluster
- Setup environment
- Installation of Solaris Cluster and HA MySQL Service s/w
- Configuring a failover file system using a ZFS pool
- Installation of MySQL Server
- Upgrading Testing : MySQL 5.0 to 5.1
- Internal test suite run
- S/W Fault Test Run
- S/W Fault Regression Test Run
- Uninstalling Solaris Cluster
- Software links
- References
Executive Summary
This document illustrates the deployment process of MySQL on Solaris cluster (SC). It also focuses on regression and failover testing of HA MySQL, and describes the tests performed. Solaris 10 fully supports MySQL and the HA cluster application agent (data service) for MySQL.
A cluster provides a single view of services for applications such as databases, web services, and file services. Services can scale to additional processors with the addition of nodes. A data service is an application designed to run under the control of a cluster.
The MySQL Open Source database is multi-threaded and consists of an SQL server, client programs and libraries, administrative tools, and APIs. Sun acquired MySQL AB in January 2008.
The objective is to help facilitate adoption of the Sun stack by the Open Source community, and enhance Sun's strong commitment to open source products, including Open Source databases.
Document Scope
The scope of the deployment environment comprises MySQL Community Server on a Solaris 10 global zone. While the platform of choice was SPARC, the results are identical if deployed on an x86-64 platform.
The scope of testing includes upgrade testing, regression testing, and failover testing. Testing with MySQL Cluster, and performance benchmarking is outside of the scope.
Benefits of Solaris Cluster
Reduced system downtime, availability of systems and applications, and increased application throughput via scalable services are some of the benefits realized when using Solaris Cluster.
The Solaris Cluster framework includes Sun Cluster, Sun Cluster Geographic Edition, developer tools and support for commercial and open-source applications through agents. It provides high availability and disaster recovery for local and geographic clusters. This leads to an increased choice in storage replication and networking configurations.
A data service consists of an application, cluster configuration files, and management methods that control starting stopping, and monitoring of the application. The public network interface is a logical hostname or a shared address.
Solaris Cluster provides for Higher Availability (HA) for enterprise applications. HA components can survive a single s/w or h/w failure. The I/O fencing feature keeps shared storage transparent to a faulty node, and ensures integrity of data. For example, in a 2-node cluster that has a disabled interconnect, each node may assume that it's part of a cluster, and may try and form one. This potential split-brain scenario is avoided by I/O fencing.
A logical interface is presented to the applications. There is no single point of failure in the NICs. Striped traffic over the interconnects with transparent failover results in better network utilization.
Solaris cluster has a proven monitoring and failover mechanism. A wider choice of low latency, high bandwidth interconnects for deployment exists, that yield higher throughputs. Example : Infiniband, Dolphin.
Device path names are uniform across nodes for the shared LUNs, thereby resulting in easier manageability. Node times can be synchronized during configuration.
A comprehensive list of HA applications (data services) are available, and all configurations are certified and tested. Tight integration with the Solaris kernel results in better fault management and heartbeat mechanism.
Setup Environment
A traditional cluster includes two or more nodes cabled together via private interconnects, and connected simultaneously to shared storage devices (multihost devices). Network adapters provide client access to the cluster. Different architectures and topologies can be used for deployment. The core cluster and data service software, and disk management software are used collectively to monitor, access and administer various resources.
The setup comprises two SPARC V1280 systems connected by two private interconnects.The MySQL Community Server version used is 5.0.45 .
- SPARC platform :
- Nodes : v1280-137-03 and v1280-137-04
- CPU : 12 UltraSPARC-III+ x 1200 MHz
- Memory : 49,152 MB and 98,304 MB
- Storage : SE 6120 (14 x 73 GB )
- Operating System : Solaris 10 SPARC, Update 4
After a default OS installation, it is recommended to install the patches for the OS version being used, from http://sunsolve.sun.com .
Ensure that the SC3.x version being used has support for Solaris 10, Update x.
Installation of Solaris Cluster and HA MySQL Service s/w
This section describes the installation and configuration of the Sun Cluster and the HA MySQL service s/w components.
On the first node, perform these steps as root user :
Remove the previous product registry, if any :
# /var/sadm/prod/SUNWentsys5/uninstall
Download and uncompress the SC s/w .zip file : Navigate to sun.com, click on 'downloads' , and follow the links; (suncluster-3_2-ga-solaris-sparc.zip)
Set the PATH variable to include the directory of the Sun Cluster binaries :
# PATH=$PATH:/usr/cluster/bin:/usr/ccs/bin:/usr/sfw/bin; export PATH
Navigate to the sc/Solaris_sparc sub-directory, and type :
# ./installer
1. Choose 'No' for :
Install the full set of Sun Java(TM) Enterprise System Products and Services?
2. Choose options 4,6 to select these products, and then 'A' on each to install all its components :
[X] 4. Sun Cluster 3.2
[X] 6. Sun Cluster Agents 3.2
3. Choose 1 for :
Upgrade the shared components that were installed in the previous step ?
4. Choose 2 :
Configure Later - Manually configure following installation
5. # scinstall
6. Choose 1 :
Create a new cluster or add a cluster node
7. Choose 2 :
Create just the first node of a new cluster on this machine
8. Choose the 'Typical' mode of operation
9. Choose mysql-ca as the name of the cluster
10. Choose 'Yes' for :
Do you want to run sccheck (yes/no) ?
11. Enter the 2 node names when prompted, and press Control-D to complete the configuration :
12. Configure at least two cluster transport adapters (eg. ce0 and ge0 here).
Choose 'Yes' to confirm each as being dedicated.
13. Choose 'No' for :
Do you want to disable automatic quorum device selection (yes/no) [no]?
14. Choose 'yes' for :
Do you want scinstall to reboot for you (yes/no) [yes]?
15. Choose 'Enter' to reconfirm the options to scinstall
Monitor via an nts console (Esc. sequence : shift + tilde followed by '.')
On the 2nd node, perform all the above steps (1-15 as applicable), as done for the 1st node, except for these differences :
16. Choose 1 :
Create a new cluster or add a cluster node
17. Choose :
Add this machine as a node in an existing cluster
18. Choose 'Typical' mode of operation, and supply the cluster name chosen earlier
19. Choose yes for :
Do you want to use autodiscovery (yes/no) [yes]?
20. Choose remaining prompts similar to those for the first node.
Once the nodes have booted into the cluster, the configuration of Sun Cluster and HA MySQL s/w are complete.
Configuring a failover file system using a ZFS pool
This section describes the creation and configuration of a failover file system using a ZFS pool.
The database will reside on a global file system whereas the installation will be on local file systems. A failover file system has increased performance over a cluster file system as all nodes do not have to commit. However, as only one node sees the file system at a time, there is a slight increase in failover time.
On the first node, perform these steps as root user :
1. Choose a suitable shared disk among those in your setup. The disk names would have two entries, and can be listed by typing :
# scdidadm -L
2. Execute the zpool command as is (volume mysql3 and the specified shared disk name are for illustration):
# zpool create mysql3 c1t20030003BA13E6A1d0
3. Mount the volume, and configure a resource group :
# cd /
# zfs create mysql3/sqlvol
# zfs set mountpoint=/global/mysql mysql3/sqlvol
# clrg create mysql-rg // create a failover resource group
# clrt register SUNW.HAStoragePlus
# scrgadm -at SUNW.HAStoragePlus -x Zpools=mysql3 -g mysql-rg -j sql-stor // create the HAStoragePlus resource named 'sql-stor' in the mysql-rg resource group for the MySQL disk storage.
# clrg online mysql-rg
// bring the failover resource group online; the MySQL Disk storage resource previously added gets enabled. Subsequently, add and enable other resources to it, such as the logical host resource, gds data service resource, and the MySQL resource.
# clrg status mysql-rg // check the status of the resource group
Installation of MySQL Server
This section describes the installation and configuration of the MySQL Server.
On the first node, perform these steps as the root user :
If a MySQL environment already exists, do a cleanup, and remove the MySQL packages; otherwise proceed to Step 1 below :
# clrg offline mysql-rg
# clrg delete -F mysql-rg
# rm -rf /global/mysql/\*
# pkgrm mysql
1. Obtain a standalone, separate hostname and IP for use as the MySQL resource group failover address. (in this eg. v1280-logical,10.x.x.x)
2. On each node, download the packaged release binary file (pkg. format) from the MySQL site dev.mysql.com , and uncompress it into the target directory.
# pkgadd -d mysql-5.0.45-solaris10-sparc-64bit.pkg
# cd /usr/local
# ln -s //opt/mysql/mysql mysql // soft link to the mysql binaries directory
3. From the node on which /global/mysql is mounted, bind the failover IP to the resource group :
# scrgadm -aLl v1280-logical -g mysql-rg // create a resource for the logical hostname in mysql-rg
# clrs enable v1280-logical // enable the logical host resource
# chown -R mysql:mysql /global/mysql
Modify the default mysql configuration file (/global/mysql/my.cnf) :
# cp /opt/SUNWscmys/etc/my.cnf_sample_master /global/mysql/my.cnf
log=/global/mysql/logs/log1,log-bin=/global/mysql/logs/bin-log, innodb_data_home_dir=/global/mysql/innodb
# /opt/mysql/mysql/scripts/mysql_install_db --datadir=/global/mysql // install the mysql grant tables
# chown -R mysql:mysql /global/mysql
# cd /global/mysql
# mkdir logs innodb
Modify and configure the default file mysql_config , in order to create a fault monitor user and a test database for the MySQL instance. The fault monitor attempts to restart the server in case of a shutdown :
# cp /opt/SUNWscmys/util/mysql_config /global/mysql
MYSQL_BASE=/opt/mysql/mysql;MYSQL_USER=root; MYSQL_PASSWD=admin123;FMUSER=fmuser;FMPASS=fmuser; MYSQL_SOCK=/tmp/v1280-logical.sock; MYSQL_NIC_HOSTNAME="v1280-137-03 v1280-137-04"
# chown -R mysql:mysql /global/mysql
Test MySQL server startup and shutdown :
#/opt/mysql/mysql/bin/mysqld --defaults-file=/global/mysql/my.cnf
--basedir=/opt/mysql/mysql --datadir=/global/mysql
--user=root --pid-file=/global/mysql/mysql.pid &
# chown -R mysql:mysql /global/mysql
# /opt/mysql/mysql/bin/mysqladmin shutdown -S /tmp/v1280-logical.sock
Restart the MySQL server; grant database resource privileges to the administrator user:
#/opt/mysql/mysql/bin/mysqld --defaults-file=/global/mysql/my.cnf
--basedir=/opt/mysql/mysql/ --datadir=/global/mysql
--user=root --pid-file=/global/mysql/mysql.pid &
# /opt/mysql/mysql/bin/mysqladmin -S /tmp/v1280-logical.sock password 'admin123' // enable the admin user to access a local MySQL instance with a MySQL logical i/p
# /opt/mysql/mysql/bin/mysql -S /tmp/v1280-logical.sock -uroot -padmin123
> use mysql
> grant all on \*.\* to 'root'@'v1280-137-03' identified by 'admin123';
> grant all on \*.\* to 'root'@'v1280-137-04' identified by 'admin123';
> grant all on \*.\* to 'root'@'v1280-logical' identified by 'admin123';
> UPDATE user SET Grant_priv='Y' WHERE User='root' AND Host='v1280-logical';
> UPDATE user SET Grant_priv='Y' WHERE User='root' AND Host='v1280-137-03';
> UPDATE user SET Grant_priv='Y' WHERE User='root' AND Host='v1280-137-04';> exit
Configure MySQL for HA, and register MySQL as a failover data service. Modify the default configuration file ha_mysql_config to include the cluster information :
# /opt/SUNWscmys/util/mysql_register -f /global/mysql/mysql_config
# cp /opt/SUNWscmys/util/ha_mysql_config /global/mysql
RS=mysql;RG=mysql-rg; PORT=3306;
LH=v1280-logical; HAS_RS=sql-stor;
mysql specifications : BASEDIR=/opt/mysql/mysql; DATADIR=/global/mysql;
FMUSER=fmuser; FMPASS=fmuser; LOGDIR=/global/mysql/logs; CHECK=yes
Register the SUNW.gds data service before registering and enabling the MySQL resource :
# chown -R mysql:mysql /global/mysql
# clrt register SUNW.gds
# /opt/SUNWscmys/util/ha_mysql_register -f /global/mysql/ha_mysql_config
# clrs enable mysql & // enable the HA MySQL resource specified by RS in the configuration file
Manually test the failover :
# clrg switch -n 2 mysql-rg
# clrg status mysql-rg
Upgrade Testing : MySQL 5.0 to 5.1
Simulate a production environment scenario, wherein database upgrades are the norm. Upgrade the MySQL server from version 5.0.45 to 5.1.22 with minimal or no disruption to the underlying stack.
As root user, set PATH and disable the mysql resource :
# PATH=/ws/onnv-tools/SUNWspro/SS11/bin:/usr/ccs/bin:/usr/local/mysql/bin:
# export PATH
# clrs disable mysql
On both the nodes, replace the binaries under /opt/mysql/mysql dir. from 5.0.45-64 to 5.1.22-64 :
# rm -rf /opt/mysql/mysql/\*
# cd /opt/mysql/mysql
# gunzip -c mysql-5.1.22-rc-solaris10-sparc-64bit.tar.gz|tar xvf -
On the first node, comment out the 'innodb_arch_dir' entry setting in /global/mysql/my.cnf (and any other innodb setting that is not valid for 5.1) .
On the first node, restart the 'mysqld' server unmonitored :
#./mysqld --defaults-file=/global/mysql/my.cnf --basedir=/opt/mysql/mysql --datadir=/global/mysql --user=root --pid-file=/global/mysql/mysql.pid &
# chown -R mysql:mysql /global/mysql/innodb /global/mysql/logs
Run the mysql_upgrade utility to upgrade and repair the grant tables in the target database :
# ./mysql_upgrade -S /tmp/v1280-logical.sock -uroot -padmin123
# ./mysqlcheck -S /tmp/v1280-logical.sock -uroot -padmin123 --all-databases // run optionally
Refresh the grant privileges for the administrator :
# /opt/mysql/mysql/bin/mysql -S /tmp/v1280-logical.sock -uroot -padmin123
> use mysql
> grant all on \*.\* to 'root'@'v1280-137-03' identified by 'admin123';
> grant all on \*.\* to 'root'@'v1280-137-04' identified by 'admin123';
> grant all on \*.\* to 'root'@'v1280-logical' identified by 'admin123';
> UPDATE user SET Grant_priv='Y' WHERE User='root' AND Host='v1280-logical';
> UPDATE user SET Grant_priv='Y' WHERE User='root' AND Host='v1280-137-03';
> UPDATE user SET Grant_priv='Y' WHERE User='root' AND Host='v1280-137-04';
Shutdown the server, and enable the mysql resource and fault monitor :
# /opt/mysql/mysql/bin/mysqladmin shutdown -S /tmp/v1280-logical.sock
--user=root --password=admin123
# clrs enable mysql
Internal test suite run
The MySQL benchmark suite (currently single-threaded) is part of a server installation. It can be used to determine which database operations in an implementation perform well or poorly.
The following run illustrates the setup and completion of the test suite. The actual performance numbers are not the focus, this being a default implementation.
Run the internal test suite on a MySQL 5.0.45 32-bit implementation :
On both nodes, download and install the the MySQL DBD driver, and the Perl Modules to access the database servers :
As root user, download and uncompress the latest DBI/DBD files from :
(Eg. Currently DBI-1.602.tar.gz and DBD-mysql-4.006.tar.gz).
Set a soft link to /usr/bin/perl , and a compiler path in PATH (Eg.)
# cd /usr/local/bin
# ln -s /usr/bin/perl perl
# PATH=/ws/onnv-tools/SUNWspro/SS11/bin:/usr/ccs/bin:/usr/local/mysql/bin:
# export PATH
Install the DBI module :
# cd DBI-1.602
# perl Makefile.PL
# make
cc -c -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xarch=v8
-D_TS_ERRNO -xO3 -xspace -xildoff -DVERSION=\\"1.602\\"
-DDBI_NO_THREADS DBI.c
# make test
All tests successful, 34 tests and 379 subtests skipped.
Files=126, Tests=5617, 159 wallclock secs (140.38 cusr + 15.71 csys = 156.09 CPU)
test.pl done
# make install
Install the MySQL DBD driver :
# cd DBD-mysql-4.006
# perl Makefile.PL
# make
cflags (mysql_config) = -I/usr/local/mysql/include -mt
-D_FORTEC_ -xarch=v8..
cc -c -I/usr/perl5/site_perl/5.8.4/sun4-solaris-64int/auto/DBI
-I/usr/local/mysql/include -mt -D_FORTEC_ -xarch=v8
-DDBD_MYSQL_INSERT_ID_IS_GOOD -g -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -xarch=v8 -D_TS_ERRNO -xO3 -xspace -xildoff
"-I/usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE" dbdimp.c
# make test
# make install
Run the test suite :
# cd /opt/mysql/mysql/sql-bench
# ./run-all-tests --socket /tmp/v1280-logical.sock --user=root
Benchmark DBD suite: 2.15
alter-table: Total time: 28 wallclock secs ( 0.05 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.12 CPU)
ATIS: Total time: 40 wallclock secs ( 5.17 usr 0.83 sys + 0.00 cusr 0.00 csys = 6.00 CPU)
big-tables: Total time: 30 wallclock secs ( 5.56 usr 0.43 sys + 0.00 cusr 0.00 csys = 5.99 CPU)
connect: Total time: 244 wallclock secs (55.75 usr 45.62 sys + 0.00 cusr 0.00
csys = 101.37 CPU)
create: Total time: 208 wallclock secs ( 4.86 usr 3.79 sys + 0.00 cusr 0.00
csys = 8.65 CPU)
insert: Total time: 2118 wallclock secs (434.92 usr 132.81 sys + 0.00 cusr 0.00 csys = 567.73 CPU)
select: Total time: 934 wallclock secs (40.27 usr 8.64 sys + 0.00 cusr 0.00 csys = 48.91 CPU)
transactions: Test skipped because the database doesn't support transactions
wisconsin: Total time: 19 wallclock secs ( 2.28 usr 1.68 sys + 0.00 cusr 0.00 csys = 3.96 CPU)
All 9 tests executed successfully
Totals per operation:
Operation seconds usr sys cpu tests
alter_table_add 12.00 0.01 0.01 0.02 100
alter_table_drop 11.00 0.01 0.00 0.01 91
connect 20.00 9.00 4.02 13.02 10000
connect+select_1_row 23.00 9.42 4.61 14.03 10000
update_with_key_prefix 43.00 7.12 5.40 12.52 100000
wisc_benchmark 3.00 1.31 0.04 1.35 114
S/W fault test run
A. Perform a manual failover of an executing MySQL client transaction:
On the primary node (resources and db instance up), execute multiple transactions that insert records in a table. Check that transactions are either committed or rolled back, and that the data is consistent. Measure the switchover (controlled failover) time:
Node 1 - 1st terminal window :
Create a script (eg. insert-data) with a few transactions :
INSERT INTO t(f) VALUES (1);
INSERT INTO t(f) VALUES (1);
INSERT INTO t(f) VALUES (2);
INSERT INTO t(f) VALUES (2);
Create an innoDB table and run the script :
# /opt/mysql/mysql/bin/mysql -S /tmp/v1280-logical.sock -uroot -padmin123
mysql> CREATE TABLE t (f INT) TYPE=InnoDB;
mysql> source insert-data
Node 1 - 2nd window :
Let the script run for a while. Then, perform a manual failover onto Node 2 :
# clrg switch -n 2 mysql-rg
Node 2 - Window :
Verified that the resource group fails over, and that the mysql process, and /global/mysql are available.
# ps -ef|grep mysql
root 8084 987 0 02:54:56 ? 0:00 /bin/sh -c /opt/SUNWscgds/bin/gds_probe -R mysql -T SUNW.gds:6 -G mysql-rg
root 8085 8084 0 02:54:56 ? 0:00 /opt/SUNWscgds/bin/gds_probe -R mysql -T SUNW.gds:6 -G mysql-rg
mysql 8045 1 0 02:54:45 ? 0:01 ./bin/mysqld --defaults-file=/global/mysql/my.cnf --basedir=/opt/mysql/mysql --
Node 1 - 3rd window..
The script aborts soon after 'clrg switch' begins executing. Those transactions that completed before the abort are committed to the database successfully. The in flight transaction rolls back completely, and pending transactions are not executed. All the threads are stopped, tables and logs flushed, and a clean shutdown is performed.
Browse /var/adm/messages on both nodes :
Node 1 :
Mar 14 00:32:46 v1280-137-03 Cluster.RGM.rgmd: [ID 515159 daemon.notice] method <gds_svc_stop> completed successfully
Node 2 :
Mar 14 00:32:52 v1280-137-04 Cluster.RGM.rgmd: [ID 224900 daemon.notice] launching method <gds_svc_start> for resource <mysql>, resource group <mysql-rg>, node <v1280-137-04>, timeout <300> seconds
Failover time is the difference between the moment that gds_svc_stop completes on Node 1 and the moment that gds_svc_start launches on Node 2 = 6 sec.
B. Panic or reboot a node, and measure the failover time:
Panic :
On the adminstrative console of the primary node (resources and db instance up), type :
# uadmin 5 0 // simulate a panic
> ok boot
Browse /var/adm/messages on the secondary node :
Node 2 :
Apr 15 01:17:53 v1280-137-04 cl_runtime: [ID 446068 kern.notice] NOTICE: CMM: Node v1280-137-03 (nodeid = 1) is down.
Node 2 :
Apr 15 01:19:00 v1280-137-04 Cluster.RGM.rgmd: [ID 515159 daemon.notice] method <gds_svc_start> completed successfully for resource <mysql>, resource group <mysql-rg>, node <v1280-137-04>, time used: 18% of timeout <300 seconds>
Failover time is the difference between the moment the fault is injected on Node 2 (MySQL DB instance no longer available) to the moment gds_svc_start is completed on the same node (MySQL DB instance available again) = 67 sec. Here, the nearest equivalent fault injection message reported on Node 2 is that of Node 1 going down.
Reboot :
On the primary node (resources and db instance up), type :
# reboot
Browse /var/adm/messages on both nodes :
Node 1 :
Apr 14 23:13:19 v1280-137-03 Cluster.PNM: [ID 226280 daemon.notice] PNM daemon exiting.
Node 2 :
Apr 14 23:14:15 v1280-137-04 Cluster.RGM.rgmd: [ID 515159 daemon.notice] method <gds_svc_start> completed successfully for resource <mysql>, resource group <mysql-rg>, node <v1280-137-04>, time used: 6% of timeout <300 seconds>
Failover time is the difference between the moment the fault is injected on Node 1 (MySQL DB instance no
longer available) to the moment gds_svc_start is completed on Node 2 (MySQL DB instance available again) = 56 sec. Here, the nearest equivalent fault injection message reported on Node 1 is that of the pnmd daemon exiting.
C.) Kill the database server process, and measure the restart time :
On the primary node (with all resources and db up), type :
# kill -9 <pid of mysqld>
Browse /var/adm/messages on Node 2 :
Node 2 :
Apr 14 03:36:30 v1280-137-04 Cluster.RGM.rgmd: [ID 784560 daemon.notice] resource mysql status on node v1280-137-04 change to R_FM_FAULTED
Node 2 :
Apr 14 03:37:20 v1280-137-04 Cluster.RGM.rgmd: [ID 515159 daemon.notice] method <gds_svc_start> completed successfully for resource <mysql>, resource group <mysql-rg>, node <v1280-137-04>, time used: 15% of timeout <300 seconds>
Failover time is the difference between the moment the fault is injected on Node 2 (MySQL DB instance no longer available) to the moment gds_svc_start is completed on the same node (MySQL DB instance available again) = 50 sec. Here, the nearest equivalent fault injection message reported on Node 1 is that of the resource status on Node 1 being faulted.
S/W fault regression test run
An internal regression test suite (developed by Sun's cluster team) was used to execute cluster regression tests. The suite comprises a set of s/w fault tests, and is automated. The kit s/w is installed onto a client machine. The client is configured to access the cluster, and invokes the tests.
Eg. client m/c is v490-240-01 :
On the cluster machines and on the client, add the 'dats' user, and install the test suite package (SUNWdats).
As root user, add in /etc/passwd :
dats:x:55556:10:DATS Test User:/opt/SUNWdats:/bin/ksh
Add (or exists) in /etc/group :
# pwconv
# su - dats
> cd /net/dv2.sfbay/vol/qevol/scqe/biweekly/24/lab/sparc/SUNWdats
> pkgadd -d . SUNWdats
in /.rhosts :
+ dats
v1280-137-03 +
v1280-137-04 +
Set PATH=/usr/sbin:/usr/bin:/opt/SUNWdats/tset_dataservice/bin
On the cluster nodes, correspondingly set /.rhosts :
+ dats
v1280-137-03 +
v1280-137-04 +
v490-240-01 +
On the client, supply input to generate the data services configuration file :
> cd /opt/SUNWdats/tset_dataservice/bin
> ./get_dsinfo
Enter the name of the output file : mysql-fault
Enter the name of one of the cluster nodes : v1280-137-03
Obtaining cluster configuration information. Please wait...
Do you want to run tests using New Command Set ? [y/n] : y
Select the Data Service Type
1) Failover dataservice with one resource group
2) Scalable dataservice with one Shared Address Resource group
and one Scalable Resource Group
3) Pre-created Resource Group Configuration
4) Other
Enter your selection : 3
Obtaining the registered Resource Group Names on the cluster. Please wait...
These are the registered Resource Groups on the cluster : mysql-rg
Which Resource Groups are needed for this dataservice ?
Enter the Resource Group Names.
End the list with a blank line.
Resource Group Name ? mysql-rg
Resource Group Name ?
You entered the following Resource Group Names :
Is this correct ? [y/n] : y
Obtaining the Resource Groups/Resources Properties. Please wait...
Processing Resource Group mysql-rg (failover)
Do you have a client program for Resource Group mysql-rg ? [y/n] : n
Resource sql-stor of SUNW.HAStoragePlus:4
Resource sql-stor of SUNW.HAStoragePlus:4 done
Resource v1280-logical of SUNW.LogicalHostname:2
Resource v1280-logical of SUNW.LogicalHostname:2 done
Resource mysql of SUNW.gds:6
Enter the application daemon processes.
End the list with a blank line.
Daemon Process Name ? mysqld
Daemon Process Name ?
You entered the following values
Is this correct ? [y/n] : y
Enter the fault monitor daemon processes.
End the list with a blank line.
Fault Monitor Daemon Process Name ? gds_probe
Fault Monitor Daemon Process Name ?
You entered the following values
Is this correct ? [y/n] : y
Resource mysql of SUNW.gds:6 done
Processing of Resource Group mysql-rg Done
Run the test suite :
> ./run_dats -f mysql-fault
The output results are logged into this directory, and indicate the status of each test along with the sub-commands executed :
The test suite comprises the following :
Non-Reboot tests :
1: Registration of Resource types for the data service
2: Creation of resource group(s) and resources
3: Bringing the resource group(s) online
# clrg online mysql-rg
4: Disabling Application resources
# clrg online -emM mysql-rg
# clrs disable mysql
5: Enabling Application resources
# clrs enable sql-stor
6: Taking the resource group(s) that contain the application resources offline
# clrg offline mysql-rg
7: Disabling the fault monitor for the application resources
# clrs unmonitor mysql
8: Enabling the fault monitor for the application resources
# clrs monitor mysql
9: Switchover of resource groups containing the application resources
10: Kill the application daemon process repeatedly to exceed the Retry_count within the Retry_interval. This should result in the restarting of the data service on the same node until Retry_count is reached, and failover of the data service after the subsequent kill attempt
# scrgadm -c -j mysql -y Retry_interval=1450
# scrgadm -c -g mysql-rg -y Pingpong_interval=360
# kill -9 <pid of mysqld> // repeat 2-3 times after mysqld restarts; failover should occur eventually
11: If the fault monitor daemon processes associated with a resource are killed, they should automatically be restarted
# kill -9 <pid of gds_probe>
12: Killing pnmd process should not affect the data service
13: Unmanage the resource group and manage it again
# clrs disable mysql
# clrs disable sql-stor
# clrs disable v1280-logical
# clrg offline mysql-rg
# clrg unmanage mysql-rg
Group: mysql-rg v1280-137-03 Unmanaged No
Group: mysql-rg v1280-137-04 Unmanaged No
# clrg manage mysql-rg
Group: mysql-rg v1280-137-03 Offline No
Group: mysql-rg v1280-137-04 Offline No
# clrs enable v1280-logical
# clrs enable sql-stor
# clrs enable mysql
14: Removing application resource
15: Removing the resource group
16: Removing the resource type
17: Check for the presence of the client program information
18: If a daemon process associated with a resource is killed, it should automatically be restarted
19: Rebooting the Primary Zone should not affect the availability of the dataservice. The resource groups/resources should failover to the next available potential Primary node/zone
Reboot tests :
1: Rebooting the primary node should not affect the availability of the data service
2: Killing rgmd on primary node should not affect the availability of the data service
3: Failback property of the resource group should work as expected
4: Check for the presence of the client program information
Uninstalling Sun Cluster
Check the Sun Cluster documentation for uninstalling Sun Cluster. The following is a brief procedure :
On Node 2, execute :
# scswitch -S -h v1280-137-04
# shutdown -g0 -y -i0
On Node 1, execute :
# scconf -c -q node=v1280-137-04,maintstate
# scstat -q
Node votes: v1280-137-04 0 0 Offline
# scconf -r -h node=v1280-137-04
If these messages appear :
scconf: Failed to remove node (v1280-137-04) - node is still cabled or otherwise in use.
scconf: Node "v1280-137-04" is still cabled.
scconf: Node "v1280-137-04" is still in use by quorum device "d2".
Then, execute these :
# clnode clear -F v1280-137-04
# scconf -r -h node=v1280-137-04
# scstat -n
Cluster node: v1280-137-03 Online
# reboot -- -x
# scinstall -r
On Node 2 :
> ok boot -x
Software links
- Solaris Cluster : http://www.sun.com/cluster
- Open Solaris : http://www.opensolaris.org
- MySQL Database : http://www.sun.com/mysql
- Solaris Cluster Data Service for MySQL Guide for Solaris OS : http://docs.sun.com/app/docs/doc/819-1088


text:
Fund Goal and Approach
The fund seeks as high a level of current income as is consistent with the preservation of capital.As a money market fund, the fund is subject to the maturity, quality, liquidity and diversification requirements of Rule 2a-7 under the Investment Company Act of 1940, as amended, which are designed to help money market funds maintain a stable share price of $1.00.
To pursue its goal, the fund normally invests in a diversified portfolio of high quality, short-term, dollar-denominated debt securities, including securities issued or guaranteed as to principal and interest by the U.S. government or its agencies or instrumentalities, certificates of deposit, time deposits, bankers' acceptances and other short-term securities issued by domestic or foreign banks or thrifts or their subsidiaries or branches, repurchase agreements, including triparty repurchase agreements, asset-backed securities, domestic and dollar-denominated foreign commercial paper and other short-term corporate obligations and obligations issued or guaranteed by one or more foreign governments or any of their political subdivisions or agencies.
Normally, the fund invests at least 25% of its net assets in domestic or dollar-denominated foreign bank obligations.
An investment in the fund is not insured or guaranteed by the Federal Deposit Insurance Corporation or any other government agency. Although the fund seeks to preserve the value of your investment at $1.00 per share, it is possible to lose money by investing in the fund.
Investors should consider the investment objectives, risks, charges, and expenses of the fund carefully before investing. Download a prospectus, or a summary prospectus, if available, that contains this and other information about the fund, and read it carefully before investing.
An investment in a money market fund is not insured or guaranteed for the Federal Deposit Insurance Corporation, or any other government agency. Although a money market fund seeks to preserve the value of your investment at $1.00 per share, it is possible to lose money by investing in a money market fund. As a measure of current income, seven-day yield is more reflective of the fund's income generating ability than total return. Yield fluctuates.


text:
Please enter a maximum of 5 recipients. Use ; to separate more than one email address.
CP crews are on the scene, and the spill is being contained. The derailment comes amid a surge in rail-shipped oil across North America, as US and Canadian production booms. That has heightened scrutiny over the safety of transporting increasing quantities of crude on the continent's railroads.
By CAROLINE VAN HASSELT
TORONTO -- A Canadian Pacific Railway train, bound for
Chicago and carrying Canadian crude, derailed in western
Minnesota Wednesday, spilling some of its load.
The amount of oil spilled initially appears to be small,
involving some of the contents of just four rail cars, the
company said. CP also said the spill had been contained and no
injuries were reported.
Still, the derailment comes amid a surge in rail-shipped oil
across North America, as US and Canadian production booms. That
has heightened scrutiny over the safety of transporting
increasing quantities of crude on the continent's
Ed Greenberg, a CP spokesman, said 14 cars of a 94-car train
derailed near Parkers Prairie, Minn. There were no injuries and
no public safety issues.
Four of the 14 derailed cars were ruptured, spilling some crude
oil, he said. The company didn't have an immediate estimate for
the amount of oil spilled.
CP crews are on the scene, and the spill is being contained,
he said. The cause of the derailment, which occurred at 7 a.m.
central time, is as yet unknown, Mr. Greenberg said.
The Otter Tail County sheriff's office said it was
The train originated from the Canadian province of Alberta.
Amid a surge in Canadian oil output and a lack of pipeline
capacity out of the landlocked province, producers and refiners
have increasingly turned to rail as an alternative way of
shipping oil to market.
Peters & Co., a Calgary consultancy, recently estimated
that rail shipments of western Canadian crude have leapt some
150%, to some 150,000 bpd in the last eight months.
US producers and refiners, meanwhile, have also turned to
railroads to make up for a lack of pipeline capacity out of the
US Midwest, where growing shale-oil production has triggered a
glut of crude.
Dow Jones Newswires
All comments are subject to editorial review.
All fields are compulsory.
Sign-up for the Free Daily HP Enewsletter!
A searchable database of project activity in the global hydrocarbon processing industry
Engineers and designers are highly skilled individuals. Forcing them to enter design changes using tables, forms and spreadsheets is unproductive and uneconomical, and it increases the likelihood of human error—this is the way that most instrumentation software systems currently work. For too long, software vendors have denied engineers and designers the simple practicality of a graphical visual engineering interface with "drag and drop" capability and inbuilt intelligence, ensuring changes are automatically replicated into all the associated data and databases.
Is 2016 the peak for US gasoline demand?
Too soon to tell
July 2016


text:
Faculty members at the University of Lethbridge are happy to involve undergraduate students in their research projects. Our faculty members often collaborate with other departments, community members and employers on research projects—giving you the opportunity to get additional hands-on experience.
© 2016 University of Lethbridge | 4401 University Drive, Lethbridge, Alberta T1K 3M4 | Web Privacy Statement | Contact Directory
Courses & Exams
Academic Support
Information Technology
The University of Lethbridge Pronghorns represent our campus in interuniversity sport. Go Horns!
visit horns.uleth.ca
State-of-the-art recreation facilities.
Schedules and programs