DCT
4:23-cv-01147
R2 Solutions LLC v. Databricks Inc
Key Events
Complaint
Table of Contents
complaint Intelligence
I. Executive Summary and Procedural Information
- Parties & Counsel:
- Plaintiff: R2 Solutions LLC (Texas)
- Defendant: Databricks, Inc. (Delaware)
- Plaintiff's Counsel: Nelson Bumgardner Conroy PC
- Case Identification: 4:23-cv-01147, E.D. Tex., 12/28/2023
- Venue Allegations: Plaintiff alleges venue is proper because Defendant maintains a regular and established place of business in Plano, Texas, within the district, and has committed acts of infringement in the district.
- Core Dispute: Plaintiff alleges that Defendant's data intelligence and lakehouse platforms, which utilize Apache Spark, infringe a patent related to an enhanced MapReduce methodology for processing data from heterogeneous sources in a distributed system.
- Technical Context: The technology lies in the field of large-scale, distributed data processing, which is foundational to modern "big data" analytics, machine learning, and cloud computing platforms.
- Key Procedural History: The complaint alleges that Plaintiff previously sued American Airlines, Inc. over the same patent and, in connection with that litigation, served a subpoena on Defendant Databricks that specifically identified the patent-in-suit. This event is cited as establishing Defendant's pre-suit knowledge of the patent.
Case Timeline
| Date | Event |
|---|---|
| 2006-10-05 | U.S. Patent No. 8,190,610 Priority Date |
| 2012-05-29 | U.S. Patent No. 8,190,610 Issued |
| 2022-04-28 | Plaintiff filed suit against American Airlines, Inc. alleging infringement of the '610 patent |
| 2023-01-10 | Plaintiff served Defendant with a subpoena identifying the '610 patent |
| 2023-12-28 | Complaint Filed |
II. Technology and Patent(s)-in-Suit Analysis
U.S. Patent No. 8,190,610 - "MapReduce for Distributed Database Processing"
- Patent Identification: U.S. Patent No. 8,190,610, "MapReduce for Distributed Database Processing," issued May 29, 2012 (the "'610 Patent").
The Invention Explained
- Problem Addressed: The patent's background section states that conventional MapReduce implementations lack the ability to efficiently process data from "heterogeneous sources" and that it is "impractical to perform joins over two relational tables that have different schemas" '610 Patent, col. 3:9-20 This limitation restricts the use of standard MapReduce for complex database operations like joining disparate datasets.
- The Patented Solution: The invention enhances the MapReduce methodology by treating an input data set as a "plurality of grouped sets of key/value pairs" '610 Patent, abstract This "data group" concept allows the system to independently perform map operations on related but heterogeneous datasets (e.g., two tables with different structures but a common key) '610 Patent, col. 2:1-9 The key innovation is that the intermediate data generated by the map phase remains identifiable to its original data group, enabling a single, more sophisticated reduce function to process results for a particular key by using different iterators for each group, thereby facilitating complex operations like joins '610 Patent, col. 8:47-58
- Technical Importance: This approach aimed to extend the power and scalability of the MapReduce paradigm beyond simple data processing to more complex, relational database-style operations common in data warehousing and analytics '610 Patent, col. 2:40-44
Key Claims at a Glance
- The complaint asserts claims 1-32 Compl. ¶31 The primary focus of the complaint and its exhibits is on independent method claim 1 and independent system claim 17.
- Independent Claim 1 (Method):
- A method of processing a data set comprising a plurality of "data groups" over a distributed system.
- "Partitioning" the data of each data group into data partitions with key-value pairs and providing them to "mapping functions".
- The mapping functions are user-configurable and independently output lists of values, forming "intermediate data" that is "identifiable to that data group".
- A first data group has a "different schema" and is "mapped differently" than a second data group, but their corresponding intermediate data share a "key in common".
- "Reducing" the intermediate data for the data groups into at least one output group, which involves processing the intermediate data for each data group in a manner corresponding to that group to merge the data based on the common key.
- The mapping and reducing operations are performed by a distributed system.
III. The Accused Instrumentality
Product Identification
- The "Databricks Data Intelligence Platform/Databricks Lakehouse Platform" and any other Databricks platforms that use "Apache Spark or any other similar functionality" (the "Accused Instrumentalities") Compl. ¶7
Functionality and Market Context
- The Accused Instrumentalities are cloud-based platforms for large-scale data engineering and data science Compl. ¶¶7-8 The complaint alleges that the core of these platforms is the Apache Spark processing engine, which is used to perform distributed data processing Compl. ¶7 The complaint includes a screenshot from Databricks' documentation stating that "Apache Spark is at the heart of the Databricks platform" Compl. p. 16 The platform is marketed to customers for building data pipelines and analytics applications, which allegedly involve the patented methods Compl. ¶38 Compl. ¶40
IV. Analysis of Infringement Allegations
The complaint provides a preliminary claim chart in Exhibit 2, which is summarized below for independent claim 1.
- '610 Patent Infringement Allegations
| Claim Element (from Independent Claim 1) | Alleged Infringing Functionality | Complaint Citation | Patent Citation |
|---|---|---|---|
| A method of processing data of a data set over a distributed system, wherein the data set comprises a plurality of data groups, the method comprising: | The Accused Instrumentalities, based on Apache Spark and Delta Lake, perform a method of processing data over a distributed system. Data sources, such as Spark Resilient Distributed Datasets (RDDs), are alleged to constitute the claimed "data groups." | Ex. 2, p. 8 | col. 3:55-57 |
| partitioning the data of each one of the data groups into a plurality of data partitions that each have a plurality of key-value pairs and providing each data partition to a selected one of a plurality of mapping functions... | In Spark, data is partitioned into elements distributed across nodes, which is called an RDD. These partitions can be in the form of key-value pairs (Pair RDDs). Mapping functions, such as transformations, are applied to these partitions. | Ex. 2, p. 12 | col. 2:30-35 |
| that are each user-configurable to independently output a plurality of lists of values for each of a set of keys... to form corresponding intermediate data for that data group and identifiable to that data group, | Spark's map transformations are user-configurable (e.g., defined by custom business logic). It is alleged that when a mapping function is applied, intermediate data is created for that partition and is identifiable to the data group from which it originated, for instance through join hints or other architectural means. | Ex. 2, p. 20 | col. 4:5-9 |
| wherein the data of a first data group has a different schema than the data of a second data group and the data of the first data group is mapped differently than the data of the second data group... wherein the different schema and corresponding different intermediate data have a key in common; | Spark is alleged to support multiple types of structured data (e.g., JSON, Hive tables), each with its own schema. It is alleged that different mapping or transformation functions can be applied to these different data sources, and that the resulting intermediate data can share a common key for subsequent merging or joining. | Ex. 2, p. 24 | col. 8:47-52 |
| and reducing the intermediate data for the data groups to at least one output data group, including processing the intermediate data for each data group in a manner that is defined to correspond to that data group, so as to result in a merging of the corresponding different intermediate data based on the key in common, | Spark's "reduce" tasks, such as in a reduceByKey operation, allegedly merge intermediate data based on a common key. It is alleged that the processing architecture can distinguish between data from different groups (e.g., via join hints) to process it in a manner corresponding to its group. |
Ex. 2, p. 29 | col. 8:53-58 |
- Identified Points of Contention:
- Scope Questions: A central dispute may be whether the term "data group", as described in the patent with examples of relational database tables, can be construed to read on the modern data abstractions used in Apache Spark, such as Resilient Distributed Datasets (RDDs) or DataFrames.
- Technical Questions: The claim requires intermediate data to be "identifiable to that data group." A technical question will be what evidence demonstrates that Spark's internal processing architecture, particularly during a "shuffle" operation, maintains data identifiability in the specific manner required by the claim. The complaint provides a screenshot of Databricks partner offerings, suggesting a theory of indirect infringement Compl. p. 15
V. Key Claim Terms for Construction
- The Term: "data group"
- Context and Importance: This term is foundational to the claim, as it defines the distinct sets of heterogeneous data that the patented method is designed to process. The infringement allegation hinges on mapping this term to concepts within the Apache Spark ecosystem, such as RDDs or different data sources. Practitioners may focus on this term because its scope will likely determine whether the patent applies to the accused modern data processing architecture.
- Intrinsic Evidence for Interpretation:
- Evidence for a Broader Interpretation: The specification states that "the input, intermediate and output data sets are partitioned into a set of data groups" '610 Patent, col. 3:55-57, suggesting it is a general partitioning concept. The summary also describes it as applying to "two or more related datasets" without strictly limiting it to a specific type '610 Patent, col. 2:3-5
- Evidence for a Narrower Interpretation: The primary detailed example in the patent describes the "data groups" as two distinct relational database tables ("Employee" table and "Department" table) with different schemas that are to be joined '610 Patent, FIG. 3 '610 Patent, col. 3:20-34 An argument could be made that the term's meaning is constrained by this specific embodiment.
VI. Other Allegations
- Indirect Infringement: The complaint alleges inducement of infringement by customers, partners, and end users Compl. ¶35 It asserts that Databricks provides the Accused Instrumentalities with explicit instructions, such as in its "Documents" pages, on how to implement and operate them in an infringing manner Compl. ¶40 A screenshot shows Databricks' documentation, such as a tutorial on PySpark DataFrames, which allegedly instructs infringing use Compl. p. 17
- Willful Infringement: The complaint alleges willful infringement based on Defendant's knowledge of the '610 Patent prior to the suit Compl. ¶43 This knowledge is alleged to stem, at a minimum, from a subpoena served on Databricks on January 10, 2023, in connection with a separate lawsuit involving the '610 Patent, which "specifically identified the '610 patent" Compl. ¶25 Compl. ¶43
VII. Analyst's Conclusion: Key Questions for the Case
- A core issue will be one of technical translation: can the concepts and architecture of the Apache Spark engine, with its Resilient Distributed Datasets (RDDs), DataFrames, and transformation logic, be persuasively mapped onto the specific claim limitations of the '610 patent, which are described in the context of a "data group"-centric MapReduce model from a prior technological era?
- A key legal question will be one of definitional scope: will the term "data group" be construed broadly to encompass any logical collection of data in a distributed system, or will it be narrowed by the patent's specification to the more specific context of joining heterogeneous relational database tables, potentially placing the accused Spark architecture outside its scope?
- A significant factual question will concern willfulness: given the allegation that Databricks was served with a subpoena that expressly identified the patent-in-suit nearly a year before this case was filed, the court will likely examine what, if any, actions Databricks took in response, which will be central to the determination of willful infringement and potential eligibility for enhanced damages.
Analysis metadata