Comparing Oracle MySQL, Percona Server and MariaDB

Back in the days when somebody said MySQL, there was only the MySQL. You could pick different versions (4.0, 4.1) but the vendor was the same. This changed around MySQL 5.0/5.1 when Percona decided to release their own flavour of MySQL – Percona Server. A bit later, MariaDB joined with MariaDB 5.1 and the fun (or confusion) increased. What version should I use? What is the difference between MySQL 5.1, Percona Server 5.1 and MariaDB 5.1? Which one is faster? Which one is more stable? Which one has superior functionality? With time, this got worse as more and more changes were introduced in each of flavours. This blog post will be our attempt to summarize the key features that differentiate them. We will also try to give you some suggestions about which flavour may be the best for a given type of project. Let’s get started.

Oracle MySQL

It used to be the MySQL, now it’s the upstream. Most of the development starts here, each version starting from 5.6 resolves some internal contentions and brings better performance. New features are being added too on a regular basis. MySQL 5.6 brought us (among others) GTID and an initial implementation of parallel replication. It also gave us ability to execute most of the ALTERs in an online manner. Let’s take a look at the features of the latest MySQL version – MySQL 5.7

Features of MySQL 5.7

One of the major changes are changes in the deployment process – instead of different scripts, you can just run mysqld –initialize to set MySQL up from scratch. Another very important change – parallel replication based on logical clock. Finally, we can use parallel replication in all cases – no matter if you use multiple schemas or not. Another replication improvement is multi-source replication – a 5.7 slave can have multiple masters – it’s great feature if you want to build an aggregation slave and, let’s say, combine data from multiple, separate clusters.

InnoDB started to support spatial types, InnoDB buffer pool can finally be resized at runtime, online ALTERs have been improved to support more cases like partitioning and no-op ALTERs.

MySQL started to support JSON data types natively along with several new functions which are focused on adding functionality around JSON. Security of your data is very important these days, MySQL 5.7 supports data-at-rest encryption for file-per-table tablespaces. Some improvements have also been added to SSL support (SSL will be configured if keys are in place, a script is included which can be used to create certificates). From a user management perspective, password lifetime setup has been added which should make the design of password expiration policies a bit easier.

Another feature which is intended to assist DBAs is the ‘sys’ schema, a set of views designed to make it easier to use Performance Schema. It’s been included by default in MySQL 5.7.

Finally, MySQL Group Replication (and eventually MySQL InnoDB Cluster) has been added to MySQL 5.7. It works as a plugin and is included in recent versions of the 5.7 branch, but that is a topic of its own. In short, Group Replication allows you to build a “virtually” synchronous cluster.

This is definitely not a full list of features – if you are interested in all of them, you may want to consult MySQL 5.7 documentation.

Percona Server

At the beginning, there was a set of patches to apply to the MySQL source code which added some performance improvements and functionality. At some point, Percona decided to release their own build of MySQL which included these patches. In time, more development resources became available, so more and more features have been added.

In general, you can view Percona Server as the latest MySQL version with multiple patches/improvements. With time, some of the Percona Server feature improvements are replaced by features from the upstream – whenever Oracle develops a feature which supersedes one of functionalities added in Percona Server. As long as the implementation is on par, Percona removes their own code in favor of code from the upstream. This makes Percona Server basically a drop-in replacement for Oracle’s MySQL. One of the areas in which major performance improvements have been made is InnoDB. It’s been modified significantly enough to brand it as XtraDB. Currently it is fully compatible with InnoDB but it hasn’t always been like that. For instance, some features in Percona Server 5.5 were not compatible with MySQL 5.5. So you should exercise caution when you plan to migrate from Percona Server to MySQL.

What’s worth highlighting is that Percona strives to reimplement enterprise features of the upstream. In case of MySQL, examples are implementation of a thread pool or PAM authentication plugin. Let’s take a quick look at some of the features of the Percona Server.

Features of Percona Server 5.7

One of the main features of XtraDB is improved buffer pool scalability – even though there’s less and less contention due to the work Oracle does on every MySQL version, Percona’s engineering team strives to push performance even further and remove additional mutexes which may limit performance. Additionally, more data is written into InnoDB monitor (accessible via SHOW ENGINE INNODB STATUS) regarding contentions within InnoDB – e.g., a section on semaphores has been added.

Another set of improvements have been made in the area of I/O. In InnoDB, you can set a flush method only for InnoDB tablespaces and this causes double-buffering for InnoDB redo logs. XtraDB makes it possible to use O_DIRECT also for those files. It also adds more data regarding checkpointing to the output of SHOW ENGINE INNODB STATUS. Additionally to that, parallel doublewrite buffer and multi-threaded LRU flusher have been implemented to reduce contention in I/O operations within InnoDB.

Thread pool is another feature made available by Percona Server. In Oracle MySQL it’s available only in the Enterprise edition. Here you can use Percona’s implementation for free. In general, thread pool reduces contentions while serving high number of connections from the application by reusing existing connections to the database.

Two more features are direct replacements of features from the Enterprise version of MySQL. One of them is the PAM authentication plugin which has been developed by Percona and is designed to allow the use of plenty of different authentication options like LDAP, RSA SecurID or any other methods supported by PAM. Second feature is also related to security – audit log plugin. It will create a file with a record of actions taken on the database server.

From time to time, Percona introduces significant improvements to other storage engines like the changes they made in MEMORY engine which allowed VARCHAR or BLOB type of data to be used.

Introduction of backup locks was also a rather significant improvement. In Oracle and MariaDB the only method of locking the table to get a consistent backup was to use FLUSH TABLES WITH READ LOCK (FTWRL). It’s rather heavy and it forces MySQL to close all of the opened tables. Backup locks, on the other hand, use a more lightweight approach of metadata locks. In many cases of heavy loaded server running FTWRL takes too long (and locks the server for too long) to be considered feasible while backup locks make it possible to take a backup using mysqldump or xtrabackup.

Percona is open also on porting features from other vendors. One such example is port of MariaDB’s START TRANSACTION WITH CONSISTENT SNAPSHOTS. This feature is also related to backups – with its help, you can take a consistent logical backup (using mysqldump) without running FLUSH TABLE WITH READ LOCK.

Finally, three features which improve observability – first: user statistics. This is fairly light-weight feature which collects data about users, indexes, tables and threads. It allows you to find unused indexes or determine which user is responsible for the load on the server. Currently it’s partially redundant to performance_schema but it’s a bit lighter and it was created in the days of MySQL 5.0 – 5.1, where no one even dreamt about the performance_schema.

Second – enhanced slow query log. Again, it was added in times where the highest granularity of long_query_time was 1 second. With this addition you had microsecond granularity and a bunch of additional data about InnoDB stats per query or its overall performance characteristics. Did it create a temporary table? Did it use an index? Has it been cached in the MySQL query cache?

Third feature we mentioned couple of times above – Percona Server exposes significantly more data in SHOW ENGINE INNODB STATUS than upstream. It definitely helps to further understand the workload and catch more issues before they unfold.

Of course, this is not a full list – if you are interested in more details, you may want to check Percona Server’s documentation.

MariaDB

MariaDB started as a fork of MySQL but, with part of original MySQL development team joining MariaDB, it quickly focused on adding features. In MariaDB 5.3, lots of features had been added to the optimizer: Batch Key Access, MultiRange Read, Index Condition Pushdown to name a few. This allowed MariaDB to excel in some workloads where MySQL or Percona Server would struggle. Until now, some of those features have been added to MySQL (mostly in MySQL 5.6) but some are still unique to MariaDB.

Another important feature which was introduced by MariaDB was Global Transaction ID. Not too much later Oracle released its own implementation but MariaDB was the first to have it. Similar story is with another replication feature – multisource replication: MariaDB had it before Oracle. Now, recently released MariaDB 10.2 also contains features which will be made available in MySQL 8.0, which is still under development. We are talking about, for example, recursive common table expressions or window functions.

Features of MariaDB 10.2

As we mentioned, MariaDB 10.2 introduces window functions and recursive common table expressions – enhancements in SQL which should help developers to write more efficient SQL queries.

Very important change is that MariaDB 10.2 uses InnoDB. Up to 10.1, XtraDB has been used as the default storage. This, unfortunately, makes features added in latest XtraDB unavailable for MariaDB 10.2 users.

Improvements have been made in virtual columns – more limitations have been lifted in 10.2.

Finally, support for multiple triggers for the same event has been added – now you can create several, for example, ON UPDATE triggers on the same table.

Developers should benefit from JSON support, along with a couple of functions which are related to it. They should also like new functions which allows them to export spatial data into GeoJSON format. Talking about JSON, improvements have been made in EXPLAIN FORMAT=JSON output – more data is shown.

On security front, support for OpenSSL 1.1 and LibreSSL has been added.

Of course, this list is not complete and if you are interested into what has been added to MySQL 10.2, you may want to consult documentation.

Additionally to new features MariaDB 10.2 benefits from features implemented in previous versions. We’ll go through the most important ones.

The most important features of MariaDB 10.1

First of all, MariaDB since 10.1 comes bundled with Galera cluster – no need to install additional libraries, everything is ready to use.

MariaDB 10.1 brought implementation of data-at-rest encryption. Compared to the feature implemented in Oracle’s MySQL, MariaDB has it more extended. Not only it encrypts tablespaces but it also encrypts redo logs, temporary files and binary logs. This comes with some issues – CLI tools like mysqldump or xtrabackup can’t access binary logs and may have problems backing up encrypted instances (this is especially true for xtrabackup – quite recently MariaDB created xtrabackup fork called MariaDB Backup which supports data-at-rest encryption).

Ok, so which flavor I should use?

As it usually is, the correct answer would be: “It depends” 🙂 . We will share couple of our observations which may or may not help you to decide, but, at the end, it’s up to you to run benchmarks and find whatever option will work best for your environment and application.

First of all, let’s talk about the flow. Oracle releases new version – let’s say MySQL 5.7. Performance-wise, at that moment, this is the fastest MySQL flavor on the market. This is because only Oracle has enough resources to work on improving InnoDB to that extent. Within a couple of months (in case of 5.7, it was 4 months) Percona releases Percona Server 5.7 with their set of improvements – depending on the type of workload, it may deliver even better performance than the upstream. Finally, MariaDB adopts new upstream version and builds its new version on top of it.

This is how it looked like in a calendar (we are still talking about MySQL 5.7).

MySQL 5.7 GA: October 21st, 2015

Percona Server 5.7 GA: February 23rd, 2016

MariaDB 10.2 GA: May 23rd, 2017

Please note how long it took MariaDB to release a version based on MySQL 5.7 – all previous versions have been based on MySQL 5.6 and, obviously, delivered performance lower than MySQL 5.7. On the other hand, MariaDB 10.2 has been released with InnoDB replacing XtraDB. While it’s true that Oracle mostly closed the performance gap between MySQL and Percona Server, it’s still just “mostly”. As a result, MariaDB 10.2 may deliver performance lower than the one of Percona Server in some cases (and better in some other cases – due to optimizer work done in MariaDB 5.3, some of which hasn’t been recreated yet in MySQL).

Feature-wise, it’s more complex. MariaDB has been adding lots of features, so if you are interested into some of them, you may definitely consider using MariaDB. There is a downside of it too. Percona Server had a great deal of features differentiating it from upstream MySQL but when Oracle started to implement them in MySQL, Percona decided to depreciate their implementations in favor of using the implementation from upstream. This reduced the amount of code that’s different between MySQL and Percona Server, makes it easier to maintain Percona Server’s code and, what’s the most important, makes Percona Server 100% compatible with MySQL.

This is, unfortunately, not true for MariaDB. MariaDB introduced GTID first, that’s true, but after Oracle developed their version of GTID, MariaDB decided to stick to their own implementation. This blog is not the place to decide which implementation is better, but as a result we have to manage two different, incompatible GTID systems – it adds burden on any tool that manages replication and reduces interoperability. Sticking to replication – group commit and parallel replication: both Oracle and MariaDB have their own implementation and if you work with both of them, you need to learn them both to apply the required tuning – the knobs are different and work in a different way. Similar case is with virtual columns support – two different, not 100% compatible implementations which, as a result, made it not possible to easily dump data from MariaDB and load into Oracle’s MySQL (and vice versa) because the syntax is slightly different. So, should you decide to use a version of MariaDB for some brand new feature, you may end up getting stuck with it even if you’d like to migrate back to MySQL to use Oracle’s implementation. At best, migration would require much more effort to execute. Of course, if you stay in the one environment all the time, it may not affect you severely. But even then, a lack of compatibility will be noticeable for you, if only while you read blogs on the internet and find solutions that are not really applicable to your flavour of MySQL.

So, to sum it up – if you are interested in maintaining compatibility with MySQL, Percona Server (or MySQL itself, of course) would probably be the way to go. If you are interested in performance, as long as there is Percona Server built on top of the latest MySQL, it may be the way to go. Of course, you may want to benchmark MariaDB and see if your workload can’t benefit from some of optimizations which are still unique to MariaDB. Operational-wise, it’s probably good to stick to one of the environments (Oracle/Percona or MariaDB), whichever would work for you better. MySQL or Percona Server have an advantage in a way that they are more commonly used and it’s slightly easier to integrate them with external tools (because not all of the tools support all of the MariaDB features). If you would benefit from a new and shiny feature which has been just implemented in MariaDB, you should consider it, keeping in mind any potential compatibility issues and possible lower performance.

We hope this blog post gave you some ideas about different choices we have in MySQL world and different angles from which you can compare them. At the end of the day, it will be your task to decide what’s best for your setup. It may not be easy but then we still should be grateful that we have a choice and we can pick what works best for us.

via Planet MySQL
Comparing Oracle MySQL, Percona Server and MariaDB

Murder on the Orient Express (Trailer)

Murder on the Orient Express (Trailer)

Link

Kenneth Branagh (and his incredibly distracting mustache) directs and stars alongside an all-star cast that includes Judi Dench, Willem Dafoe, Johnny Depp, Michelle Pfeiffer and Daisy Ridley in this adaptation of Agatha Christie’s classic mystery novel.

via The Awesomer
Murder on the Orient Express (Trailer)

Ohio State engineer developed software in his free time; two dozen customers paid up to $3K a year as soon as he offered it for sale

An Ohio State University engineer – who picked up coding in high school as a hobby – built image-analysis software to take tedium out of his work in the lab. Suddenly, he had a business.

via Columbus Business News – Local Columbus News | Business First of Columbus
Ohio State engineer developed software in his free time; two dozen customers paid up to $3K a year as soon as he offered it for sale

Zotac unveils two Thunderbolt 3 enclosures to attach external GPUs to Apple’s MacBooks

 

Zotac unveils two Thunderbolt 3 enclosures to attach external GPUs to Apple’s MacBooks

Zotac is joining the slowly growing market of external enclosures potentially capable of using Thunderbolt 3 to connect to a MacBook, unveiling at Computex the Thunderbolt 3 External Graphics Dock for connecting a graphics card to a host system, alongside a smaller Thunderbolt 3 External Box meant for attaching other hardware.

The Thunderbolt 3 External Graphics Dock is an enclosure meant to house graphics cards, with Zotac advising it is compatible with cards up to the GeForce GTX 1080 Ti. According to Tom’s Hardware, the device supports cards up to 9 inches in length, restricting its usage to shorter graphics cards.

In order to accommodate the power needs of a graphics card, the enclosure includes its own 400-Watt internal power supply, which is also capable of charging a connected notebook. So far, Zotac has not advised of how much power it could deliver to a connected system.

Like other GPU enclosures, it connects via Thunderbolt 3 over USB Type-C to a notebook or a desktop, providing transfer speeds of up to 40Gb/s, and potentially allowing a notebook to take advantage of the graphics card for gaming, video editing, and other specialized needs. The unit also offers extra connectivity options, with four USB 3.0 ports, and a Quick Charge 3.0 port.

The second device, the Thunderbolt 3 External Box, performs a similar function to the graphics dock, but it is generally meant for other types of PCI-e hardware. Tech Power Up reports the enclosure includes a smaller 120-Watt power supply without any additional PCIe power connectors, meaning it will work with graphics cards that can function adequately that just draw power from the PCI-Express 3.0×16 slot.

Rather than for a graphics card, the Thunderbolt 3 External Box is intended for other hardware that uses the PCI-e slot, such as PCI-e solid state drives or multiple-port network cards. Just as with the graphics dock, the enclosure also has four USB 3.0 ports, with an extra 32Gb/s M.2 NVMe slot internally.

Zotac has yet to confirm how much the Thunderbolt 3 External Graphics Dock and Thunderbolt 3 External Box will cost, nor when the two enclosures will start shipping.

via AppleInsider
Zotac unveils two Thunderbolt 3 enclosures to attach external GPUs to Apple’s MacBooks

Introducing the Ruger American Rimfire Stainless

Ruger American Rimfire Stainless
Ruger American Rimfire Stainless

Ruger FirearmsU.S.A.-(Ammoland.com)- Sturm, Ruger & Company, Inc. (NYSE: RGR) is proud to introduce the Ruger American Rimfire Stainless. In response to voice of the customer feedback, Ruger engineers have worked diligently to create a stainless steel configuration of this popular rifle in three calibers. Available in .22 LR, .22 WMR and .17 HMR, these stainless steel and synthetic rimfire rifles live up to Ruger’s reputation for accurate, rugged and reliable firearms.

These new Ruger American Rimfire models feature a 416 stainless steel barrel, bolt and receiver. Hand-buffed from end to end, the satin finish is highlighted by the contrasting black thread protector, bolt release, stock and one-piece Picatinny scope base. The 18” cold hammer-forged barrel free-floats in the lightweight synthetic stock and is finished with a ½”-28 threaded muzzle.

The Ruger American Rimfire rifle also features the renowned, patented Ruger Power Bedding integral bedding system, Ruger Marksman Adjustable trigger and ultra-reliable rotary magazine. The modular stock system helps to adjust the rifle fit to the shooter by allowing for different comb heights and lengths of pull. These new models ship with a high comb, standard length of pull module installed, providing ideal cheek weld for optics.

Ruger American Rimfire Stainless
Ruger American Rimfire Stainless

For more information about the Ruger American Rimfire or to learn more about the extensive line of award-winning Ruger firearms, visit Ruger.com or Facebook.com/Ruger. To find accessories for Ruger firearms, visit ShopRuger.com or your local independent retailer of Ruger firearms.

Ruger American Rimfire Stainless Specs

About Sturm, Ruger & Co., Inc.

Sturm, Ruger & Co., Inc. is one of the nation’s leading manufacturers of rugged, reliable firearms for the commercial sporting market. As a full-line manufacturer of American-made firearms, Ruger offers consumers over 400 variations of more than 30 product lines. For more than 60 years, Ruger has been a model of corporate and community responsibility. Our motto, “Arms Makers for Responsible Citizens,” echoes the importance of these principles as we work hard to deliver quality and innovative firearms

This post Introducing the Ruger American Rimfire Stainless appeared first on AmmoLand.com Shooting Sports News .

via AmmoLand.com Shooting Sports News
Introducing the Ruger American Rimfire Stainless

Watch 95 Weird, Wondrous Minutes of Star Wars Found Footage Through the Decades

This isn’t even close to the weirdest thing in this video. Image: YouTube

Star Wars is one of those franchises that has been everywhere and done everything. There probably isn’t a “thing” you can imagine that Star Wars hasn’t been at some point: porn parody, pet toys, television show, garden tools, virtual reality, you name it and Star Wars has probably done it.

And if it’s been done, it’s probably in this absolutely insane video put together by the Cinefamily in Los Angeles.

For the 40th anniversary of Star Wars, Cinefamily held a special screening of this 95-minute film comprised totally of real footage of Star Wars in culture throughout its existence. Some of it is normal. Most of it is not. From classic news stories and commercials to weird parodies and behind the scenes clips, there’s so much here, it’s unbelievable. Check it out.

[Cinefamily]

via Gizmodo
Watch 95 Weird, Wondrous Minutes of Star Wars Found Footage Through the Decades

Stop Mowing Your Lawn

I grew up mowing a giant, mangy lawn. My family lived on an acre of hilltop land, which we kept shaggily mowed, too spiky to walk on in our bare feet. On one side was a cornfield. On the other side was our neighbor, Mr. Howland, the Ned Flanders of lawn care. He seeded his lawn with fine golf-course-grade grass, mowed and sprayed it weekly, and even rolled it flat like an off-season Zamboni driver.

Mr. Howland’s lawn infuriated me. I stewed about it every time I gingerly steered our riding mower around the nest of killdeer in the unkempt grass, and as I mowed along the property line, grimacing at the clear Goofus-and-Gallant contrast. After I mowed, I would tromp across our acre of brown spiky stubble and take off my shoes on Mr. Howland’s lawn.

Well, well, well: It turns out that ours was the morally correct lawn. It would have been more correct if we’d mowed even less and let the grass grow to its natural height, or ceded some of the backyard to the wild field of pheasant grass. We didn’t need to be ashamed of dandelions, or brown patches, or ground-nesting birds.

Advertisement

As The Nib’s Ted Steinberg and Shannon Wright explain in their comic “Hate Mowing Your Lawn? Good! Don’t Do It,” the regularly mowed lawn is a recent invention, popularized in the U.S. only after World War II. Its rapid expansion, driven by lawn-care companies and reliant on invasive species of grass, sucks up nearly 20 trillion gallons of water a year, 50 to 75% of home water use each summer. While lawns, like any plant life, suck up greenhouse gases, the energy spent on their care wipes out any gains. Cutting back on lawn care is one of the easiest ways you can reduce your climate-change impact. You’ll burn less fossil fuel, and the taller grass will retain more moisture.

So I win the long game, Mr. Howland. And I know you were mowing over our property line.


via Lifehacker
Stop Mowing Your Lawn

Impression v. Lexmark: Patent Rights Exhausted by Sale, Domestic or Abroad

By Jason Rantanen

Impression Products, Inc. v. Lexmark International, Inc. (2017) – Download opinion

In a  straightforward and almost unanimous opinion authored by Chief Justice Roberts, the Supreme Court reversed the Federal Circuit on both domestic (8-0) and international exhaustion (7-1).

The Supreme Court’s opinion is summed up by a single sentence early on. “We conclude that a patentee’s decision to sell a product exhausts all of its patent rights in that item, regardless of any restrictions the patentee purports to impose or the location of the sale.”  Slip Op. at 1.  The underlying  rationale is offered a bit later: “Patent exhaustion reflects the principle that, when an item passes into commerce, it should not be shaded by a legal cloud on title as it moves through the marketplace.”  Slip Op. at 11.  With these two pronouncements, the Supreme Court has in one swoop both simplified patent law and added new complexities, challenges and opportunities to the innovation ecosystem.

Impression v. Lexmark involved, at its core, the question of whether restrictions placed on a patented product could be enforced through an infringement suit–often a more viable legal mechanism for the patent owner than an an action for breach of contract.

Under Federal Circuit precedent, the answer for over two decades was yes.  The theory relied upon by the Federal Circuit in decisions such as Malkinkrodt, and reaffirmed by the en banc court in Lexmark v. Impression, was that the patent owner could decide to give away only some of its patent rights when it sold or authorized the sale of a patented product.  As a result, the patent owner could sue a party who violated those restrictions for patent infringement because, the theory went, the purchaser did not possess the relevant set of patent permissions–the “sticks” in the “bundle of rights” that the patent owner possessed.  Thus, for example, a patent owner could place a single-use only restriction on an ink cartridge or medical device and sue for infringement if the device were reused.  In short, the exhaustion rule was effectively default rule of patent law that the parties could contract around.

The Supreme Court rejected this approach, basing its conclusion on common law principles of ownership as reflected in its 1853 decision in Bloomer v. McQuewan.  “For over 160 years, the doctrine of patent exhaustion has imposed a limit on [patentees’ right to exclude others from making, using, offering for sale, or selling their invention].”  Slip Op. at 5-6. “When a patentee chooses to sell an item, that product ‘is no longer within the limits of the monopoly’ and instead becomes the ‘private, individual property’ of the purchaser, with the rights and benefits that come along with ownership.”  Id., quoting Bloomer. While a patent owner may impose contractual restrictions, those restrictions are a matter of contract law, not patent law.  “A patentee is free to set the price and negotiate contracts with purchasers, but may not, ‘by virtue of his patent, control the use or disposition’ of the product after ownership passes to the purchaser. United States v. Univis Lens Co., 316 U. S. 241, 250 (1942) (emphasis added).”  Once  a patent owner sells a patented product, it has obtained the patent reward and may no longer rely on patent law.  Referencing its opinion in Kirsaeng v. John Wiley & Sons, Inc., 568 U.S. 519, 538 (2013), the Court observed that exhaustion has “an impeccable historic pedigree,” a backdrop against which Congress has repeatedly revised and fine-tuned the patent law.

The Federal Circuit’s error was that it started from the wrong place: interpreting the  infringement statute.  But “the exhaustion doctrine is not a presumption about the authority that comes along with a sale; it is instead a limit on ‘the scope of the patentee’s rights.’”  Slip Op. at 10, quoting United States v. General Elec. Co., 272 U. S. 476, 489 (1926) (emphasis added).   The sale transfers the foundational rights to use, sell or import the product sold; it simultaneously exhausts the patent rights:

The right to use, sell, or import an item exists independently of the Patent Act. What a patent adds—and grants exclusively to the patentee—is a limited right to prevent others from engaging in those practices. See Crown Die & Tool Co. v. Nye Tool & Machine Works, 261 U. S. 24, 35 (1923). Exhaustion extinguishes that exclusionary power. See Bloomer, 14 How., at 549 (the purchaser “exercises no rights created by the act of Congress, nor does he derive title to [the item]by virtue of the . . . exclusive privilege granted to the patentee”). As a result, the sale transfers the right to use, sell, or import because those are the rights that come along with ownership, and the buyer is free and clear of an infringement lawsuit because there is no exclusionary right left to enforce.”

Exhaustion applies regardless of whether the patent owner sells the product or a licensee–even a licensee subject to restrictions by the patent owner.  “A patentee’s authority to limit licensees does not, as the Federal Circuit thought, mean that patentees can use licenses to impose post-sale restrictions on purchasers that are enforceable through the patent laws. So long as a licensee complies with the license when selling an item, the patentee has, in effect, authorized the sale.” Slip Op. at 11-12.

“In sum, patent exhaustion is uniform and automatic. Once a patentee decides to sell—whether on its own or through a licensee—that sale exhausts its patent rights,regardless of any post-sale restrictions the patentee purports to impose, either directly or through a license.”

The Court also held that foreign sales exhausted U.S. patent rights–in other words, a system of global exhaustion.  This conclusion, too, was bolstered by a common law policy against restraints on the alienation of chattels.

Justice Ginsburg concurred with the Court’s holding on domestic exhaustion but dissented with respect to international exhaustion.  She would hold that “A foreign sale…does not exhaust a U.S. inventor’s U.S. patent rights.”

What’s left? Lexmark strikes a powerful blow against post-sale restrictions by negating the threat of infringement to enforce those restrictions.  But it hardly eliminates such restrictions–to the contrary, the Court is clear that such restrictions may still be enforced under contract law.  In addition, the Court’s opinion revolves around sales of products.  Left unanswered is the role that patents will continue to play in non-complete transfers–licenses of a good or service rather than a sale.

Previous Patently-O Commentary:

 

 

via Patent Law Blog (Patently-O)
Impression v. Lexmark: Patent Rights Exhausted by Sale, Domestic or Abroad

Star Wars Nothing But Star Wars

Star Wars Nothing But Star Wars

Link

To celebrate 40 years of Star Wars, Cinefamily TV created this epic video mixtape loaded with insane and obscure footage, from interviews, to parodies, to fan tributes, and much more. If you’re not prepared to spend 95 minutes right now, the trailer should convince you.

via The Awesomer
Star Wars Nothing But Star Wars