`6581
`
`Exhibit A
`
`
`
`
`
`Case 4:23-cv-01147-ALM Document 101-2 Filed 03/11/25 Page 2 of 6 PageID #:
`6582
`
`
`
`Case 4:23-cv-01147-ALM Document 101-2 Filed 03/11/25 Page 3 of 6 PageID #:
`6583
`
`
`
`8776.) “Spark uses the Hadoop core library to talk to HDFS and other Hadoop-supported storage
`
`systems.” (Id. at 8774.)
`
`1079. As discussed above, R2 accuses open-source Apache Spark functionality that is
`
`implemented by the Databricks Data Intelligence Platform as purportedly infringing the asserted
`
`claims of the ’610 patent. I disagree that open-source Apache Spark meets the requirements of the
`
`asserted claims for at least the reasons discussed in Databricks’ response to Interrogatory No. 7,
`
`and as I will further explain in my rebuttal non-infringement report. But, even if one were to
`
`assume that the accused open-source Apache Spark functionality meets the requirements of the
`
`asserted claims, Yahoo granted a license to the ’610 patent—as well as every other Yahoo patent—
`
`that purportedly covers open-source Apache Spark by virtue of (1) Yahoo’s contributions to open-
`
`source Apache Spark under the Apache 2.0 license, and (2) Yahoo’s contributions to open-source
`
`projects that were combined with, based on and derived from open-source Apache Spark, including
`
`Pig on Spark, CaffeOnSpark, and streaming-benchmarks. As explained below, Yahoo made these
`
`contributions during the time it owned the ’610 patent—i.e., between the October 5, 2006 filing
`
`date of the ’610 patent and the April 18, 2016 assignment to Excalibur, and thus, granted all users
`
`of open-source Apache Spark a license to the ’610 patent. (R2_DB_000466 at 0468 (patent
`
`assignment from named inventors to Yahoo dated October 4, 2006); R2_DB_000471 (patent
`
`assignment from Yahoo to Excalibur IP, LLC dated April 18, 2016).)
`
`a.
`
`The Accused Open-Source Apache Spark Functionality is in the
`Versions of Apache Spark to which Yahoo Contributed
`
`1080. As an initial matter, R2 alleges Databricks first infringed the ’610 patent on June
`
`15, 2015, when open-source Apache Spark first introduced SortMergeJoin functionality. This
`
`functionality was contributed to Apache Spark while Yahoo owned the ’610 patent and was first
`
`committed on April 15, 2015. (JWeissman_00000294-0325; JWeissman_00003139-3140.) Thus,
`
`
`
`462
`
`
`
`Case 4:23-cv-01147-ALM Document 101-2 Filed 03/11/25 Page 4 of 6 PageID #:
`6584
`
`
`
`under R2’s own allegations that that the accused functionality as of June 2015 purportedly meets
`
`the asserted claims of the ’610 patent (which I disagree with), Yahoo granted all users of Apache
`
`Spark a license to the ’610 patent under the Apache 2.0 license.
`
`1081. Below I further analyze the versions of Apache Spark that implemented the files
`
`that R2 accuses in its infringement contentions. I reserve the right to supplement my opinions in
`
`view of R2’s forthcoming opening report.
`
`(1)
`
`Apache Spark 1.0
`
`1082. The GitHub repository for Apache Spark Branch 1.0 includes the Apache 2.0
`
`license and is part of the Apache-licensed “Work.” (Databricks_R2_00116013-6031.) Thomas
`
`Graves was a Yahoo employee that was managing Yahoo’s internal open-source Apache Spark
`
`team, and he committed to Apache Spark Branch 1.0 between October 30, 2013 and June 12,
`
`2014.18 (Databricks_R2_00116032-6039.) Additionally, Mridul Muralidharan was also a Yahoo
`
`employee on Thomas Graves’ internal Yahoo team working on open-source Apache Spark and
`
`committed code to Apache Spark Branch 1.0 between April 7, 2013 and March 19, 2014.19
`
`(JWeissman_00000103-0109.)
`
`1083. Beginning with Apache Spark 1.0, released May 30, 2014, Apache Spark “included
`
`shuffle functionality . . . functionality to merge datasets . . . [and] the ability to join datasets that
`
`had different schema.” (Graves Dep. at 92:2-22.) Thomas Graves personally “contribute[d] to the
`
`[Spark] shuffle functionality . . . running on YARN.” (Id. at 224:12-22.) Additionally, Thomas
`
`Graves and Mridul Muralidharan contributed to at least the following additional functionalities,
`
`including,
`
`for
`
`example, RDDs, SparkContext,
`
`and Schedulers.
`
`
`
`(See,
`
`e.g.,
`
`
`18 Thomas Graves testified that his contributions in GitHub are under the name “tgravescs.”
`(Graves Dep. at 93:14-18.)
`19 Thomas Graves testified that Mridul Muralidharan’s contributions in GitHub are under the
`name “mridulm.” (Id. at 109:21-110:3.)
`
`
`
`463
`
`
`
`Case 4:23-cv-01147-ALM Document 101-2 Filed 03/11/25 Page 5 of 6 PageID #:
`6585
`
`
`
`2016, when Yahoo owned the ’610 patent and was contributing to Apache Spark.
`
`(Databricks_R2_00117016; Databricks_R2_00117802.)
`
`1124. I understand
`
`that R2
`
`alleges org/apache/spark/sql/catalyst/expressions/
`
`namedExpressions.scala allegedly meets the claimed mapping functionality. (See generally R2
`
`Infringement Contentions, Ex. A.) Such code was available in Apache Spark-1.6.1 as
`
`sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/
`
`expressions/namedExpressions.scala
`
`prior to April 18, 2016, when Yahoo owned the ’610 patent and was contributing to Apache Spark.
`
`(Databricks_R2_00117127; Databricks_R2_00117831.)
`
`1125. I
`
`understand
`
`that
`
`R2
`
`alleges
`
`org/apache/spark/sql/execution/joins/SortMergeJoinExec.scala allegedly meets
`
`the claimed
`
`mapping functionality. (See generally R2 Infringement Contentions, Ex. A.) Such code was
`
`available in Apache Spark-1.6.1 as sql/core/src/main/scala/org/apache/spark/sql/execution/joins/
`
`SortMergeJoin.scala prior to April 18, 2016, when Yahoo owned the ’610 patent and was
`
`contributing
`
`to Apache Spark.
`
`
`
`(Databricks_R2_00117119; Databricks_R2_00117834.)
`
`SortMergeJoin.scala was renamed to SortMergeJoinExec.scala in a patch to add the “Exec” suffix
`
`to all physical operators on April 22, 2016. (JWeissman_00000151-0262.)
`
`1126. I
`
`understand
`
`that R2
`
`alleges
`
`org/apache/spark/sql/execution/joins/
`
`SortMergeJoinEvaluatorFactory.scala allegedly meets the claimed mapping functionality. (See
`
`generally R2 Infringement Contentions, Ex. A.) SortMergeJoin.scala has the same or substantially
`
`similar functionality as the functionality R2 accuses within SortMergeJoinEvaluatorFactory.scala.
`
`Such
`
`code was
`
`available
`
`in Apache Spark-1.6.1
`
`as
`
`sql/core/src/main/scala/org/
`
`apache/spark/sql/execution/ joins/SortMergeJoin.scala prior to April 18, 2016, when Yahoo
`
`owned the ’610 patent and was contributing to Apache Spark. (JWeissman_00000284-0290;
`
`
`
`476
`
`
`
`Case 4:23-cv-01147-ALM Document 101-2 Filed 03/11/25 Page 6 of 6 PageID #:
`6586
`
`
`
`JWeissman_00000291-0293.) I further understand that in response to a question regarding
`
`whether
`
`R2
`
`alleges
`
`that
`
`Databricks
`
`infringes
`
`in
`
`the
`
`absence
`
`of
`
`SortMergeJoinEvaluatorFactory.scala, R2 alleged that Databricks first infringed when it
`
`“introduced the SortMergeJoin functionality as part of its offerings.” (JWeissman_00003139-
`
`3140.) SortMergeJoin.scala was available in Apache Spark-1.6.1 as of April 15, 2015.
`
`(JWeissman_00000294-0325.)
`
`(c)
`
`Reducing
`
`1127. I understand that R2 alleges org/apache/spark/rdd/ZippedPartitionsRDD.scala,
`
`org/apache/spark/sql/execution/joins/SortMergeJoinExec.scala,
`
`org/apache/spark/sql/execution/joins/BroadcastHashJoinExec.scala,
`
`org/apache/spark/sql/DataFrameJoinSuite.scala,
`
`org/apache/spark/sql/execution/datasources/DataSourceStrategy.scala,
`
`and org/apache/spark/sql/execution/joins/SortMergeJoinEvaluatorFactory.scala allegedly meet
`
`the claimed reducing functionality. (See generally R2 Infringement Contentions, Ex. A.) As
`
`explained above, such code was available in Apache Spark-1.6.1 prior to April 18, 2016, when
`
`Yahoo owned the ’610 patent and was contributing to Apache Spark.
`
`1128. I understand
`
`that R2 alleges org/apache/spark/rdd/MapPartitionsRDD.scala
`
`allegedly meets the claimed reducing functionality. (See generally R2 Infringement Contentions,
`
`Ex. A.)
`
` Such code was available in Apache Spark-1.6.1 as core/src/main/scala/org/
`
`apache/spark/rdd/MapPartitionsRDD.scala prior to April 18, 2016, when Yahoo owned the ’610
`
`patent
`
`and was
`
`contributing
`
`to Apache
`
`Spark.
`
`
`
`(Databricks_R2_00117134;
`
`Databricks_R2_00117842.)
`
`
`
`477
`
`

Accessing this document will incur an additional charge of $.
After purchase, you can access this document again without charge.
Accept $ ChargeStill Working On It
This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.
Give it another minute or two to complete, and then try the refresh button.
A few More Minutes ... Still Working
It can take up to 5 minutes for us to download a document if the court servers are running slowly.
Thank you for your continued patience.

This document could not be displayed.
We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.
You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.
Set your membership
status to view this document.
With a Docket Alarm membership, you'll
get a whole lot more, including:
- Up-to-date information for this case.
- Email alerts whenever there is an update.
- Full text search for other cases.
- Get email alerts whenever a new case matches your search.

One Moment Please
The filing “” is large (MB) and is being downloaded.
Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!
If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document
We are unable to display this document, it may be under a court ordered seal.
If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.
Access Government Site