text:
- 800.878.7323
List price:
Used Hardcover
Ships in 1 to 3 days
More copies of this ISBN
This title in other editions
Other titles in the Sigma Force Novels series:
The Kill Switchby James Rollins
Synopses & Reviews
Publisher Comments:
Who does the U.S. government call upon when a mission requires perfect stealth, execution, and discretion?
From the two bestselling masters of action and political intrigue, James Rollins and Grant Blackwood, comes the first in a groundbreaking new series, featuring Captain Tucker Wayne and his stalwart military dog, Kane, both ripped from the pages of Sigma Force for their first solo adventure. It will take this uniquely talented pairing of man and beast to discover the earth-shattering truth behind . . .
The Kill Switch
The mission seems simple enough: extract a pharmaceutical magnate from Russian soil, a volatile man who holds the secret to a deadly bioweapon. But nothing is as it appears to be. A desperate call from Painter Crowe, director of Sigma Force, thrusts Tucker and Kane into a frantic race to rescue the brilliant-but-deluded Abram Bukolov from a cadre of skilled assassins, a deadly team backed by a shadowy Russian general, a figure bent on revenge and power.
Hunted and betrayed at every turn, Tucker and Kane must discover the truth behind a biological threat, a horror out of the ancient past that can be weaponized to terrorize the modern world. The journey of discovery will take the pair across the frozen steppes of Russia to the sun-blasted savannahs of South Africa, from the war-torn mountains of Namibia to the snowy Great Lakes of the United States.
As time rapidly runs out, the deep and intimate bond between dog and soldier will be tested to the extreme. It will take all of their skill, talent, and, most of all, trust in each other to piece together a mystery going back to the origins of life on Earth, to discover the key to an ancient peril that can destroy the heartland of America, and, with it, the world.
"This exceptional military thriller, a spin-off from bestseller Rollins's Sigma Force series (Bloodline, etc.), introduces U.S. Army Ranger Tucker Wayne and his four-footed partner, a small Belgian shepherd named Kane. After a short stint protecting a Russian billionaire, Tucker signs on with Sigma Force, a unit working for the ultra-secret Defense Advanced Research Projects Agency. His job is to smuggle pharmacological tycoon Abram Bukolov out of Russia. Bukolov's reasons for fleeing his country are murky, but it eventually becomes clear that he has the key to a virulent life form that has the potential to destroy all the plant life on Earth. Meanwhile, Gen. Artur Khazin of Russian military intelligence hires freelance mercenary Felice Nilsson to prevent Bukolov from escaping. The action careens across Russia and into South Africa, where Tucker and Kane must go underground to find the deadly life form. Rollins and Blackwood succeed brilliantly at depicting interspecies communication. Agent: Russell Galen, Scovil Galen Ghosh Literary Agency. (May)" Publishers Weekly (Starred Review) Copyright PWxyz, LLC. All rights reserved.
From bestselling authors James Rollins and Grant Blackwood, the first installment in an exciting new thriller series based on the Sigma Force novels featuring former Army Ranger Tucker Wayne and his partner, Army working dog Kane, introduced in the New York Times bestseller Bloodline and the e-original story "Tracker."
Former Army Ranger Tucker Wayne and his military working dog Kane are recruited by Sigma Force to extract a Russian pharmaceutical magnate from Siberia. A scientific genius, the drug tycoon holds the biological key to a new weapon system, a danger engineered from the ancient past to terrorize the modern world.
From the frozen steppes of Russia to the sun-blasted savannahs of Africa, Tucker and Kane must piece together a mystery going back to the origins of life on Earth—before the ancient peril can destroy the heartland of America, and with it, all of humankind.
About the Author
James Rollins is the New York Times bestselling author of thrillers that have been translated into forty languages. His Sigma series has been lauded as one of the "top crowd pleasers" (New York Times) and "hottest summer reads" (People magazine). Acclaimed for his originality, Rollins unveils unseen worlds, scientific breakthroughs, and historical secrets at breakneck speed.
What Our Readers Are Saying
Be the first to add a comment for a chance to win!
Product Details
Other books you might like
Related Subjects
Featured Titles » General


text:
NYC Parks Events Calendar
Get up, get out, and do something! Just about any day of the year, you can find something fun, informative, and healthy to enjoy at an area park. Feel free to browse the listings below, or use the search tools to find an event that matches your interests and location.
Viewing 1,151–1,160 out of 3,007 events
from October 8, 2015 to April 25, 2026
Saturday, November 14, 2015
It's My Park at Astoria Park
at Astoria Park, Queens
10:00 a.m.–12:00 p.m.
This It's My Park season, join the Astoria Park Alliance Park Stewards, in collaboration with New York Cares volunteers, to help care for Astoria Park.
Category: Volunteer, It's My Park
Harvest Fest and Leaf Crunch
at Friends of Van Cortlandt Park Compost Demo Site (in Van Cortlandt Park), Bronx
10:00 a.m.–1:00 p.m.
Harvest the last of the Friends of VCP's veggies, put the garden to bed for the winter, and crunch fall leaves to make compost.
Category: Volunteer
Get Active Hiking III: Seven Wonders Tour
at Friends of Van Cortlandt Park Compost Demo Site (in Van Cortlandt Park), Bronx
10:00 a.m.–1:00 p.m.
Hike Van Cortlandt Park's many trails while learning about the natural history of the area with the Friends of Van Cortlandt Park.
Category: Nature, Tours, Hiking
Birding: Raptor Migration
at Shore Parkway and Rabbi Block Street (in Calvert Vaux Park), Brooklyn
11:00 a.m.–12:30 p.m.
Our Rangers will guide you to the best wildlife viewing spots in the urban jungle. Birding programs are appropriate for all skill levels and beginners are welcome.
Category: Birding, Nature
Fall Foliage Hike: Cass Gallagher Trail
at Mosholu Avenue and Broadway (in Van Cortlandt Park), Bronx
11:00 a.m.–12:30 p.m.
Let our Urban Park Ranger naturalists explain why leaves change colors and introduce you to the diversity of trees found in our urban forests.
Category: Nature, Fall Foliage, Hiking
High Rock History Hike
at 200 Nevada Avenue (in High Rock Park), Staten Island
11:00 a.m.–12:30 p.m.
Go back in time with Greenbelt educators to learn about some of the natural and cultural history of High Rock and the surrounding area.
Category: Nature, History, Hiking
Exhibition: Alice Austen Everyday: A Photo Series Inspired by Place
at Alice Austen House Museum (in Alice Austen Park), Staten Island
11:00 a.m.–5:00 p.m.
Alice Austen's beloved home, Clear Comfort, was her muse and her window onto the world at the entrance to the New York Harbor. The vantage point from Clear Comfort is…
Introduction to Bird Watching
at Audubon Center at the Boathouse (in Prospect Park), Brooklyn
12:00 p.m.–1:00 p.m.
Look! Up in the sky, it's a bird! But what kind of bird is it? Join the Prospect Park Alliance to learn about the magnificent array of birds that call Prospect Park home.
Category: Birding, Nature
Learn to Play Soccer with Coach Victor Campbell
at St. Mary's Recreation Center (in St. Mary's Park), Bronx
12:00 p.m.–2:00 p.m.
Children and youth ages 6-12 years learn fundamental and advanced soccer skills.
Category: Kids, Sports
Ranger's Choice: Lenape Thanksgiving
at Inwood Hill Park, Manhattan
1:00 p.m.–2:30 p.m.
Tour historic Lenape sites and sample forest-sourced food items. Participants are chosen by lottery: Visit www.nyc.gov/parks/rangers/register on Wednesday, November 4th to register.
Category: Education, History, Thanksgiving, Food
Pages:< Prev1…113114115116117118119…301Next >
Related Information
- Get information on upcoming events directly in your inbox by signing up for our Email Newsletters.
- Know about an event that's not on the calendar? Send us a tip!
- Planning an event and considering hosting it in a park? Make sure to read our Planning an Event page.

subset: commoncrawl


text:
From Cookbooks to Products - Small Farmers Diversify to Survive
Farmer David Mas Masumoto knows his small peach orchard can't compete with the giant agribusinesses that dominate the nation's produce aisles.
So as he walks through his central California grove at harvest time, showing his two workers which trees to pick, his wife and daughter, Marcy and Nikiko, work a different side of the operation, preparing a recipe from the family's newly published cookbook.
They saute fresh peach slices in butter and brandy, then whip heavy cream and pour wholegrain batter into a waffle iron, creating one of the dozens of dishes from "The Perfect Peach."
"The cookbook," says Nikiko Masumoto, 27, who co-authored the book with her parents, "is a natural extension of what we've been trying to do for years on the farm: to use creative ways to share our story and galvanize people about our fruit."
Like the Masumotos, small-scale growers throughout the U.S. are looking for creative ways to set themselves apart as they find that survival requires more than just selling crops. Experts say these practices are shifting notions of how small farms operate. Since the little guys can't beat corporate giants on price or production, they're cashing in on something the big shots can't provide: an intimate, personal experience.
Across the nation, family businesses are capitalizing on small farm culture by selling products such as jam, olive oil and lemonade. They're also writing books, hosting dinners and renting rooms. The ventures allow the public to share the experience and flavor of small farm life.
"The opportunities for farmers are significant today, because many of us as eaters want to make the connection to the food system, the land and the farmer," says Craig McNamara, founder and president of the Center for Land-Based Learning in Winters, Calif., which trains and mentors new farmers.
In industry terms, it's called value-added agriculture, and statistics show the practice is growing. According to the most recent data available, farm operators generated $10 billion in 2007 from farm-related activities other than crop or livestock wholesale, an increase of nearly 80 percent from 2002.
Value-added agriculture projects are "a way to have a product to sell year-round, even during winter months," says Shermain Hardesty, leader of the small farm program at the University of California, Davis.
"It reinforces farmers' connection to consumers," says Hardesty, who teaches a popular class on the specialty food business. "And by getting involved in marketing their identities, they can expand their profitability."
The examples abound. Just south of Hood River, Ore., Draper Girls' Country Farm lets people pick their own fruit or rent a room, in addition to selling jams and jellies and cinnamon-sugar dried apples. The 40-acre farm also makes fresh non-pasteurized apple cider in its own mill.


text:
Ranked a top-10 gastroenterology specialty by U.S. News & World Report, the Division of Pediatric Gastroenterology and Nutrition is dedicated to providing the highest quality medical care and state-of-the-art techniques in the evaluation and treatment of gastrointestinal, liver, and nutritional disorders. We seek to prevent disease and advance medical treatment by following the tripartite mission of Johns Hopkins in providing excellence in patient care, research and education. Our Division includes 11 full-time and part-time physician faculty members in addition to nurses and nutritionists high specialized in caring for children with gastrointestinal and liver disorders. We are committed to family-focused care ensuring that the family is involved in all steps of the patient's diagnosis and treatment plan.
Patients who need hospitalization for GI conditions and surgery are cared for in The Charlotte R. Bloomberg Children's Center. The 205-bed building, which opened in 2012, features:
Easy access via front entrance or pedestrian bridge to Orleans Street Garage and our Rubenstein Child Health Building.
Among the conditions we treat:
Johns Hopkins Gastroenterology and Hepatology
North American Society for Pediatric Gastroenterology, Hepatology and Nutrition
Children's Digestive Health and Nutrition Foundation
October 02, 2015George J. Dover, M.D., Pediatric Residency Leadership Fund
September 22, 2015Radiothon Dollars at Work
September 20, 2015A One in a Million Superhero
July 29, 2015Small Study Affirms Accuracy of Free Mobile App That Screens for Liver Disease in Newborns
June 25, 2015Johns Hopkins Scientists Restore Normal Function in Heart Muscle Cells of Diabetic Rats
June 18, 2015Scientists Identify Amino Acid That Stops Seizures in Mice
1800 Orleans Street
Baltimore, MD 21287
(410) 955-5000
Find us on the web


text:
Cyclone bowfishing tip is spiraled for excellent penetration and strength. Heattreated and made of 400 series stainless steel.
Mfr Part: 7028
Would you like to be alerted when the item becomes available again?
Please enter your email address and quantity below andwe will send you an alert when the item becomes available.
Please note that alerted inventory is on a first come, first serve basis.


text:
From Wikipedia, the free encyclopedia
|This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. (March 2013)
ReaLemon is a brand of lemon juice from concentrate now manufactured by the Dr Pepper Snapple Group. ReaLemon was created in 1934 by Irving Swartzburg. ReaLime was introduced later as a brand of lime juice from concentrate. Both brands are noted for their distinctive packaging: ReaLemon is available in small plastic bottles in the shape and color of a lemon with a green cap, while ReaLime is available in bottles shaped and colored like a lime.
Mott's, which is part of The Dr Pepper Snapple Group, acquired ReaLemon and ReaLime from Eagle Family Foods in 2001.
- 1/4 cup ReaLemon = 1/4 cup fresh lemon juice (do not dilute)
- 1/4 cup ReaLime = 1/4 cup fresh lime juice (do not dilute)
- 3 tablespoons ReaLemon = the juice of 1 medium lemon (do not dilute)
- 2-3 tablespoons ReaLime = the juice of 1 medium lime (do not dilute)
|This brand-name food or drink product–related article is a stub. You can help Wikipedia by expanding it.


text:
Sign up to the telecoms.com daily newsletter and receive news and expert analysis direct to your inbox.
Join us for free webinars and online events featuring industry experts, both live and on-demand.
The http://t.co/QFcC3ARwY3 Daily is out! http://t.co/QItn72aWHH Stories via @ALU_Cloud @e2theb @TBImagazine
03 October 2015 @ 11:30:33 UTC
Operators urged to be positive as EU formally approves end of #roaming charges http://t.co/5Z5xaA1yDx #regulation
02 October 2015 @ 15:12:28 UTC


text:
Wim van DommelenProfessor Department of Language and Literature
email@example.com +47 73596527
Background and activities
- Production and perception of Norwegian as a second language
- Voice Onset Time (VOT) in Norwegian
- Forensic phonetics
Previous projects:
- From 2007 to 2011 I have been involved in the project Sound to Sense
van Dommelen, Wim A.; Hazan, Valerie (2011). Impact of speaker variability on speech perception in non-native listeners. Proceedings of the International Conference on Spoken Language Processing 2011, 885-888.
van Dommelen, Wim A.; Holm, Snefrid; Koreman, Jacques (2011). Dialectal feature imitation in Norwegian. I: Proceedings from The 17th International Congress of Phonetic Sciences. Hong Kong: City University of Hong Kong, 599-602.
Spilkova, Helena; van Dommelen, Wim A. (2011). Function words in read and spontaneous speech produced by L2 and L1 speakers. I: Achievements and perspectives in SLA of speech: New Sounds 2010. Peter Lang Publishing Group 2011, 253-266.
Spilkova, Helena; van Dommelen, Wim A. (2010). English 'of' in L1 and L2 speakers' read and spontaneous speech. Lund University. Department of Linguistics. Working Papers: General Linguistics, Phonetics, Volum 54, 91-96.
Spilkova, Helena; Brenner, Daniel; Öttl, Anton; Vondricka, Pavel; van Dommelen, Wim A.; Ernestus, Mirjam. (2010). The Kachna L1/L2 Picture Replication Corpus. I: Proceedings of the Seventh conference on International Language Resources and Evaluation (LREC'10). European Language Resources Association, 2432-2436.
Schuppler, Barbara; Ernestus, Mirjam; van Dommelen, Wim A.; Koreman, Jacques. (2010). Predicting human perception and ASR classification of word-final [t] by its acoustic sub-segmental properties. Proceedings of the International Conference on Spoken Language Processing, 2466-2469.
van Dommelen, Wim A.; Hazan, Valerie (2010). Perception of English consonants in noise by native and Norwegian listeners. Speech Communication, Volum 52, 968-979.
Cooke, Martin; Garcia Lecumberri, Maria Luisa; Scharenborg, Odette; van Dommelen, Wim A. (2010). Language-independent processing in speech perception: Identification of English intervocalic consonants by speakers of eight European languages. Speech Communication, Volum 52, 954-967.
Schuppler, Barbara; van Dommelen, Wim A.; Koreman, Jacques; Ernestus, Mirjam. (2009). Word-final [t]-deletion: An analysis on the segmental and sub-segmental level. Proceedings of the International Conference on Spoken Language Processing, 2275-2278.
Koreman, Jacques; Andreeva, Bistra; Barry, William J.; Sikveland, Rein Ove; van Dommelen, Wim A. (2009). Cross-language differences in the production of phrasal prominence in Norwegian and German. I: Nordic Prosody. Proceedings of the Xth Conference, Helsinki 2008. Peter Lang Publishing Group, 139-149.
Jin, Fufen; Åfarli, Tor Anders; van Dommelen, Wim A. (2009). Variability in the L2 acquisition of Norwegian DPs: An evaluation of some current SLA models. I: Second Language Acquisition of Articles. Empirical findings and theoretical implications. John Benjamins Publishing Company, 175-199.
Jin, Fufen; Åfarli, Tor Anders; van Dommelen, Wim A. (2009). Sensitivity to DP-Internal Agreement Violations in L2 Grammar. I: Proceedings of the 3rd Conference on Generative Approaches to Language Acquisition North America (GALANA 2008). Cascadilla Press, 116-126.
van Dommelen, Wim A.; Husby, Olaf Anders. (2009). Native and non-native identification of Norwegian word tones. I: Nordic Prosody. Proceedings of the Xth Conference, Helsinki 2008. Peter Lang Publishing Group, 237-247.
van Dommelen, Wim A.; Husby, Olaf Anders. (2009). Perception of Norwegian word tones by Chinese and German listeners. I: Recent Research in Second Language Phonetics/ Phonology: Perception and Production. Cambridge Scholars Publishing, 308-321.


text:
1126 Sunnyside Dr
A location in Cayce
Commute to Downtown St. Andrews
25 min 60+ min 60+ min View Routes
Almost all errands require a car.
Score Details
Something missing? Add a place
1126 Sunnyside Dr has a Walk Score of 16 out of 100. This location is a Car-Dependent neighborhood so almost all errands require a car.
Explore how far you can travel by car, bus, bike and foot from 1126 Sunnyside Dr.
Jessica Redmond
Real Estate Agent
13 client reviews
I'm considering:
Buying Selling
Thanks, your inquiry has been sent!
This address has been added to your favorites.


text:
- Total page hits/unique visits snippet
9 years 3 weeks ago
- Busy IRL, but happier than ever
9 years 4 weeks ago
- Drupal page titles like breadcrumbs
9 years 14 weeks ago
- Theming the Akismet spam counter
9 years 15 weeks ago
- Akismet module v1.1.2 for Drupal 4.7
9 years 15 weeks ago
MySQL QA Episode 4: QA Framework Setup Time!
Welcome to MySQL QA Episode 4! In this episode we'll look into setting up our QA Framework: percona-qa, pquery, reducer & more.
1. All about percona-qa
2. pquery
3. reducer.sh$ cd ~; bzr branch lp:randgen $ vi ~/randgen/util/reducer/reducer.sh
4. Short introduction to pquery framework tools
The tools introduced in this episode will be covered further in next two episodes.
Full-screen viewing @ 720p resolution recommended
To view the other episodes, you can watch the full series on YouTube:
Or checkout the MySQL QA Series Introduction which has an index & links to each episode!
The post MySQL QA Episode 4: QA Framework Setup Time! appeared first on MySQL Performance Blog.
MySQL QA Episode 3: How to use the debugging tool GDB
Welcome to MySQL QA Episode 3: "Debugging: GDB, Backtraces, Frames and Library Dependencies"
In this episode you'll learn how to use debugging tool GDB. The following debugging topics are covered:
1. GDB Introduction
2. Backtrace, Stack trace
3. Frames
4. Commands & Logging
5. Variables
6. Library dependencies
7. c++filt
8. Handy references
– GDB Cheat sheet (page #2): https://goo.gl/rrmB9i
– From Crash to testcase: https://goo.gl/3aSvVW
Also expands on live debugging & more. In HD quality (set your player to 720p!)
The post MySQL QA Episode 3: How to use the debugging tool GDB appeared first on MySQL Performance Blog.
TOI wsrep_RSU_method in PXC 5.6.24 and up
I noticed that in the latest release of Percona XtraDB Cluster (PXC), the behavior of wsrep_RSU_method changed somewhat. Prior to this release, the variable was GLOBAL only, meaning to use it you would:mysql> set GLOBAL wsrep_RSU_method='RSU'; mysql> ALTER TABLE ... mysql> set GLOBAL wsrep_RSU_method='TOI';
This had the (possibly negative) side-effect that ALL DDL's issued on this node would be affected by the setting while in RSU mode.
So, in this latest release, this variable was made to also have a SESSION value, while retaining GLOBAL as well. This has a couple of side-effects that are common to MySQL variables that are both GLOBAL and SESSION:
- The SESSION copy is made from whatever the GLOBAL's value is when a new connection (session) is established.
- SET GLOBAL does not affect existing connection's SESSION values.
Therefore, our above workflow would only set the GLOBAL value to RSU and not the SESSION value for the local connection. Therefore, our ALTER TABLE will be TOI and NOT RSU!
So, for those using RSU, the proper workflow would be to make your connection, set the SESSION copy of the variable and then issue your DDL:mysql> set SESSION wsrep_RSU_method='RSU'; mysql> ALTER TABLE ... ... disconnect ...
The advantage here is ONLY your session's DDLs will be affected by RSU (handy if you possibly do DDLs automatically from your application).
The post TOI wsrep_RSU_method in PXC 5.6.24 and up appeared first on MySQL Performance Blog.
Percona Server 5.5.44-37.3 is now available
Percona is glad to announce the release of Percona Server 5.5.44-37.3 on July 1, 2015. Based on MySQL 5.5.44, including all the bug fixes in it, Percona Server 5.5.44-37.3 is now the current stable release in the 5.5 series.
Percona Server is open-source and free. Details of the release can be found in the 5.5.44-37.3 milestone on Launchpad. Downloads are available here and from the Percona Software Repositories.
Bugs Fixed:
- Symlinks to libmysqlclient libraries were missing on CentOS 6. Bug fixed #1408500.
- RHEL/CentOS 6.6 OpenSSL package (1.0.1e-30.el6_6.9), containing a fix for CVE-2015-4000, changed the DH key sizes to a minimum of 768 bits. This caused an issue for MySQL as it uses 512 bit keys. Fixed by backporting an upstream 5.7 fix that increases the key size to 2048 bits. Bug fixed #1462856 (upstream #77275).
- innochecksum would fail to check tablespaces in compressed format. The fix for this bug has been ported from Facebook MySQL 5.1 patch. Bug fixed #1100652 (upstream #66779).
- Issuing SHOW BINLOG EVENTS with an invalid starting binlog position would cause a potentially misleading message in the server error log. Bug fixed #1409652 (upstream #75480).
- While using max_slowlog_size, the slow query log was rotated every time slow query log was enabled, not really checking if the current slow log is indeed bigger than max_slowlog_size or not. Bug fixed #1416582.
- If query_response_time_range_base variable was set as a command line option or in a configuration file, its value would not take effect until the first flush was made. Bug fixed #1453277 (Preston Bennes).
- Prepared XA transactions with update undo logs were not properly recovered. Bug fixed #1468301.
- Variable log_slow_sp_statements now supports skipping the logging of stored procedures into the slow log entirely with new OFF_NO_CALLS option. Bug fixed #1432846.
Other bugs fixed: #1380895 (upstream #72322).
(Please also note that Percona Server 5.6 series is the latest General Availability series and current GA release is 5.6.25-73.0.)
Release notes for Percona Server 5.5.44-37.3 are available in our online documentation. Bugs can be reported on the launchpad bug tracker.
The post Percona Server 5.5.44-37.3 is now available appeared first on MySQL Performance Blog.
Percona Server 5.6.25-73.0 is now available
Percona is glad to announce the release of Percona Server 5.6.25-73.0 on July 1, 2015. Download the latest version from the Percona web site or from the Percona Software Repositories.
Based on MySQL 5.6.25, including all the bug fixes in it, Percona Server 5.6.25-73.0 is the current GA release in the Percona Server 5.6 series. Percona Server is open-source and free – and this is the latest release of our enhanced, drop-in replacement for MySQL. Complete details of this release can be found in the 5.6.25-73.0 milestone on Launchpad.
New Features:
- Percona Server has implemented support for PROXY protocol. The implementation is based on a patch developed by Thierry Fournier.
Bugs Fixed:
- Symlinks to libmysqlclient libraries were missing on CentOS 6. Bug fixed #1408500.
- RHEL/CentOS 6.6 OpenSSL package (1.0.1e-30.el6_6.9), containing a fix for CVE-2015-4000, changed the DH key sizes to a minimum of 768 bits. This caused an issue for MySQL as it uses 512 bit keys. Fixed by backporting an upstream 5.7 fix that increases the key size to 2048 bits. Bug fixed #1462856 (upstream #77275).
- Some compressed InnoDB data pages could be mistakenly considered corrupted, crashing the server. Bug fixed #1467760 (upstream #73689) Justin Tolmer.
- innochecksum would fail to check tablespaces in compressed format. The fix for this bug has been ported from Facebook MySQL 5.6 patch. Bug fixed #1100652 (upstream #66779).
- Using concurrent REPLACE, LOAD DATA REPLACE or INSERT ON DUPLICATE KEY UPDATE statements in the READ COMMITTED isolation level or with the innodb_locks_unsafe_for_binlog option enabled could lead to a unique-key constraint violation. Bug fixed #1308016 (upstream #76927).
- Issuing SHOW BINLOG EVENTS with an invalid starting binlog position would cause a potentially misleading message in the server error log. Bug fixed #1409652 (upstream #75480).
- While using max_slowlog_size, the slow query log was rotated every time slow query log was enabled, not really checking if the current slow log is indeed bigger than max_slowlog_size or not. Bug fixed #1416582.
- Fixed possible server assertions when Backup Locks are used. Bug fixed #1432494.
- If query_response_time_range_base variable was set as a command line option or in a configuration file, its value would not take effect until the first flush was made. Bug fixed #1453277 (Preston Bennes).
- mysqld_safe script is now searching for libjemalloc.so.1 library, needed by TokuDB, in the basedir directory as well. Bug fixed #1462338.
- Prepared XA transactions could cause a debug assertion failure during the shutdown. Bug fixed #1468326.
- Variable log_slow_sp_statements now supports skipping the logging of stored procedures into the slow log entirely with new OFF_NO_CALLS option. Bug fixed #1432846.
- TokuDB HotBackup library is now automatically loaded with mysqld_safe script. Bug fixed #1467443.
Other bugs fixed: #1457113, #1380895, and #1413836.
Release notes for Percona Server 5.6.25-73.0 are available in the online documentation. Please report any bugs on the launchpad bug tracker .
The post Percona Server 5.6.25-73.0 is now available appeared first on MySQL Performance Blog.
Using Cgroups to Limit MySQL and MongoDB memory usage
Quite often, especially for benchmarks, I am trying to limit available memory for a database server (usually for MySQL, but recently for MongoDB also). This is usually needed to test database performance in scenarios with different memory limits. I have physical servers with the usually high amount of memory (128GB or more), but I am interested to see how a database server will perform, say if only 16GB of memory is available.
And while InnoDB usually respects the setting of innodb_buffer_pool_size in O_DIRECT mode (OS cache is not being used in this case), more engines (TokuDB for MySQL, MMAP, WiredTiger, RocksDB for MongoDB) usually get benefits from OS cache, and Linux kernel by default is generous enough to allocate as much memory as available. There I should note that while TokuDB (and TokuMX for MongoDB) supports DIRECT mode (that is bypass OS cache), we found there is a performance gain if OS cache is used for compressed pages.
Well, an obvious recommendation on how to restrict available memory would be to use a virtual machine, but I do not like this because virtualization does come cheap and usually there are both CPU and IO penalties.
Other popular options I hear are:
- to use "mem=" option in a kernel boot line. Despite the fact that it requires a server reboot by itself (so you can't really script this and leave for automatic iterations through different memory options), I also suspect it does not work well in a multi-node NUMA environment – it seems that a kernel limits memory only from some nodes and not from all proportionally
- use an auxiliary program that allocates as much memory as you want to make unavailable and execute mlock call. This option may work, but I again have an impression that the Linux kernel does not always make good choices when there is a huge amount of locked memory that it can't move around. For example, I saw that in this case Linux starts swapping (instead of decreasing cached pages) even if vm.swappiness is set to 0.
Another option, on a raising wave of Docker and containers (like LXC), is, well, to use docker or another container… put a database server inside a container and limit resources this way. This, in fact, should work, but if you are lazy as I am, and do not want to deal with containers, we can just use Cgroups (https://en.wikipedia.org/wiki/Cgroups), which in fact are extensively used by mentioned Docker and LXC.
Using cgroups, our task can be accomplished in a few easy steps.
1. Create control group: cgcreate -g memory:DBLimitedGroup (make sure that cgroups binaries installed on your system, consult your favorite Linux distribution manual for how to do that)
2. Specify how much memory will be available for this group:
echo 16G > /sys/fs/cgroup/memory/DBLimitedGroup/memory.limit_in_bytesThis command limits memory to 16G (good thing this limits the memory for both malloc allocations and OS cache)
3. Now, it will be a good idea to drop pages already stayed in cache:
sync; echo 3 > /proc/sys/vm/drop_caches
4. And finally assign a server to created control group:
This will assign a running mongod process to a group limited by only 16GB memory.
On this, our task is accomplished… but there is one more thing to keep in mind.
This are dirty pages in the OS cache. As long as we rely on OS cache, Linux will control writing from OS cache to disk by two variables:
/proc/sys/vm/dirty_background_ratio and /proc/sys/vm/dirty_ratio.
These variables are percentage of memory that Linux kernel takes as input for flushing of dirty pages.
Let's talk about them a little more. In simple terms:
/proc/sys/vm/dirty_background_ratio which by default is 10 on my Ubuntu, meaning that Linux kernel will start background flushing of dirty pages from OS cache, when amount of dirty pages reaches 10% of available memory.
/proc/sys/vm/dirty_ratio which by default is 20 on my Ubuntu, meaning that Linux kernel will start foreground flushing of dirty pages from OS cache, when amount of dirty pages reaches 20% of available memory. Foreground means that user threads executing IO might be blocked… and this is what will cause IO stalls for a user (and we want to avoid at all cost).
Why this is important to keep in mind? Let's consider 20% from 256GB (this is what I have on my servers), this is 51.2GB, which database can make dirty VERY fast in write intensive workload, and if it happens that server has a slow storage (HDD RAID or slow SATA SSD), it may take long time for Linux kernel to flush all these pages, while stalling user's IO activity meantime.
So it is worth to consider changing these values (or corresponding /proc/sys/vm/dirty_background_bytes and /proc/sys/vm/dirty_bytes if you like to operate in bytes and not in percentages).
Again, it was not important for our traditional usage of InnoDB in O_DIRECT mode, that's why we did not pay much attention before to Linux OS cache tuning, but as soon as we start to rely on OS cache, this is something to keep in mind.
Finally, it's worth remembering that dirty_bytes and dirty_background_bytes are related to ALL memory, not controlled by cgroups. It applies also to containers, if you are running several Docker or LXC containers on the same box, dirty pages among ALL of them are controlled globally by a single pair of dirty_bytes and dirty_background_bytes.
It may change it future Linux kernels, as I saw patches to apply dirty_bytes and dirty_background_bytes to cgroups, but it is not available in current kernels.
The post Using Cgroups to Limit MySQL and MongoDB memory usage appeared first on MySQL Performance Blog.
Playing with Percona XtraDB Cluster in Docker
Like any good, thus lazy, engineer I don't like to start things manually. Creating directories, configuration files, specify paths, ports via command line is too boring. I wrote already how I survive in case when I need to start MySQL server (here). There is also the MySQL Sandbox which can be used for the same purpose.
But what to do if you want to start Percona XtraDB Cluster this way? Fortunately we, at Percona, have engineers who created automation solution for starting PXC. This solution uses Docker. To explore it you need:
- Clone the pxc-docker repository:
git clone https://github.com/percona/pxc-docker
- Install Docker Compose as described here
- cd pxc-docker/docker-bld
- Follow instructions from the README file:
a) ./docker-gen.sh 5.6 (docker-gen.sh takes a PXC branch as argument, 5.6 is default, and it looks for it on github.com/percona/percona-xtradb-cluster)
b) Optional: docker-compose build (if you see it is not updating with changes).
c) docker-compose scale bootstrap=1 members=2 for a 3 node cluster
- Check which ports assigned to containers:
$docker port dockerbld_bootstrap_1 3306 0.0.0.0:32768 $docker port dockerbld_members_1 4567 0.0.0.0:32772 $docker port dockerbld_members_2 4568 0.0.0.0:32776
Now you can connect to MySQL clients as usual:
$mysql -h 0.0.0.0 -P 32768 -uroot Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 10 Server version: 5.6.21-70.1 MySQL Community Server (GPL), wsrep_25.8.rXXXX Copyright (c) 2009-2015 Percona LLC and/or its affiliates Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
- To change MySQL options either pass it as a mount at runtime with something like volume: /tmp/my.cnf:/etc/my.cnf in docker-compose.yml or connect to container's bash (docker exec -i -t container_name /bin/bash), then change my.cnf and run docker restart container_name
- If you don't want to build use ready-to-use images
- If you don't want to run Docker Compose as root user add yourself to docker group
The post Playing with Percona XtraDB Cluster in Docker appeared first on MySQL Performance Blog.
Practical MySQL Performance Optimization (July 2 webinar)
Applications often become impacted by MySQL performance. Optimization is the obvious solution but where to start? Join me on July 2 at 11 a.m. Pacific and I'll show you how to optimize MySQL in a practical way – spending time on what gives you the best return. Many of you have heard me talk on this topic before and this updated presentation will get you up to speed on the latest areas to consider when improving MySQL performance.
I'll be pointing out the most important things you need to get right for each of the following:
- Hardware
- MySQL Configuration
- Schema and Queries
- Application Architecture
I'll also share some tools and techniques to focus on the queries most important for your application. At the end of this webinar, aptly titled "Practical MySQL Performance Optimization," you will know how to optimize MySQL performance in a practical way to ensure our system is "good enough" in terms of responsiveness, efficiency and scalability.
I hope to see you there! Register now to reserve your spot.
The post Practical MySQL Performance Optimization (July 2 webinar) appeared first on MySQL Performance Blog.
Tips for avoiding malware from a lesson learned
In a recent article on the Percona blog, I recommended readers to a tool called CamStudio for making technical screen recordings. The blog post was very popular and got 300+ Facebook likes in a short time. Providentially though, a reader commented that the installer (as downloaded from the project website) installed "pretty annoying adware on [his] PC."
As I had been using a slightly dated installer, which did not show this issue, I started looking into the reader's claims. Besides finding that the reader was correct in his claims about the project website's installer, I found that even the installer from sourceforge.com (a well known open source download site) had a significant amount of adware in it.
However, the worst had yet to come. Reading through the CamStudio forum on SourceForge, I found out that the CamStudio binaries had apparently been plagued by adware and possibly also viruses and malware. I am however always somewhat suspicious of such reports; consider for example that CamStudio's competitor TechSmith sells a very similar product (originally based on the same source code I believe) at $299 US per license. Not saying it happened, but one can easily see why competing companies may try to eliminate the open source/free competition.
Still, being cautious, I ran my older original installer (which did not have the adware issues) through virustotal.com, a Google service I learned about during this 'adventure'. "Guess what" my daughter would say. It had a malware Trojan (Trojan.Siggen6.33552) in it which had only been discovered by a anti-virus software company last April, and only one in 56 virus scanners picked it up according to https://www.virustotal.com! Once the situation was clear, I immediately removed the blog post!
Clearly this was turning out not to be my day. Reading up on this Trojan proved that it was 'designed for installation of another malware'. Given that Trojan.Siggen6.33552 had only been discovered in April, and given that it may have been installing other malware as per the anti-virus company who discovered it, I quickly decided to reinitialize my Windows PC. Better safe then sorry.
As I mentioned to my colleague David Busby, when you have something happen like this, you become much more security conscious! Thus, I did a review of my network security and was quite amazed at what I found, especially when compared with online security reports.
For example, we have uPnP (universal plug and play) on our routers, Skype automatically installs a (quite wide) hole in the Windows Firewall (seemingly even where it is not necessary), and we allow all 3rd party cookies in all our browsers. One would think this is all fine, but it makes things more easy for attackers!
Besides virustotal.com, David showed me https://malwr.com – another great resource for analysing potential malwares.
Did you know that with the standard Skype settings, someone can easily work out your IP address? Don't believe it? If you're on Windows, go to Skype > Tools > Options > Advanced > Connection and hover your mouse over the blue/white question mark after 'Allow direct connections to your contacts only'. You'll see that it says "When you call someone who isn't a contact, we'll keep your IP address hidden. This may delay your call setup time." And apparently on Linux this option is not even directly available (more info here).
So, for example, to make Skype more secure I did 1) untick 'use port 80 and 443 for additional incoming connections', 2) setup a fixed port and punched a hole in the Windows firewall just for that port, for a specific program, a specific user, and for a specific IP range (much more restricted than the wide hole that was already there), 3) Removed the "Skype rule" which seemingly was placed there by the Skype installer, 4) Disabled uPnP on my router, 5) Disabled Skype from using uPnP, 6) Ticked 'Allow direct connections to your contacts only'. Phewy. (Note that disabling uPnP (being a convenience protocol) can lead to some issues with smartTV's / consoles / mobile phone apps if disabled.)
All our networking & software setup these days is mostly about convenience.
Further reviewing the Windows firewall rules, I saw many rules that could be either removed or tied down significantly. It was like doing QA on my own network (phun intended :). The same with the router settings. Also did a router firmware upgrade, and installed the latest Windows security patches. All of the sudden that previously-annoying 'we'll just shut down your pc to install updates, even if you had work open' feature in Windows seemed a lot more acceptable (I now have a one-week timeout for automatic restarts).
For the future ahead, when I download third party utilities (open source or not), I will almost surely run them through virustotal.com – a fantastic service by Google. It's quite quick and easy to do; download, upload, check. I also plan to once in a while review Windows firewall rules, program security settings (especially for browsers and tools like Skype etc.), and see if there are Windows updates etc.
The most surprising thing of all? Having made all these security restrictions has given me 0% less functionality thus far.
Maybe it is indeed time we wake up about security.
The post Tips for avoiding malware from a lesson learned appeared first on MySQL Performance Blog.
Oracle license revenue and the MySQL ecosystem
Oracle was in the news recently with the story of its license revenue declining as much as 17% in the recent quarter. This is blamed on transitioning to the cloud in some publications, but others, such as Bloomberg and TechRepublic, look deeper, seeing open source software responsible for the bulk of it.
Things are especially interesting in the MySQL ecosystem, as Oracle both owns its traditional "Enterprise" Oracle database and MySQL – a more modern open source database.
At Percona we see the same story repeating among many of our enterprise customers:
- MySQL proves itself. This generally happens one of two ways. One is for the enterprise using traditional enterprise databases, such as Oracle or DB2, to acquire a company which has been built on MySQL. After the dust settles the CFO or CIO discovers that the acquired company has been successfully running business-critical operations with MySQL and spending hundreds of thousands of dollars on database support instead of tens of millions. At this point it's been shown that it can be done, so it should continue.
The other way is for MySQL to rise through the ranks in an organization. Typically it starts with some small MySQL use, such as running a bug tracking application in the IT department. Then it moves to MySQL being used with Drupal to power the main corporate website and an e-commerce function with Magento or something similar. Over time, MySQL proves itself and is trusted to handle more and more "core" enterprise databases that are absolutely critical for the business.
Interestingly enough, contrary to what some people have said, MySQL ownership by Oracle helps it to gain trust with many enterprise accounts. Enterprises may not like Oracle's license and maintenance fees, but they like Oracle's quality engineering, attention to security and predictable releases.
- New applications are built using MySQL. As the enterprise is ready to embrace MySQL it is added to the approved database list and now internal teams can use it to develop applications. In many cases the mandate goes even further with MySQL than with other open source technologies, as it is given preference, and teams need to really justify to management when they want to use Oracle or other proprietary database technologies. There are some cases when that may be warranted, but in most cases MySQL is good enough.
- Moving existing applications from Oracle to MySQL. Depending on the organization and applications it can happen a couple of different ways. One is the equivalent applications are built from scratch on the new open source technology stack and the old application is retired. The other is only the database is migrated from Oracle to MySQL. Moving the database from Oracle to MySQL might be easy and might be close to a full application rewrite. For example, we see Java applications which often use the database as a simple data store through the ORM framework which can be moved to MySQL easily; on the other hand, applications built with extensive use of advanced stored procedures and Oracle-specific SQL extensions are much harder to move.
The wave of moving to open source database technologies will continue and we're not alone in thinking that – Gartner believes that by 2018, 70% of new in-house applications will be built on open source database systems.
What are we currently seeing in the MySQL ecosystem? First, many customers tell us that they are looking at hefty price increases for MySQL support subscriptions. Some of the customers which had previously signed 5 year agreements with Sun (at the time it was acquired by Oracle) who are exploring renewing now, see price increases as much as 5x for a comparable environment. This is very understandable considering the pressures Oracle has on the market right now.
The issues, however, go deeper than the price. Many customers are not comfortable trusting Oracle to give them the best possible advice for moving from expensive Oracle to a much less expensive Oracle MySQL database. The conflicts are obvious when the highest financial reward comes to Oracle by proving applications can't be moved to MySQL or any other open source database.
If you're choosing MySQL, Oracle is financially interested in having you use the Enterprise Edition, which brings back many of the vendor lock-in issues enterprises are trying to avoid by moving to open source databases. Customers believe Oracle will ensure enterprise-only features are put in use in the applications, making it difficult to avoid renewing at escalating prices.
So what do our customers see in Percona which makes them prefer our support and other services to those of Oracle?
- We are a great partner if you're considering moving from the Oracle database to MySQL as we both have years of experience and no conflict of interest.
- Percona Server, Percona XtraDB Cluster, Percona Xtrabackup and our other software for the MySQL ecosystem is 100% open source, which means we're not trying to lock you into the "enterprise version" as we work together. Furthermore, many of the features which are only available in MySQL Enterprise Edition are available in the fully open source Percona Server, including audit, backup and authentication.
- We are focused on solutions for your business, not pushing Percona-branded technology. If you choose to use Percona Server, great! If you are using MySQL, MariaDB, Amazon RDS, etc., that's great too.
With the continuing trend of moving to open source database management systems the cost pressures on people running proprietary databases will continue to increase, and the only real solution is to accelerate moving to the open source stack. As you do that, you're better off moving to completely open source technology, such as what is available from Percona, to avoid vendor lock-in. If you're looking for the partner to help you to assess the migration strategy and execute the move successfully, check for conflicts of interests and ensure the interests of your and your provider are completely aligned.
The post Oracle license revenue and the MySQL ecosystem appeared first on MySQL Performance Blog.
Percona XtraDB Cluster (PXC): How many nodes do you need?
A question I often hear when customers want to set up a production PXC cluster is: "How many nodes should we use?"
Three nodes is the most common deployment, but when are more nodes needed? They also ask: "Do we always need to use an even number of nodes?"
This is what we'll clarify in this post.This is all about quorum
I explained in a previous post that a quorum vote is held each time one node becomes unreachable. With this vote, the remaining nodes will estimate whether it is safe to keep on serving queries. If quorum is not reached, all remaining nodes will set themselves in a state where they cannot process any query (even reads).
To get the right size for you cluster, the only question you should answer is: how many nodes can simultaneously fail while leaving the cluster operational?
- If the answer is 1 node, then you need 3 nodes: when 1 node fails, the two remaining nodes have quorum.
- If the answer is 2 nodes, then you need 5 nodes.
- If the answer is 3 nodes, then you need 7 nodes.
- And so on and so forth.
Remember that group communication is not free, so the more nodes in the cluster, the more expensive group communication will be. That's why it would be a bad idea to have a cluster with 15 nodes for instance. In general we recommend that you talk to us if you think you need more than 10 nodes.What about an even number of nodes?
The recommendation above always specifies odd number of nodes, so is there anything bad with an even number of nodes? Let's take a 4-node cluster and see what happens if nodes fail:
- If 1 node fails, 3 nodes are remaining: they have quorum.
- If 2 nodes fail, 2 nodes are remaining: they no longer have quorum (remember 50% is NOT quorum).
Conclusion: availability of a 4-node cluster is no better than the availability of a 3-node cluster, so why bother with a 4th node?
The next question is: is a 4-node cluster less available than a 3-node cluster? Many people think so, specifically after reading this sentence from the manual:
Clusters that have an even number of nodes risk split-brain conditions.
Many people read this as "as soon as one node fails, this is a split-brain condition and the whole cluster stop working". This is not correct! In a 4-node cluster, you can lose 1 node without any problem, exactly like in a 3-node cluster. This is not better but not worse.
By the way the manual is not wrong! The sentence makes sense with its context.
There could actually reasons why you might want to have an even number of nodes, but we will discuss that topic in the next section.Quorum with multiple data centers
To provide more availability, spreading nodes in several datacenters is a common practice: if power fails in one DC, nodes are available elsewhere. The typical implementation is 3 nodes in 2 DCs:
Notice that while this setup can handle any single node failure, it can't handle all single DC failures: if we lose DC1, 2 nodes leave the cluster and the remaining node has not quorum. You can try with 4, 5 or any number of nodes and it will be easy to convince yourself that in all cases, losing one DC can make the whole cluster stop operating.
If you want to be resilient to a single DC failure, you must have 3 DCs, for instance like this:
Sometimes other factors will make you choose a higher number of nodes. For instance, look at these requirements:
- All traffic is directed to a single node.
- The application should be able to fail over to another node in the same datacenter if possible.
- The cluster must keep operating even if one datacenter fails.
The following architecture is an option (and yes, it has an even number of nodes!):
Regarding availability, it is easy to estimate the number of nodes you need for your PXC cluster. But node failures are not the only aspect to consider: Resilience to a datacenter failure can, for instance, influence the number of nodes you will be using.
The post Percona XtraDB Cluster (PXC): How many nodes do you need? appeared first on MySQL Performance Blog.
Percona Monitoring Plugins 1.1.5 release
Percona is glad to announce the release of Percona Monitoring Plugins 1.1.5.
- Added more DB instance classes to pmp-check-aws-rds.py (issue 1398911)
- Added configurable query period and average time to pmp-check-aws-rds.py (issue 1436943)
- Added region support to pmp-check-aws-rds.py (issue 1442980)
- Added an option to alert when server is not configured as replica to pmp-check-mysql-replication-delay (issue 1357017)
- Added an option to specify master connection to monitor MariaDB multi-source replication
- Improved usage of lock-free SHOW SLAVE STATUS query (issue 1380690)
- Fixed reporting of slave lag in ss_get_mysql_stats.php (issue 1389769)
We have also moved the code to Github https://github.com/percona/percona-monitoring-plugins but the bug tracker is still on Launchpad https://bugs.launchpad.net/percona-monitoring-plugins.
A new tarball is available from downloads area or in packages from our software repositories. The plugins are fully supported for customers with a Percona Support contract and free installation services are provided as part of some contracts. In addition as part of Percona's Remote DBA installation and setup of these tools are included with our services. You can find links to the documentation, forums and more at the project homepage.
About Percona Monitoring Plugins
Percona Monitoring Plugins are high-quality components to add enterprise-grade MySQL monitoring and graphing capabilities to your existing in-house, on-premises monitoring solutions. The components are designed to integrate seamlessly with widely deployed solutions such as Nagios, Cacti and Zabbix.
The post Percona Monitoring Plugins 1.1.5 release appeared first on MySQL Performance Blog.
Q&A: High availability when using MySQL in the cloud
Last week I hosted a webinar on using MySQL in the cloud for High Availability (HA) alongside 451 Research analyst Jason Stamper. You can watch the recording and also download the slides (free) here. Just click the "Register" button at the end of that page.
We had several excellent questions and we didn't have time to get to several of them in the allotted time. I'm posting them here along with the answers. Feel free to ask follow-up questions in the comments below.
Q: Can the TokuDB engine be used in a PXC environment?
A: No, TokuDB cannot currently be used in a PXC environment, the only supported engine in Percona XtraDB Cluster 5.6 is InnoDB.
Q: With Galera replication (PXC), is balancing the load on each node?
A: No, you need to implement your own load balancing and HA layer between your clients and the Percona XtraDB Cluster server. Examples mentioned in the webinar include HAProxy and F5 BigIP.
Q: What's the best version of Percona XtraDB Cluster regarding InnoDB performance?
A: In general for best performance you should be using the latest release of Percona XtraDB Cluster 5.6, which is currently 5.6.24, released on June 3rd, 2015.
Q: Can I redirect my writes in Percona XtraDB Cluster to multiple nodes using the HAProxy? While trying with SysBench I can see write-only goes to first nodes in PXC while reads does goes to multiple nodes.
A: Yes you can configure HAProxy to distribute both reads and writes across all of your nodes in a Percona XtraDB Cluster environment. Perhaps SysBench created only one database connection for all writes, and so haproxy kept those confined to only one host. You may want to experiment with parallel_prepare.lua.
Q: What's the optimal HA for small datasets (db is less than 10gb)?
A: The optimal HA deployment for small datasets would be dependent on your level of recovery required (tolerance for loss of transactions) and time that you can be in an unavailable state (seconds, minutes, hours?). Unfortunately there isn't a single answer to your question, however, if you are interested in further discussion on this point Percona would be happy to coordinate a time to speak. Please feel free to contact me directly and we can continue the conversation at firstname.lastname@example.com.
Q: Is there a concept of local master vs. remote master with PXC?
A: No there is no concept of local vs remote master. All nodes in a Percona XtraDB Cluster can now be classified as Master, regardless of their proximity to the clients.
Q: Are there any concerns when considering AWS RDS or AURORA DB for MySQL HA in the Cloud?
A: Regarding AWS RDS, yes this a good option for MySQL HA in the Cloud. I unfortunately haven't worked with Aurora DB that much yet so I don't have an opinion on it's suitability for HA in the Cloud.
Q: We tried out PXC awhile back and it used to lock everything whenever any ddl was done. Has that changed?
A: We would have to look at the specifics of your environment, however, there have been numerous improvements in the 1½ years of development since Percona XtraDB Cluster went Generally Available (GA) on January 30th, 2014 in version 5.6.15.
Q: Is using the arbitrator a must?
A: No the arbitrator role via the garbd daemon is generally only used when operating in a minimal environment of two nodes that contain the data and you need a third node for quorum but don't want to store the data a third time.
Q: Can we do a cluster across different zones?
A: Yes you can. However be aware that the latency incurred for all cluster certification operations will be impacted by the round trip time between nodes.
Q: Does PXC also support the MyISAM database?
A: No, Percona XtraDB Cluster does not support any storage engine other than InnoDB as of PXC 5.6.
Q: How do load balancers affect the throughput in a Galera-based setup given that the write would be limited by the slowest node?
A: Load balancers will introduce some measure of additional latency in the form of CPU time in the load balancer layer as it evaluates its own ruleset, and also in network time due to additional hop via load balancer. Otherwise there should be no perceptible difference in the write throughput of a Percona XtraDB Cluster with and without a load balancer as it relates to the "slowest node" factor.
Q: Have you used MaxScale yet? If so, what are your thoughts?
A: Unfortunately I haven't used MaxScale however Yves Trudeau, Percona Principal Architect, has recently written about MaxScale in this blog post.
Q: How do you configure timeout and maintain persistent connection to HAProxy?
A: I would encourage you to refer to the HAProxy Documentation.
The post Q&A: High availability when using MySQL in the cloud appeared first on MySQL Performance Blog.
Getting EXPLAIN information from already running queries in MySQL 5.7
When a new version of MySQL is about to be released we read a lot of blog posts about the performance and scalability improvements. That's good but sometimes we miss some small features that can help us a lot in our day-to-day tasks. One good example is the blog post that Aurimas wrote about a new small feature in MySQL 5.6 that I didn't know about until I read it: the Automatic InnoDB transaction log file size change. How cool is that?
I plan to write a series of blog posts that will show some of those small new features in MySQL 5.7 that are going to be really useful. I'm going to start with EXPLAIN FOR CONNECTION.
This feature allows us to run an EXPLAIN for an already running statement. Let's say that you find a query that has been running for a long time and you want to check why that could be happening. In 5.7 you can just ask MySQL to EXPLAIN the query that a particular connection is running and get the execution path. You can use it if the query is a SELECT, DELETE, INSERT, REPLACE or UPDATE. Won't work if the query is a prepared statement though.
Let me show you an example of how it works.
We have a long running join.mysql [localhost] {msandbox} ((none)) > show processlist G *************************** 1. row *************************** Id: 9 User: msandbox Host: localhost db: employees Command: Query Time: 49 State: Sending data Info: select count(*) from employees, salaries where employees.emp_no = salaries.emp_no
Let's see the execution plan for the query:mysql [localhost] {msandbox} ((none)) > explain for connection 9 G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: employees partitions: NULL type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 299540 filtered: 100.00 Extra: NULL *************************** 2. row *************************** id: 1 select_type: SIMPLE table: salaries partitions: NULL type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 2803840 filtered: 100.00 Extra: Using where; Using join buffer (Block Nested Loop)
The join between those tables is not using any index at all so there is some room for improvement hereConclusion
You can use this feature to see why a query is running for too long and based on the info decide how to fix it and how to proceed. This is going to be a very useful feature for DBAs who want to diagnose performance problems and slow queries.
The post Getting EXPLAIN information from already running queries in MySQL 5.7 appeared first on MySQL Performance Blog.
Update on the InnoDB double-write buffer and EXT4 transactions
In a post, written a few months ago, I found that using EXT4 transactions with the "data=journal" mount option, improves the write performance significantly, by 55%, without putting data at risk. Many people commented on the post mentioning they were not able to reproduce the results and thus, I decided to further investigate in order to find out why my results were different.
So, I ran sysbench benchmarks on a few servers and found when the InnoDB double-write buffer limitations occur and when they don't. I also made sure some of my colleagues were able to reproduce the results. Basically, in order to reproduce the results you need the following conditions:
- Spinning disk (no SSD)
- Enough CPU power
- A dataset that fits in the InnoDB buffer pool
- A continuous high write load with many ops waiting for disk
Using the InnoDB double write buffer on an SSD disk somewhat prevents us from seeing the issue, something good performance wise. That comes from the fact that the latency of each write operation is much lower. That makes sense, the double-writer buffer is an area of 128 pages on disk that is used by the write threads. When a write thread needs to write a bunch of dirty pages to disk, it first writes them sequentially to free slots in the double write buffer in a single iop and then, it spends time writing the pages to their actual locations on disk using typically one iop per page. Once done writing, it releases the double-write buffer slots it was holding and another thread can do its work. The presence of a raid controller with a write cache certainly helps, at least until the write cache is full. Thus, since I didn't tested with a raid controller, I suspect a raid controller write cache will delay the apparition of the symptoms but if the write load is sustained over a long period of time, the issue with the InnoDB double write buffer will appear.
So, to recapitulate, on a spinning disk, a write thread needs to hold a lock on some of the double-write buffer slots for at least a few milliseconds per page it needs to write while on a SSD disk, the slots are released very quickly because of the low latency of the SSD storage. To actually stress the InnoDB double-write buffer on a SSD disk, one must push much more writes.
That leads us to the second point, the amount of CPU resources available. At first, one of my colleague tried to reproduce the results on a small EC2 instance and failed. It appeared that by default, the sysbench oltp.lua script is doing quite a lot of reads and those reads saturate the CPU, throttling the writes. By lowering the amount of reads in the script, he was then able to reproduce the results.
For my benchmarks, I used the following command:
sysbench --num-threads=16 --mysql-socket=/var/lib/mysql/mysql.sock
--mysql-database=sbtest --mysql-user=root
--test=/usr/share/doc/sysbench/tests/db/oltp.lua --oltp-table-size=50000000
--oltp-test-mode=complex --mysql-engine=innodb --db-driver=mysql
--report-interval=60 --max-requests=0 --max-time=3600 run
Both servers used were metal boxes with 12 physical cores (24 HT). With less CPU resources, I suggest adding the following parameters:
So that the CPU is not wasted on reads and enough writes are generated. Remember we are not doing a generic benchmarks, we are just stressing the InnoDB double-write buffer.
In order to make sure something else isn't involved, I verified the following:
- Server independence, tried on 2 physical servers and one EC2 instance, Centos 6 and Ubuntu 14.04
- MySQL provided, tried on MySQL community and Percona Server
- MySQL version, tried on 5.5.37 and 5.6.23 (Percona Server)
- Varied the InnoDB log file size from 32MB to 512MB
- The impacts of the number of InnoDB write threads (1,2,4,8,16,32)
- The use of Linux native asynchronous iop
- Spinning and SSD storage
So, with all those verifications done, I can maintain that if you are using a server with spinning disks and a high write load, using EXT4 transactions instead of the InnoDB double write buffer yields to an increase in throughput of more than 50%. In an upcoming post, I'll show how the performance stability is affected by the InnoDB double-write buffer under a high write load.
Appendix: the relevant part of the my.cnf
innodb_buffer_pool_size = 12G
innodb_write_io_threads = 8 # or else in {1,2,4,8,16,32}
innodb_read_io_threads = 8
innodb_flush_log_at_trx_commit = 0 # must be 0 or 2 to really stress the double write buffer
innodb_log_file_size = 512M # or 32M, 64M
innodb_log_files_in_group = 2
innodb_flush_method=O_DIRECT # or O_DSYNC
innodb_buffer_pool_restore_at_startup=300 # On 5.5.x, important to warm up the buffer pool
#innodb_buffer_pool_load_at_startup=ON # on 5.6, important to warm up the buffer pool
#innodb_buffer_pool_dump_at_shutdown=ON # on 5.6, important to warm up the buffer pool,
skip-innodb_doublewrite # or commented out
innodb_flush_neighbor_pages=none # or area for spinning
The post Update on the InnoDB double-write buffer and EXT4 transactions appeared first on MySQL Performance Blog.
Speed up GROUP BY queries with subselects in MySQL
We usually try to avoid subselects because sometimes they force the use of a temporary table and limits the use of indexes. But, when is good to use a subselect?
This example was tested over table a (1310723 rows), b, c and d ( 5 rows each) and with MySQL version 5.5 and 5.6.
Let's suppose we have a query like this:select a.name,sum(a.count) aSum,avg(a.position) aAVG,b.col1,c.col2,d.col3 from a join b on (a.bid = b.id) join c on (a.cid = c.id) join d on (a.did = d.id) group by a.name,b.id,c.id,d.id
What will MySQL do? First it will take the entire data set – this means that will go through each row scanning the value of "bid," "cid" and "did" and then apply the join to each table. At this point it has the complete data set and then it will start to cluster it, executing the sum and the average functions.
Let's analyze it step by step:
- Scan each row of table a which has 1310720 rows.
- Join each row of table a with b, c and d – this means that each of the 1310720 rows will be joined, making the temporary table bigger.
- Execute the group by which will scan again the 1310720 rows and creating the result data set.
What can we do to optimize this query? We can't avoid the group by over the 1.3M rows, but we are able to avoid the join over 1.3M of rows. How? We need all of the information from table a for the "group by" but we don't need to execute all the joins before clustering them. Let's rewrite the query:select a.name,aSum,aAVG,b.col1,c.col2,d.col3 from ( select name,sum(count) aSum ,avg(position) aAVG,bid,cid,did from a group by name,bid,cid,did) a join b on (a.bid = b.id) join c on (a.cid = c.id) join d on (a.did = d.id)
We see from the above query that we are doing the "group by" only over table a, the result data set of that subquery is just 20 rows. But what about the query response time? The first query took 2.3 sec avg and the optimized query took 1.8 sec average, half a second faster.
What about adding a covering index? The index that we can add will be:alter table a add index (name,bid,cid,did,count,position);
The explain plan of both queries shows that it is using just the index to resolve the query.
Now, the response time of the original query is 1.9 sec which is near the time of the optimized query. However, the response time of the optimized query now is 0.7 sec, nearly 3x faster. The cons of adding this index is that we are indexing the whole table and it shows that the index length is near 80% of the data length.If the original query had "where" conditions, it will depend over which field. Let's suppose add c.col2=3:select a.name,sum(a.count) aSum,avg(a.position) aAVG,b.col1,c.col2,d.col3 from a join b on (a.bid = b.id) join c on (a.cid = c.id) join d on (a.did = d.id) where c.col2=3 group by a.name,b.id,c.id,d.idNow, in the new query, the subquery will change. Table c and the "where" clause must be added to the subquery:select a.name,aSum,aAVG,b.col1,a.col2,d.col3 from ( select a.name,sum(count) aSum ,avg(position) aAVG,bid,cid,did,c.col2 from a join c on (a.cid = c.id) where c.col2=3 group by name,bid,cid,did) a join b on (a.bid = b.id) join d on (a.did = d.id)
But the differences in times are not as big (original query 1.1 sec and new query 0.9). Why? because the original query will have less data to group by. Adding c.col2=3 to the original query, the amount of data to group by is reduced from 1.3M to 262k. Indeed, if you add more "where" conditions on different tables, the dataset to sort will be smaller and the speed-up will decrease.
Conclusion: We usually add the GROUP BY at the end of queries, and that is ok because the syntax forces us to do it. However we can use a subquery to group only the data that we need and then perform the joins over other tables. This could speed up some of our GROUP BY queries.
The post Speed up GROUP BY queries with subselects in MySQL appeared first on MySQL Performance Blog.
MariaDB 10.1: Better query optimization for ORDER BY … LIMIT
For some reason, we've been getting a lot of issues with ORDER BY optimization recently. The fixes have passed Elena Stepanova's scrutiny and I've pushed them to MariaDB 10.1. Now, MariaDB's ORDER BY ... LIMIT optimizer:
- Doesn't make stupid choices when several multi-part keys and potential range accesses are present (MDEV-6402)
- Always uses "range" and (not full "index" scan) when it switches to an index to satisfy ORDER BY … LIMIT (MDEV-6657)
- Tries hard to be smart and use cost/number of records estimates from other parts of the optimizer (MDEV-6384, MDEV-465, MySQL Bug#36817)
- Takes full advantage of InnoDB's Extended Keys feature when checking if filesort() can be skipped (MDEV-6796)
so, if you are struggling with poor optimization of ORDER BY ... LIMIT queries, help might be underway.
I have to admit that optimizations for ORDER BY... LIMIT are still far from perfect (both in MySQL and in MariaDB). The code is old and ugly and having spent some time debugging it, I can easily believe that it still does a poor job in some cases. The good part is that now we have some fresh knowledge of the ORDER BY … LIMIT optimization code, as well as RQG scripts for testing ORDER BY .. LIMIT queries. If you have any issues with ORDER BY LIMIT optimization, we will appreciate to see bugs filed for them.
A discovery - Index Condition Pushdown can cause a slowdown after all
MariaDB 5.5 and then MySQL 5.6 got Index Condition Pushdown (ICP) optimization (initially coded by yours truly). The idea of ICP is simple: after reading the index record, check the part of WHERE condition that can be computed using index columns, and only then read the table record. That way, we avoid reading table rows that don't satisfy index condition:
It seems apparent that ICP can never make things slower. The WHERE clause has to be checked anyway, and not reading certain records can only make things faster.
That was what I thought, too, until recently Joffrey Michaie observed the contrary "in the wild": we've got a real-world case where using Index Condition Pushdown was slower than not using it: MDEV-6713. The slowdown was about 20%, both on MariaDB and MySQL.
From what I could investigate so far, the slowdown is caused by these three factors working together:
- a VARCHAR(255) column in the index. MySQL's in-memory data representation for VARCHARs is not space efficient. If a column is defined as VARCHAR(255), any value will occupy the entire 255 bytes.
- InnoDB's row prefetch cache. When InnoDB detects that one is reading a lot of rows from an index, it pre-fetches index records and stores them in an internal cache. The cache uses the inefficient in-memory data representation.
- Design of MySQL's Item classes. One can't evaluate an expression over a table record that is in InnoDB prefetch cache. Expression evaluation functions expect to find column values in the table's "primary location", internally known as table->record[0]. In order for ICP to check the condition, index columns have to be copied to table->record[0], first.
I hope we will be able to investigate this problem and post more about it soon. For now, the news is that ICP can cause a slowdown, when the index has big VARCHAR columns.
Priority queue optimization for filesort is now visible in MariaDB 10.0
TL;DR: Priority queue optimization for filesort with small LIMIT is now visible in MariaDB: there is a status variable and you can also see it in the slow query log (KB page link).
A longer variant:
One of the new optimizations in MySQL 5.6 is ability to use a priority queue instead of sorting for ORDER BY … LIMIT queries. The optimization was ported into MariaDB 10.0 long ago, but we still get questions if/when it will be ported. I guess, the reason for this is that, besides the query speed, you can't see this optimization. Neither EXPLAIN, nor EXPLAIN FORMAT=JSON or PERFORMANCE_SCHEMA or status variables give any indication whether filesort used priority queue or the regular quicksort+merge algorithm.
MySQL 5.6 has only one way one can check whether filesort used priority queue. You need to enable optimizer_trace (set optimizer_trace=1), and then run the query (not EXPLAIN, but the query itself). Then, you can look into the optimizer trace and find something like this:... "filesort_priority_queue_optimization": { "limit": 10, "rows_estimate": 198717, "row_size": 215, "memory_available": 262144, "chosen": true }, ...
MariaDB doesn't support optimizer_trace at the moment. Even if it did, I think it would be wrong to require one to look into the optimizer trace to find out about the picked query plan.
The natural place to show the optimization would be EXPLAIN output. We could show something like "Using filesort (priority queue)". This was my initial intent. After looking into the source code, this turned out to be difficult to do. The logic that makes the choice between using quicksort+merge and using priority queue is buried deep inside query execution code. (As if the mess caused by late optimizations of ORDER BY and UNIONs didn't teach anybody in MySQL team anything).
As for query execution, there are two facilities where one could record execution-time details about the query plan. They are the status variables and the slow query log.Status variables
We've added Sort_priority_queue_sorts status variable. Now, the list of sort-related status variables is:MariaDB [test]> show status like 'Sort%'; +---------------------------+-------+ | Variable_name | Value | +---------------------------+-------+ | Sort_merge_passes | 0 | | Sort_priority_queue_sorts | 1 | | Sort_range | 0 | | Sort_rows | 11 | | Sort_scan | 1 | +---------------------------+-------+
(Sort_range + Sort_scan) gives total number of sorts. Sort_priority_queue_sorts gives number of sorts that were done using priority queue.Slow query log
Percona's Extended statistics in the slow query log shows Filesort/Filesort_on_disk fields. We thought that adding information about priority queue use would be appropriate. Now, slow query log entries look like this:# Time: 140714 18:30:39 # User@Host: root[root] @ localhost [] # Thread_id: 3 Schema: test QC_hit: No # Query_time: 0.053857 Lock_time: 0.000188 Rows_sent: 11 Rows_examined: 100011 # Full_scan: Yes Full_join: No Tmp_table: No Tmp_table_on_disk: No # Filesort: Yes Filesort_on_disk: No Merge_passes: 0 Priority_queue: Yes SET timestamp=1405348239; select * from t1 where col1 between 10 and 20 order by col2 limit 100;
pt-query-digest is able to parse slow query logs with the new field.What about PERFORMANCE_SCHEMA
What about PERFORMANCE_SCHEMA? After all, it is the most powerful tool for tracking query execution. It has "absorbed" some status variables into events_statements_history table. For sorting, it has these columns:| SORT_MERGE_PASSES | bigint(20) unsigned | NO | | NULL | | | SORT_RANGE | bigint(20) unsigned | NO | | NULL | | | SORT_ROWS | bigint(20) unsigned | NO | | NULL | | | SORT_SCAN | bigint(20) unsigned | NO | | NULL | |
Should we add a SORT_PRIORITY_QUEUE_SORTS column there? We didn't add it into 10.0 right now because of compatibility concerns. Some tools may rely on the structure of PERFORMANCE_SCHEMA tables. Also, PERFORMANCE_SCHEMA table definitions are stored on disk, and one would have to run mysql_fix_privilege_tables after a minor upgrade, which is not good.
New feature in MariaDB 10.1: ANALYZE statement
Last week, yours truly has pushed a new feature into MariaDB 10.1 tree: ANALYZE statement.
The idea of this feature is to make it easy to compare query plan with query execution. ANALYZE statement will run the statement, and produce EXPLAIN-like output, where optimizer's estimates are followed by numbers that were observed when running the query. The output looks like this:
- Next to rows there is r_rows column which shows how many records were read from the table.
- Next to filtered there is r_filtered column which shows which fraction of records was left after the part of the WHERE condition attached to the table was checked.
I think this should explain the feature. If you want more details, please refer to the KB article ANALYZE statement. It also discusses the meaning of the above EXPLAIN output.Technical details and further plans
ANALYZE currently uses its own counters. Counting is done for all queries, including non-ANALYZE queries. This should be okay (not have visible overhead) as long as counting just increments integer variables in the query plan, without doing any atomic operations or making syscalls.
The upside of this approach is that it's now trivial to make Explain in the slow query log also print ANALYZE output. When a query runs slowly, you will be able to know where exactly the optimizer was wrong.
The downside is that getting more data will not be as easy. So far, the most requested numbers beyond r_rows and r_filtered were r_time(amount of time spent in reading the table) and r_io(amount of IO that we did on the table). Counting the amount of time that was spent while reading each row will impose CPU overhead, it is a known problem. Counting IO is just incrementing a counter, but it will require interaction between ANALYZE code and storage engine(s) code, which will add complexity.
There is PERFORMANCE_SCHEMA feature, where others have already spent a lot of effort to count wait time and IO. It's tempting to reuse it. The problem is, P_S collects the wrong data. P_S counters are global, while ANALYZE needs to count IO for each table reference separately. Consider a self-join. From P_S point of view, it is reading from the same table. From ANALYZE point of view, it is reads from two different table references. I'm currently not sure whether ANALYZE should/could rely on PERFORMANCE_SCHEMA.
A totally different angle is that tabular EXPLAIN output doesn't allow to show much data (for example, how many rows were there before/after GROUP BY?). Here the solution is clear, I think: support EXPLAIN FORMAT=JSON and then add ANALYZE FORMAT=JSON where we can provide lots of detail.


text:
Fashion Scoops
Accessories News
Fashion Scoops
SwimSpot Retail Tries New Categories on for Size
The swimsuit retailer is adding loungewear and expanding its accessories department with its newest stores.
— October 13, 2015
CFDA Plans Second Jewelry Design Showcase
The Council of Fashion Designers of America will hold the second iteration of its jewelry design showcase on October 26.
Kevin Jonas, Devon Still Turn Up at Pnina Tornai
The NFL player and his fiancé Asha Joyce detailed their wedding plans at the show.
— October 12, 2015
Chrome Hearts and Ladurée Add French Flair to Miami
In time for Art Basel, Chrome Hearts is presenting Laduree's macarons and Sean Kelly Gallery's artwork at its boutique in Miami's Design District.
Rachel Roy's Daughter Ava Dash Links With Teen Project, Ugg
The budding philanthropist remade rooms for teen girls coming out of foster care.
Hostem Taps Alice Waese for Artistic Display During Frieze London
The artistic display will be unveiled to coincide with the Frieze Art Fair in London.
CFMI Appoints New President
The Florence Center for Italian fashion (CFMI) has named Andrea Cavicchi as new president.
Chanel's 'Mademoiselle Privé' Puts Inspiration on Show in London
Saatchi Gallery showcase is open to the public and runs until Nov. 1.
Mytheresa.com, Balenciaga Team on Fashion Film
The two-minute short marks Mytheresa's first foray into film.
— October 11, 2015
Young Royals Head to Charity Event and Rugby Match
The Duke and Duchess of Cambridge were out and about this weekend, as they celebrated World Mental Health Day and attended a rugby match.


text:
National Hotel Miami Beach
No prices found through our partners. Please contact the business directly or check some of our recommended alternatives.
How has this hotel rated in the past?
Travelers also recommend:
Historical Traveler Reviews Imperial Eagle Lodge Bamfield
Wonderful service for medium size meeting
We scheduled a business meeting here and it was one of the best experiences ever to combine a meeting with a pleasant venue. The service was perfect and the settings and accomodations were excellent.
The best rooms are newly renovated room in the main hotel facing on the ocean. They are not spacious, but are the appropriate size for an historic hotel. All of the amenities are present. For evening turndown service, they not only leave chocolate, but also fill the ice bucket.
The NY Times is at your doorstep daily. There is free internet access in the rooms and in the lobby. The location is superb with lots of places to visit and things to do within walking distance. I have also stayed at the stylish hotel next door, which had more interior design, but was much less comfortable. Hey. I can do without a white orchid in my room.
Miami Beach vacation
National is a nice hotel. The hotel is well situated in the South Beach area. It is close to Ocean Drive and Licoln Road. This area is expensive and if you have a car you will need to pay valet fees for parking at the hotel. The pool areas at the hotel are nice. I often had the pools to myself. The hotel has its own beach chairs and beach service. I only ate lunch a couple of times at the hotel and I found the food to be fine. I found the room to be perfect. It is not large by American standars, but it is clean and well decorated. I had a walk in closet. There is a $7 daily charge that the hotel charges for the NY Times and I am not sure what else. I would stay here again, but I plan to explore some other hotels in the area before I return to the National.
National, what a dissappointment.
From check in to check out, the problems kept adding up. Couldn't find reservation upon arrival. Had to provide confirmation from their own website. Not the room we booked. Air conditioning did not work all weekend--95 degress outside. Forgot wake up call on morning of departure. The hotel was nice, but some places, especially the hallways on the floors smelled of mildew. Be cautious.
Had A Great Time At The National!
The national hotel is a GREAT place to stay in miami beach! I booked the room through the hotel's website and i got a really good deal. (even better then the prices on expedia, cheaptickets, etc.) When i arrived at the hotel, I was a little bit early..but instead of making me wait, they UPGRADED my room at no extra charge so that i didnt have to wait for another room! The staff was reallyyy friendly and always helpful. The rooms were very clean..especially the bathroom and bed (which is a BIG PLUS!) the TVs even had DVD players in them...which i was pretty excited about since I had brought some DVDs with me to watch on my laptop. The pool was simply gorgeous and the perfect temperature. I suggest going during the week...because thats when i went and the hotel was pretty empty..its almost like it was all mine! The staff said that it gets really busy during the weekend though. I only have 2 complaints about this hotel....the first one is that the hotel next door was doing some MAJOR construction, so it was kinda noisey. The second thing is that the drinks are expensiveee! I got 2 drinks out by the beach and it ended up paying $20! I guess thats what i should have expected since it IS Sobe..but just be aware before you go ordering a ton of drinks! But other then that...it was PERFECT! It's in a great location...everything is just a short walk away. I would definitely reccomend the national hotel!
Great location, nice hotel
We stayed at the National for just one night on our way back from the Caribbean. Had a wonderful time. The location is perfectly located - relatively quiet and away from the South Beach madness yet close to everything and right on the beach. The pool is wonderful, especially at 2AM and the bar serves up some of the best mojitos I've ever had (expensive but 2 for 1 during happy hour on Friday night). The room was fine, not huge but big enough for a king-size bed and a rollaway. The staff was very helpful - when we requested the rollaway cot at 2AM, they didn't bat an eyeball and 15 minutes later it appeared in our room. We definitely recommend this hotel especially if you get it through an internet special.
Great Hotel for a relaxing vacation
My wife and I stayed there for part of our honeymoon. Originally booked a oceanview room for 3 nights. We were given an upper floor, corner room which had an adjoining door to the next room. The room itself was adequate, but like a previous reviewer stated, the walls were somewhat thin. We could here the people next door through the door. We went to the front desk and the helpful staff upgraded us to a 1 bedroom suite overlooking the fabulous pool. The room itself was large with a king size bed and a balcony overlooking the pool. The pool is indeed fabulous. Its a 205 foot long infinity pool. The water is just the right temperature. So great in fact we never even wanted to go to the beach. Never ate at the hotel itself, although it looks classy. Many great shops and resaurants within walking distance on Lincoln Road and still close enough of a walk to south beach without the noise and traffic. The grounds are also well kept and the staff friendly and helpful. I was so impressed with our treatment there that I plan on returning to the hotel again this summer for our 1 year anniversary.
Relaxed atmosphere, beautiful surroundings
Some of the negative responses to this property seem without significant merit. I have stayed at this property several times and have never been disappointed. My most recent was a 7 night stay in early March. We were pleasantly greeted at the front desk on a Saturday evening and upgraded to a Cabana room. The new Cabana rooms are great, with a modern Asian-inspired theme, first rate beds/linenes and flat screen WEGA televisions. Internet access and Nintendo are also part of the package. The standard tower rooms are not as luxurious, but better than average and certainly better than traditional chain hotel rooms such as Hyatt or Marriott. The hotel is beautiful having been restored to it's former art deco glory in the late 1990's. I believe that Ian Schrager, owner of the neighboring Delano, bought the property several years back. I'm glad that not much was changed. The pool area, lobby and grounds are beautiful. Service is overall helpful. The location is nearly perfect, with direct access to the beach and a short stroll to Lincoln Road Mall. In short, if you appreciate architecture and historic renovation you will like this property. If you seek the mainstream styling and comforts of traditional chain hotels, look elsewhere.
Thoroughly disappointed !
I wasn't expected much, but this hotel still disappoints. Services were good, pools & lobby beautiful, but that's about it. Rooms in main hotel were *very* old (nothing like website's pic). Toilet & bathroom fan was extremely loud (we've to close door to sleep). Minibar wasn't restocked. Walls so thin I was awaken twice by next room's cell phone ring!
I definitely would not recommend this hotel for business travel. There is absolutely NO electrical outlet in our room. I have to unplug the dryer in the bathroom to charge our cell phones. Ridiculous.
The lady standing in check-in line before me had to change room 3 times because phone / lamp / TV won't work, and cockroaches.
The staff tried to be friendly, but they miss all the details - Check in/out takes forever (with no line). We've to sign slip to ensure beach towels are returned. Extra mandatory charge for NY Times & use of pools. $20 for daily parking. That's on top of the $200 room rate!
The website picture does NOT show regular room. It looks nothing like that. Very dark and gloomy. Also, they send us wake-up call at 6am on the check out date. Very cheap act to want us out.
This hotel has the potential, but need really good management and some serious renovation.
Heaven in paradise
From the first day that we had arrived, we had excellent service and hospitality.
The rooms were clean and neat, our beds were touched up in the evenings with a robe set out on our beds that included the next day's weather!
The concierge and bell hops were top notch! always giving us great recommendations for dinner. The pool was heavenly and the close proximity to the beach with availability of beach chairs, towels and umbrellas made our stay pleasurable.
I would definately go back!
Perfect place in a perfect location
We booked a City View room on the Internet at a bargain, and upon arriving at the hotel were given a free upgrade to an ocean view room b/c the hotel was not full. That room was on the small side, but clean and comfortable and would have been fine. The next day, we upgraded to a much larger poolside room with a balcony and ocean view for only $30 a night extra. The pools are wonderful, the staff was very friendly and the concierge helpful, the poolside food service was tasty and convenient. And we didn't have to rent a car - we were just a block from the shops and restaurants on Lincoln Road and a quick walk from the Ocean Drive strip. I would definitely stay at the National next time I go to South Beach.
TripAdvisor Reviews Imperial Eagle Lodge Bamfield
Travel Blogs from Miami Beach
And then we waited for the plague of frogs.
... at once.
Well, American Airlines customer assistance was really helpful. "I'm really sorry, the next and only direct flight today is already overbooked. I don't know why we do this sort of thing! Let me try and re-route you today…… Hmmm! How about if we try get you through to Charlotte.. and then on to Nashville! Oh no, that's not going to work because Nashville is closed. Best I can do for you is tomorrow…. ...
Being on top of a bus could get addictive
... some interesting bromeliads and some orchids although only one was in flower.
I walked back home via Lincoln Street mall and spent quite a bit of time trying to get a good picture of some parrots in the palm trees there. There were also some nice orchids there as well as some interesting fashions walking the streets. I took photos of the orchids only. At the bottom of the mall was the beach so I walked a couple of blocks along the beach and then ...
The Sunshine State
... worth a visit because it gave us something to laugh about for the rest of the day. We then enjoyed a cappuccino and some bruschetta with fresh tomatoes on a cute terrace in Espanola Street. Once we had explored most of Miami South Beach, we took a bus that took us across the water, over the bridge, to Miami City. Miami Bayside is a cute corner of the harbor where a couple of bars and restaurants and a market is located, with a pretty view over the boats coming in and passing ...
I'm in Miami b****!
... some more shopping... Then took some bikes out and rode along the beach to the bay and marina. Tonight we are going to Little Havana-an area known for its cuban influence. We are going to try cuban cuisine for the first time! Day 3 Today we went to the beach and soaked up some sun. On the way back we walked Ocean Dr and looked at all the really old cars they had on display. Every man and his dog was out today ...
Stranded in Miami
... on another airline, I headed off and was 100% certain that the airline would only give them another flight the next day or a partial refund.
I wasn't disappointed when I checked into the hotel and they gave me a king sized bed and I discovered it was owned by the Marriott chain and it had a swimming pool and gym, it was certainly the type of hotel that I wouldn't be able to afford in North America, I could quite happily stay here for a few ...


text:
Image Unavailable
- Sorry, this item is not available in
- Image not available
- To view this video download Flash Player
|List Price:
|$9.55 & FREE Shipping on orders over $35. Details
|You Save:
|$30.44 (76%)
Fulfillment by Amazon (FBA) is a service we offer sellers that lets them store their products in Amazon's fulfillment centers, and we directly pack, ship, and provide customer service for these products. Something we hope you'll especially enjoy: FBA items qualify for FREE Shipping and .
If you're a seller, Fulfillment by Amazon can help you increase your sales. We invite you to learn more about Fulfillment by Amazon .
People want to enjoy the benefits of connecting, surfing, and shopping online and don't want to think about security risks. At McAfee, we live and breathe digital security, relentlessly working to stay several steps ahead of the bad guys. Every second of every day, we focus on one thing: keeping your digital life safe, so that you can surf, shop, and socialize online with confidence.
Product Details
Would you like to update product info or give feedback on images?
I would not recommend this software at all. Bought the Disc version since getting the internet only version from Mcafee was much more for my Windows7 PC. Read morePublished 5 months ago by K. Faaborg
I had to uninstall this program at the insistence of my employer in favor of Microsoft Security Essentials. Read morePublished 9 months ago by Barry Stapsky
It does what it is supposed to do I guess. Okay for a internet email user. I would not go deep into the internet and expect this to protect your machine. Read morePublished 13 months ago by KevBot H
The McAfee did not work properly on my computer. I believe will work better on someone body elese, but not mine.Published 16 months ago by Sis. in Christ Jesus


text:
Located in an atrium off the lobby and bar. View during daytime is uninspiring; but, romantic setting after dark. Menu is not extensive; but, it is varied and excellent with very nice presentations.
I have the tasting menu with wine , the first two course was good , the desserts was excellent , the homemade ice cream go very very well with molten chocolate cake but the entree was just ok. The wine pairing go well , the value for meal was good .Overall was good .
We used there for the last night dinner of the trip. The atomsphere of the restaulant was very nice and quiet. The service was also very excellent.
We understand that this is Banff's #1 restaurant. The beet & fennel salad with some walnuts, goatcheese en orange is fantastic. A bit more goatcheese would have been nice for a more salty bite. The smoked duck tasted very well. The salmon was delicious, however I would prefer mashed potato instead of wild rice. The vegetables are ok, only the broccoli is cold. The beef tenderloin tasted well and is medium as ordered. The bill was 138 dollars for two entrances, two maincourses and pairing wines (4 glasses in total). Not very cheap, but we enjoyed our dinner
We were dubious about this restaurant due to the location, but our concerns were unfounded.The menu is interesting, although very limited for vegetarians and geared towards meat eaters (only 2 fish dishes). There were some strange combinations (coffee infused mashed potato for example) but these strange combinations were not overpowering.The food was not fine dining, but the chef is trying hard and making a good effort... overall, we thought it was pretty good (even though my Arctic Char was overcooked) and we enjoyed the food/evening.The restaurant is quiet, upscale and has a good wine selection and great cocktails.If we had any complaints at all, it would be to improve the options for vegetarians.We would definitely recommend it if you are in town for a few nights - well worth a visit,,, and don't be put off by the fact that the hotel exterior isn't too salubrious!
Own or manage this property? Claim your listing for free to respond to reviews, update your profile and much more.