Teradata Corporation et al v. SAP SE et al
Filing
279
CLAIMS CONSTRUCTION ORDER. Signed by Judge William H. Orrick on 07/15/2020. (jmdS, COURT STAFF) (Filed on 7/15/2020)
1
UNITED STATES DISTRICT COURT
2
NORTHERN DISTRICT OF CALIFORNIA
3
4
TERADATA CORPORATION, et al.,
Plaintiffs,
5
6
7
8
CLAIM CONSTRUCTION ORDER
v.
SAP SE, et al.,
Defendants.
BACKGROUND
9
10
Case No. 18-cv-03670-WHO
There are five patents asserted in this case. All the patents relate to computer-implemented
United States District Court
Northern District of California
11
database systems. Generally, all of them are related to data storage, organization, retrieval,
12
analysis, or removal.
13
The ʼ179 Patent (Patent Number 7,617,179, issued November 10, 2009), is titled “System
14
and Methodology for Cost-Based Subquery Optimization Using a Left-Deep Tree Join
15
Enumeration Algorithm,” and teaches “query optimization” in a “relational database system.”
16
ʼ179 Patent (Dkt No. 211-3). The claimed query optimizer identifies a plan containing “access
17
methods” to obtain specific data from various tables. ʼ179 Patent: 2:40-3:4. The optimizer
18
considers whether to join or combine data within different tables and potential methods to
19
accomplish this. Id. at 3:5-24. The optimizer then selects an “optimal access plan” with favorable
20
execution costs. Id. at 5:46-49.
21
The ʼ421 Patent (Patent Number 9,626,421, issued April 18, 2017), is titled “ETL-Less
22
Zero-Redundancy System and Method for Reporting OLTP Data.” ʼ421 Patent (Dkt. No. 211-9).
23
It relates to database systems, particularly transactional and reporting database systems, and
24
teaches a system that allows for synchronization of data stored in row format and data stored in
25
column format. Id. at 1:15-17, 2:30-32.
26
The ʼ437 Patent (Patent Number 7,421,437, issued September 2, 2008), is titled “System
27
and Method for a Data Dictionary Cache in a Distributed System.” ʼ437 Patent (Dkt. No. 211-12).
28
It teaches a distributed system for the management of data dictionary information. ʼ437 Patent at
1
1. The distributed system has three layers, a user layer, application layer, and data access layer.
2
Id. at 1:48-55. The user layer allows for interaction between the distributed system and the user.
3
Id. at 2:36-37. The application layer provides services to the user and accesses information from
4
the data access layer. Id. at 1:49-52. The data access layer provides for data storage in “in one or
5
more data dictionaries” for the distributed system. Id. at 3.
The ʼ321 Patent (Patent Number 8,214,321, issued July 3, 2012), titled “Systems and
6
7
Methods for Data Processing,” teaches a method and system allowing for transactional data in a
8
“database warehouse” to be stored, grouped, and analyzed. ʼ321 Patent: 7:10-8:53 (Dkt. No. 211-
9
14).
The ʼ516 (Patent Number 7,437,516, issued October 14, 2008), is titled “Programming
11
United States District Court
Northern District of California
10
Models for Eviction Policies,” and deals with memory management, specifically, for a virtual
12
machine’s local memory which is implemented in a “cache.” ʼ516 Patent at 1 (Dkt. No. 211-17).
13
The ʼ516 Patent teaches a method for putting objects in the cache and determining which objects
14
to remove from in cache. Id. at 10:45-48, 13:50-55.
The parties dispute nine claim terms from these five patents.1
15
LEGAL STANDARD
16
Claim construction is a matter of law. See Markman v. Westview Instruments, Inc., 517
17
18
U.S. 370, 372 (1996); Vitronics Corp. v. Conceptronic, Inc., 90 F.3d 1576, 1582 (Fed. Cir. 1996).
19
Terms contained in claims are “generally given their ordinary and customary meaning.” Vitronics,
20
90 F.3d at 1582. In determining the proper construction of a claim, a court begins with the
21
intrinsic evidence of record, consisting of the claim language, the patent specification, and, if in
22
evidence, the prosecution history. Phillips v. AWH Corp., 415 F.3d 1303, 1313 (Fed. Cir. 2005);
23
see also Vitronics, 90 F.3d at 1582. “A claim term used in multiple claims should be construed
24
consistently . . . .” Inverness Med. Switzerland GmbH v. Princeton Biomeditech Corp., 309 F.3d
25
1365, 1371 (Fed. Cir. 2002).
“The appropriate starting point [ ] is always with the language of the asserted claim itself.”
26
27
28
As noted below, the parties disputed a 10th claim term, from the ʼ421 Patent, but agreed during
claim construction briefing that its plain meaning sufficed.
2
1
1
Comark Commc’ns, Inc. v. Harris Corp., 156 F.3d 1182, 1186 (Fed. Cir. 1998). “[T]he ordinary
2
and customary meaning of a claim term is the meaning that the term would have to a person of
3
ordinary skill in the art in question at the time of the invention, i.e., as of the effective filing date
4
of the patent application.” Phillips, 415 F.3d at 1312. “There are only two exceptions to this
5
general rule: 1) when a patentee sets out a definition and acts as his own lexicographer, or 2) when
6
the patentee disavows the full scope of a claim term either in the specification or during
7
prosecution.” Thorner v. Sony Computer Entm’t Am. LLC, 669 F.3d 1362, 1365 (Fed. Cir. 2012).
8
“Importantly, the person of ordinary skill in the art is deemed to read the claim term not
only in the context of the particular claim in which the disputed term appears, but in the context of
10
the entire patent, including the specification.” Phillips, 415 F.3d at 1313. “Claims speak to those
11
United States District Court
Northern District of California
9
skilled in the art,” but “[w]hen the meaning of words in a claim is in dispute, the specification and
12
prosecution history can provide relevant information about the scope and meaning of the claim.”
13
Electro Med. Sys., S.A. v. Cooper Life Scis., Inc., 34 F.3d 1048, 1054 (Fed. Cir. 1994) (citations
14
omitted). “[T]he specification is always highly relevant to the claim construction analysis.
15
Usually, it is dispositive; it is the single best guide to the meaning of a disputed term.” Vitronics,
16
90 F.3d at 1582. “However, claims are not to be interpreted by adding limitations appearing only
17
in the specification.” Id. “Thus, although the specifications may well indicate that certain
18
embodiments are preferred, particular embodiments appearing in a specification will not be read
19
into the claims when the claim language is broader than such embodiments.” Id.
20
Finally, the court may consider the prosecution history of the patent, if in evidence.
21
Markman, 52 F.3d at 980. The prosecution history may “inform the meaning of the claim
22
language by demonstrating how the inventor understood the invention and whether the inventor
23
limited the invention in the course of prosecution, making the claim scope narrower than it would
24
otherwise be.” Phillips, 415 F.3d at 1317 (citing Vitronics, 90 F.3d at 1582-83); see also Chimie
25
v. PPG Indus., Inc., 402 F.3d 1371, 1384 (Fed. Cir. 2005) (“The purpose of consulting the
26
prosecution history in construing a claim is to exclude any interpretation that was disclaimed
27
during prosecution.”) (internal quotations omitted).
28
In most situations, analysis of this intrinsic evidence alone will resolve claim construction
3
1
disputes. Vitronics, 90 F.3d at 1583. However, “it is entirely appropriate . . . for a court to consult
2
trustworthy extrinsic evidence to ensure that the claim construction it is tending to from the patent
3
file is not inconsistent with clearly expressed, plainly apposite, and widely held understandings in
4
the pertinent technical field.” Pitney Bowes, Inc. v. Hewlett-Packard Co., 182 F.3d 1298, 1309
5
(Fed. Cir. 1999). Extrinsic evidence “consists of all evidence external to the patent and
6
prosecution history, including expert and inventor testimony, dictionaries, and learned treatises.”
7
Markman, 52 F.3d at 980. All extrinsic evidence should be evaluated in light of the intrinsic
8
evidence, Phillips, 415 F.3d at 1319, and courts should not rely on extrinsic evidence in claim
9
construction to contradict the meaning of claims discernible from examination of the claims, the
written description, and the prosecution history, Pitney Bowes, 182 F.3d at 1308 (citing Vitronics,
11
United States District Court
Northern District of California
10
90 F.3d at 1583). While extrinsic evidence may guide the meaning of a claim term, such evidence
12
is less reliable than intrinsic evidence. Phillips, 415 F.3d at 1318-19.
DISCUSSION
13
14
15
16
17
18
19
20
21
22
23
24
25
26
I.
ʼ179 PATENT
“Optimal access plan” / “Optimize”
For example, as used in Claim 1 of the ʼ179 Patent:
In a database system, a method for optimizing a database query for
execution by a processor, the method comprising … optimizing each
query block to determine an optimal access plan for the query block
based upon selecting pre-computed subquery access methods and join
methods for subquery plan nodes of the query block as well as access
methods, join methods, and join order for other plan nodes of the
query block having favorable execution costs, wherein each query
block is optimized without transformation of the subqueries using the
pre-computed access methods and join methods;
’179 Patent at 38:47-48, 38:64-67-39:1-5.
Patent/Term
SAP’s Proposal
“the estimated best
plan, considering
Optimal access
plan: Claims 1, 23 of estimates of
the ʼ179 Patent
execution costs,
among the
plans considered”
Teradata’s Proposal
“the access plan that
has the lowest
execution
cost associated with
it”
27
28
4
1
2
Optimize[d]: Claims
1, 23 of the ʼ179
Patent
3
“find/found the
estimated best plan,
considering estimates
of execution costs,
among the plans
considered”
“find the lowest
execution cost”
4
5
Both parties agree that the claims do not require finding the “absolute best plan,” but only
a “reasonable plan,” and that the optimizer may only consider a subset of possible plans.
7
Declaration of David Maier (“Maier Decl.,” Dkt. No. 211-1) ¶ 45; Teradata Responsive Claim
8
Construction Brief (“TD CC,” Dkt. No. 219) at 6. In response to SAP’s position, Teradata states
9
that it would be willing to add “among the plans considered” to its proposed definitions of
10
“Optimal access plan” and “optimize[d].” TD CC 6. The real issue in dispute is whether
11
United States District Court
Northern District of California
6
“execution cost” is the only criterion used during the optimization process (Teradata’s position) or
12
whether the patent simply requires “consideration” of the execution costs of various plans (SAP’s
13
position).
14
Teradata relies on its expert, Dr. Jaideep Srivastava, who notes that SAP’s own extrinsic
15
evidence (the Ramakrishnan textbook) supports Teradata’s definition. See Declaration of Jaideep
16
Srivastava (Dkt. No. 219-1) ¶ 24. The textbook explains that optimizing involves “[e]stimating
17
the cost of each enumerated plan and choosing the plan with the lowest estimated cost.” See
18
Ramakrishnan, et al. “Database Management Systems,” McGraw Hill Press (Third Ed. 2003),
19
Dkt. No. 211-5 at 479. Teradata also points to the text of the ʼ179 Patent, which identifies
20
“execution cost” as the only criterion, noting that the optimization process:
21
22
23
24
25
26
27
28
determin[es] an optimal access plan for each query block based upon
selecting access methods, join methods, and join order for plan nodes
of the query optimization graph having favorable execution costs;
and constructing a detailed access plan for execution of the database
query based upon the optimal access plan determined for each query
block.
ʼ179 patent, 5:46-49 (emphasis added)); Srivastava Decl. ¶ 24.
SAP disagrees with limiting the optimization criteria to only “execution costs.” SAP
Claim Construction Reply Brief (SAP Reply) 1. SAP points out that the Patent specifies
considering “favorable execution costs,” but favorable does not mean lowest. Id. SAP also
5
1
contends that the Patent identifies other factors to be considered, pointing to one embodiment
2
where plan selection is based on a “property vector” that is used to “compare the current access
3
plan with the best plan that has been previously found.” Reply Declaration of David Maier (Dkt.
4
222-1) ¶ 5; ʼ179 Patent 18:58-60. SAP notes that the Patent goes on to explain that “[a] main
5
component of the property vector is the cost estimate associated with a plan node or a partial
6
access plan” which confirms other components are considered. SAP Reply 2 (quoting ʼ179 patent
7
at 18:60-62).
8
9
10
United States District Court
Northern District of California
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Given the heavy and repeated emphasis on “costs” in the claim language and specification,
cost is obviously a key if not primary factor in optimization. However, Teradata’s attempt to
exclude from consideration any other non-cost factors is simply not supported.
Adopted Construction – “Optimal access plan”: The estimated best plan, considering
estimates of execution costs, among the plans considered.
Adopted Construction – “Optimize[d]”: Find/found the estimated best plan,
considering estimates of execution costs, among the plans considered.
“ Query optimization graph”
For example, as used in Claim 1 of the ʼ179 Patent (emphasis added):
In a database system, a method for optimizing a database query for
execution by a processor, the method comprising: receiving a
database query including at least one subquery; building a query
optimization graph for each query block of the database query, the
query optimization graph including plan nodes representing
subqueries of each query block;
’179 Patent at 38:47-53.
Patent/Term
SAP’s Proposal
“an internal
Query optimization representation of a
graph: Claims 1,3,
query block or
23 of the ʼ179 Patent derived table
block, structured as a
graph”
Teradata’s Proposal
“a representation of a
query block in the
form of a hypergraph
(a graph in which an
edge can join any
number of vertices)
that includes vertices
(nodes) and edges
(connections between
two nodes), including
hyperedges (a
connection that can
6
link more than two
nodes) in which
nodes can represent
subplans and
quantifiers; and in
which each node
representing subplans
includes an array of
access methods and
an array of join
methods”
1
2
3
4
5
6
7
8
9
10
United States District Court
Northern District of California
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Both sides admit that the preferred embodiment of the ʼ179 Patent describes a
“hypergraph.” Teradata relies heavily on the fact that in discussing the preferred embodiment in
the “Detailed Description of a Preferred Embodiment” section, “Definition 4” defines the “query
optimization graph” (QOG) as a hypergraph. ʼ179 Patent, 14:47-49. Teradata argues, therefore,
that the QOG must be defined as a hypergraph, noting that there are no other types of
embodiments of QOGs disclosed in the ʼ179 Patent.
SAP responds by pointing out that Definition 4 is not contained in the “glossary section”
(which defines terms used throughout the Patent) but only in the definitions section of the
preferred embodiment, which makes it improper to define for the Patent as a whole. SAP also
argues that Teradata’s definition (including the mention of edges and nodes) is improper because it
would make dependent claim 3 (which covers the “method of claim 1, wherein said building step
includes building a query optimization graph including subplans and quantifiers of each query
bloc”) superfluous. SAP Claim Construction Brief (“SAP CC,” Dkt. No. 211) 5; ʼ179 Patent
39:11-14; Phillips v. AWH Corp., 415 F.3d 1315 (Fed. Cir. 2005) (en banc) (“[T]he presence of a
dependent claim that adds a particular limitation gives rise to a presumption that the limitation in
question is not present in the independent claim.”). Teradata contends that this doctrine does not
apply where an explicit definition is included in the patent itself and that SAP is impermissibly
attempting to broaden the scope of the QOG term. TD CC 5. Teradata, however, never directly
addresses the fact that Definition 4 is used to describe the preferred embodiment and not the scope
of the invention itself.
SAP also argues the query optimization graph is not limited to hypergraphs by pointing to
28
7
1
intrinsic evidence including prior art references, examiner statements, and inventor’s arguments.
2
SAP CC 5. For instance, SAP points to two examples in the prior art cited by the examiner that
3
depict QOGs that are not hypergraphs - a “tree structure” and a QOG that is an “internal
4
representation of a complete SQL statement, possible composed of multiple ‘subquery blocks.’”
5
JCCPS Exhibit 1 [Dkt. No. 2016-1] at 3 (citing language from the Young-Lai Patent). SAP
6
contends that these types of graphs appeared in the prior art cited by the examiners, and, as a
7
result, a POSITA would have known that a QOG was not limited to a hypergraph.
8
9
10
United States District Court
Northern District of California
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
I agree with SAP that Definition 4 is relevant to the preferred embodiment and not (as the
glossary is) relevant to the Patent as a whole and, relatedly, that the use of a hypergraph in the
preferred embodiment does not require QOGs to be hypergraphs.
Adopted Construction – “Query optimization graph”: An internal representation of
a query block or derived table block, structured as a graph.
Query Block
As used in Claim 1:
In a database system, a method for optimizing a database query for
execution by a processor, the method comprising: receiving a
database query including at least one subquery; building a query
optimization graph for each query block of the database query, the
query optimization graph including plan nodes representing
subqueries of each query block.
’179 Patent at 38:47-53.
Patent/Term
Query block
Claims 1, 2, 3, 23 of
the ʼ179 Patent
[all asserted claims]
SAP’s Proposal
“an atomic portion of
a query that
can be separately
optimized”
Teradata’s Proposal
“a part of a query that
contains multiple
parts because the
query contains
derived tables, views,
and/or subqueries”
Both sides agree that a query block is the smallest part of a query that can be separately
optimized. Teradata would consider including the word “atomic” in its definition if the parties
could clarify the meaning of atomic since it does not hold a “well-known meaning for potential
jurors.” TD CC 8. In response to Teradata’s concern over the word atomic, SAP proposes an
alternative construction: a query block is “the smallest portion of a query that can be separately
8
1
optimized.” SAP 4.
The remaining dispute is whether the additional features of a query (containing the query
2
3
block) identified in the Patent specification should be included in this definition. Both parties
4
derive their definitions from the “glossary” section of the ʼ179 Patent which states, “[a] query
5
block refers to an atomic portion or block of a query that has more than one block because the
6
query contains derived tables views, and/or subqueries.” ʼ179 Patent: 4:43–45. The glossary
7
definition then gives three examples of what query blocks can be.
SAP argues that its construction should be adopted because it explains what a query block
8
9
is. SAP CC 8. SAP omits the “has more than one block because the query contains derived
tables, views, and/or subqueries” part of the glossary definition, not because it is “inaccurate” but
11
United States District Court
Northern District of California
10
because it is “unnecessary” and difficult for a jury to understand. Id. Teradata contends that by
12
omitting this language, SAP is attempting to omit the “very thing [it] has named query block” and
13
is an attempt to expand the scope of the patent. TD CC 8 (internal quotations omitted).
14
SAP contends that Teradata’s definition, focusing on “why” something is a query block,
15
could lead to juror confusion and could lead a juror to improperly understand that a query block
16
encompasses any part of the query even if it is too small or too large to be optimized. SAP CC 8.
17
SAP cites to Teradata’s expert’s admission that Teradata’s proposed definition only “explains
18
why a query block would be created.” SAP Reply 4 (quoting Srivastava ¶ 26).
19
After considering both sides’ arguments, in my Tentative Opinion issued prior to the June
20
12, 2020 Hearing, I suggested a construction of this claim term. Dkt. No. 265. Both sides agreed
21
to my proposed construction. June 12, 2020 Transcript (Transcript) 20:18-24.
Adopted Construction – “Query block”: A query block refers to the smallest portion
22
23
of a query (which has more than one block) that can be separately optimized.
24
II.
ʼ421 PATENT
25
A. “share a consistent view of said database information”
26
For example, as used in Claim 1 of the ʼ421 Patent:
27
28
A computer system storing a computer program for processing
database information for both transacting and reporting, said
computer program being executed by said computer system, the
9
1
2
3
4
5
6
7
8
9
10
United States District Court
Northern District of California
11
12
13
14
15
computer system comprising… in response to a database update
request, said relational database management system component
updates said database information stored in said row format, said
relational database management system component notifies said
column-oriented data processing component of said database update
request, and said column-oriented data processing component updates
said database information stored in said column format, whereby said
relational database management system component and said columnoriented data processing component share a consistent view of said
database information
’421 Patent at 19:64-67, 20:12-23.
Patent/Term
SAP’s Proposal
“update the rowShare a consistent
format data (by the
view of said
relational
database
information: Claims database
1,19, 20 of the ’421
management system
Patent
component) and
update the column[all asserted claims]
format data (by the
column-oriented data
processing
component)
within the same
database transaction”
Teradata’s Proposal
“database information
that if accessed by
the relational database
management
component is the
same as if accessed
by the
column-oriented data
processing
component”
SAP argues that the Patent makes clear that the “column-format data and the row-format
16
data are updated within the same database transaction.” SAP CC 10; Maier Decl. ¶ 81. Dr. Maier
17
contends that a POSITA would have understood “share a consistent view of said database
18
information” to have multiple meanings in the art. Maier Decl. ¶ 81. However, based on the
19
Patent and prosecution history, a POSITA would have understood it consistent with SAP’s
20
proposed construction, including the cabining of the process to “within the same transaction.” Id.
21
¶ ¶ 81-84. SAP contends that Teradata’s construction is insufficient because it could imply that
22
the two components of data are updated in separate transaction that would be contrary to the term
23
“share a consistent view of said database information.” SAP CC 11.
24
Teradata asserts that SAP’s construction does not require data consistency and hides this
25
with the phrase “within the same database transaction.” TD CC 16. Teradata’s expert, Dr.
26
Shahram Ghandeharizadeh states that a POSITA would have understood the term to refer to the
27
“database information, not the database transaction, as being the same.” Declaration of Shahram
28
Ghandeharizadeh (Dkt. No. 219-3) ¶ 35. Teradata contends that SAP’s definition fails to show the
10
1
significant limitation that the “two components are working with the same data at all times.” TD
2
CC 15. It argues that SAP’s use of the phrase “within the same database transaction” is an attempt
3
to insert a specific embodiment into the claims that ignores other embodiments. TD CC 16.
4
SAP replies that it does not improperly read “consistent” out of the claim since “share a
5
consistent view” refers to the timing of the updates, which their definition encompasses. SAP
6
Reply 6. It asserts that its construction addresses the timing of the updates in a way that
7
demonstrates the row-format and column-format data are updated in the same way because they
8
are responding to the same update request. SAP Reply 5. SAP argues that Teradata fails to do
9
this – and itself fails to guarantee consistency – because Teradata’s construction would be satisfied
if both row-format and column-format data were updated in the same way but in different
11
United States District Court
Northern District of California
10
requests. SAP Reply 6.
12
13
14
I agree with SAP that there is adequate support for requiring the consistency to be achieved
during the “same transaction” and adopts its proposed construction.
Adopted Construction – “Share a consistent view of said database information”:
15
Update the row-format data (by the relational database management system component)
16
and update the column-format data (by the column-oriented data processing component)
17
within the same database transaction.
18
19
20
21
22
23
24
25
26
27
28
B.
“wherein generating the query response accesses only one or more columns
needed directly for generating the query response”
As used in Claim 1 of the ʼ421 Patent:
A computer system storing a computer program for processing
database information for both transacting and reporting, said
computer program being executed by said computer system, the
computer system comprising… in response to a query request to
retrieve data, said column-oriented data processing component
generates a query response based on said database information stored
in said column format, wherein generating the query response
accesses only one or more columns needed directly for generating
the query response.
’421 Patent at 19:64-67, 20:12-23.
In their briefing, the parties agreed that this claim does not need to be construed and its
plain meaning adopted. Therefore, no construction is necessary.
11
1
2
3
4
5
6
7
8
9
10
United States District Court
Northern District of California
11
12
13
14
15
III.
ʼ437 PATENT
The parties seek construction of only one claim term from the ʼ437 Patent.
“a plurality of data dictionary cache at an application level”
As used in Claim 1:
A computer-implemented method comprising …referencing a
plurality of data dictionary cache at an application level to obtain
the data type associated with the system information…. selecting a
data dictionary cache from the plurality of data dictionary cache at
the application level, if the data dictionary cache includes the data
type
’437 Patent at 7:65, 8:8-10, 8:17-19.
Patent/Term
SAP’s Proposal
“multiple data
A plurality of data
dictionary caches at a
dictionary cache at
an application level: layer of software,
different from a data
Claims: 1, 6, 11, 15
access layer, that
of the ’437 Patent
provides services to a
user of data dictionary
information, and
obtains that data
dictionary information
from the data access
layer”
Teradata’s Proposal
“multiple data
dictionary caches that
are in corresponding
application servers
existing in a layer
different from the
data access level”
16
17
18
SAP added the underlined clause in response to Teradata’s argument that SAP’s definition
19
confused the “application level” and the “data level.” TD CC 18; SAP CC Reply 8. Teradata
20
takes no issue with that clarification. The parties still dispute whether there is a need to include
21
“corresponding” from Teradata’s definition, and whether it would confuse a jury into thinking that
22
correspondence between two layers is required. SAP CC 14. SAP argues that the use of
23
“corresponding” improperly implies that a correspondence between “data dictionary caches and
24
application servers is required.” SAP CC 15. SAP and Maier argue that a POSITA would
25
understand that such correspondence between the servers would not be required.
26
The next issue is the location of the data dictionary caches. Teradata asserts that it takes no
27
position on “whether the claimed data dictionary caches must reside on one application server, or a
28
plurality of application servers,” just that the “specification and prosecution history make clear
12
1
that any such caches must be at the application level (i.e. in one or more application servers) and
2
not the data access level.” However, SAP’s expert, Maier contends that a POSITA would not
3
have “inferred that there was a correspondence between a cache in the application layer and an
4
application server” which he argues is confirmed in the prosecution history. Maier Decl. ¶¶ 92-93.
At the hearing, Teradata agreed that “correspondence” could be dropped from its
5
6
definition, nullifying that dispute. However, it reasserted its position that its language focusing on
7
application servers should remain in to avoid ambiguity. Transcript 46:24 - 47:6. I disagree.
8
Teradata’s attempt to insert that additional limitation of a required connection to an “application
9
server” into this construction is without support.
Adopted Construction – “a plurality of data dictionary cache at an application level”:
10
United States District Court
Northern District of California
11
Multiple data dictionary caches at a layer of software, different from a data access layer,
12
that provides services to a user of data dictionary information, and obtains that data
13
dictionary information from the data access layer.
14
IV.
15
ʼ321 PATENT
Initially, the parties disagree over what the qualifications for a POSITA would be for the
16
ʼ321 patent; Teradata contends through its expert Dr. Gandeharizadeh that a “higher” level of skill
17
(a master’s degree or a bachelor’s in computer science plus four years’ experience) is appropriate
18
for this patent. Ghandeharizadeh Decl. ¶¶ 17-20. Both parties agree that the qualifications of a
19
person of skill in the art should not affect the claim construction analysis for any patent. TD CC
20
2; SAP CC 1.
21
A. “Mapping” / “Mapping Table”
22
As used in claim 4:
23
24
A data processing system comprising… a mapping table for mapping
a sub-set of the set of online analytical processing cubes to the at least
one class of online analytical processing cubes
25
’321 Patent at 7:46, 8: 5-7.
26
As used in claim 7:
27
28
The computer program product of claim 6, the online analytical
processing cube being identified by a second mapping table.
13
1
2
3
Id. at 8:48-50.
Patent/Term
Mapping: Claims 1,
4, 6 of the ’321
Patent
4
5
6
7
8
9
10
United States District Court
Northern District of California
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Mapping table:
Claim 7 of the ’321
Patent
SAP’s Proposal
“creating and storing,
in computer system
memory or secondary
storage for a
computer system, an
association between
two data elements in
the computer system
such that a computer
can locate a data
element using that
association
“a computerimplemented data
structure that holds
associations or
assignments, each
between two
data elements in a
computer system”
Teradata’s Proposal
“associating or
assigning”
“a computerimplemented data
structure
that holds
associations or
assignments”
The disputes on these terms are whether “mapping” must be stored and whether the
mapping is limited to “between two data elements.” The underlined text in SAP’s proposal was
offered in response to Teradata’s argument that storage needed to be defined.
On the first issue, SAP argues that in all embodiments the mapping is stored, which makes
sense because its purpose is to allow applications to access and process entities stored in tables
and cubes assigned to classes, and it points to references in the Patent to mapping being
“retrieved”, not created anew. ʼ321 Patent 5:45-54. Teradata replies that there is nothing in the
Patent showing that there is a requirement that either the “mapping” or “mapping table” be stored
“persistently” and contends that storage of mapping is simply permissive in the Patent. ʼ321
Patent 6:11-17 (noting mapping and mapping table data “may be” stored). Teradata also accuses
SAP of attempting to collapse the distinction between mapping and mapping table, because the
Patent explains only that “corresponding mapping may be stored as a further mapping table.” Id.
As to the second issue, SAP argues that in the patent, “mapping” assigns pairs of elements
and a POSITA would have understood this to be true. SAP CC 18. Teradata disagrees with
SAP’s construction that the assignments are “pairwise”; since multiple tables can be assigned to
14
1
any class, there is not necessarily a 1:1 relationship. TD CC 11. SAP reasserts that although more
2
than one table can be mapped to a class, the assignment of each table to class is done in a pairwise
3
way one table at a time and that Teradata’s expert’s statements also support this construction.
4
SAP Reply 10-11.
5
I agree with SAP that mapping is stored given the logical need and evidence in the
6
specification. But I agree with Teradata that there is insufficient basis to limit that mapping to
7
“pairwise” elements as a matter of claim construction.
8
9
Adopted Construction – “Mapping”: Creating and storing, in computer system
memory or secondary storage for a computer system, an association between data elements
in the computer system such that a computer can locate a data element using that
11
United States District Court
Northern District of California
10
association.
12
13
Adopted Construction – “Mapping Table”: A computer-implemented data structure
that holds associations or assignments.
14
B. “Online Analytical Processing Cube”
15
As used in Claim 1:
16
17
18
19
20
21
22
23
24
A data processing method comprising… providing a set of online
analytical processing cubes in a data warehouse, each online
analytical processing cube specifying a layout for transactional data
storage;’321 Patent at 7:12, 16-18.
Patent/Term
Online analytical
processing cube:
Claims 1, 2, 4, 6, 7, 8
of the ’321 Patent
SAP’s Proposal
“a data structure
(or a computerexecutable definition
thereof) to store
multidimensional
data, where data to be
stored in the data
structure is or will be
provided by online
analytical processing”
Teradata’s Proposal
“a data structure
designed to store
multidimensional
data, where data to be
stored in the data
structure is provided
by online analytical
processing.”
25
26
The parties agree that the OLAP cube is a “a data structure designed to store
27
28
15
1
multidimensional data,” referring to a physical instance of a data structure.2 In dispute is whether
2
the construction should also include the data-structure “definition” used to create that instance.
SAP argues that the “definition” term should be included because the ʼ321 Patent contains
3
4
several statements indicating that OLAP cubes may be “predefined,” and therefore a POSITA
5
would have understood OLAP cubes in context of the Patent to include both the data structure and
6
definition. SAP CC 18; SAP Reply at 11 (“in instantiated OLAP cube is created from its
7
definition, making the definition and instance two stages of the same cube.”). SAP’s expert agrees
8
that a POSITA would have understood the term to reference both the data structure and the
9
definition of the data structure. Maier Decl. ¶¶ 102-103.
Teradata responds that SAP is seeking to expand the claimed term because the “existence
10
United States District Court
Northern District of California
11
of a definition does not necessarily mean an instance of it exists.” Ghandeharizadeh Decl. ¶ 31.
12
The definition of an OLAP cube, according to Teradata, must be implemented in a data structure in
13
order to embody what is claimed, and the patent cannot cover only the definition without at least
14
one instance.
15
SAP replies that it is not saying that the definition of a data structure and an instantiated
16
cube are the same, but that in context of the Patent a POSITA would have understood an OLAP
17
cube to potentially refer to either. Therefore, it amended its proposed construction, to include the
18
underlined text. But I agree with Teradata that SAP is attempting to broaden this term without
19
support and will adopt Teradata’s proposal.
20
Adopted Construction – “Online Analytical Processing Cube”: A data structure
21
designed to store multidimensional data, where data to be stored in the data structure is
22
provided by online analytical processing.
C. “[means for] invoking an online analytical processing component to fill the online
23
analytical processing cubes with transactional data”
24
As used in Claim 1:
25
A data processing method comprising …invoking an online analytical
26
27
28
OLAP cubes are data structures that are the “basis for transaction data storage in prior art data
warehouse systems.” ʼ321 Patent 1:26-27.
16
2
processing component to fill the online analytical processing cubes
with transactional data[.]
1
2
’321 Patent at 7:12, 29-31.
3
As used as “means-plus-function” element in Claim 4:A data
processing system comprising … means for invoking an online
analytical processing component to fill the online analytical
processing cubes with transactional data[.]
4
5
6
Id. at 7:46-8:8-10.
Patent/Term
7
8
9
10
United States District Court
Northern District of California
11
12
13
14
[means for]
invoking an online
analytical
processing
component to fill
the online
analytical
processing cubes
with transactional
data: Claim 1, 4 of
the ’321 Patent
[all asserted claims]
SAP’s Proposal
Teradata’s
Proposal
“using software to
“using an online
transfer transactional
analytical processing
data into online
component to
analytical processing
transfer transactional
cubes”
data into empty
online analytical
processing cubes”
This claim element is
This claim element is
governed
governed by 35
by 35 U.S.C. 112(6).
U.S.C. 112(6).
Structure/Material/Acts Corresponding
An application program. Structure: none;
indefinite
15
16
The parties disagree about the meaning of the term when invoked as a step as depicted in
17
Claim 1 and regarding the use of the term as a “means-plus-function” element as depicted in
18
Claim 4. Regarding the use of the term as a “means-plus-function” element, the parties argue
19
whether the specification adequately describes a corresponding structure for performing the
20
function.
21
22
1.
“Invoking Step”
First, the parties disagree whether the OLAP cubes must be empty when “transfer[ing]
23
transactional data into” them. SAP argues that there is nothing in the claims nor the specification
24
requiring that the OLAP cubes must be empty. Rather, the language implies only that they “may
25
be” empty. SAP CC 20. Teradata responds that the statement that the OLAP cubes “may be
26
empty” is the only evidence cited by SAP, and that this supports its position that the cubes must
27
initially always be empty. TD CC 13. Teradata also asserts that the claims and specifications
28
show that the claims follow an ordered set of steps and based on that ordering, when the
17
1
“invoking” step occurs the cube has not been filled. Id. SAP replies that nothing in the claims
2
requires the steps to be performed in order, and there is nothing in the claims that require the
3
OLAP cubes to be empty when provided.
4
I agree with SAP. Teradata’s proposed construction inserting “empty” is not supported.
5
Adopted Construction – “Invoking an online analytical processing component to fill
6
the online analytical processing cubes with transactional data”: Using software to transfer
7
transactional data into online analytical processing cubes.
8
9
2.
“Means-Plus-Function”
Turning to the question of whether there is an adequately disclosed structure to perform the
claimed means, SAP argues that the specification discloses that the “invoking” function is used
11
United States District Court
Northern District of California
10
with an application program, which is a sufficiently disclosed structure. SAP CC 19. SAP lists
12
several examples of application programs that a POSITA would have known could invoke OLAP
13
functionality. Id. at 19-20. It relies on Zeroclick, LLC v. Apple Inc., where the Federal Circuit
14
found that the claims were not invalid for indefiniteness under § 112 ¶ 6. 891 F.3d 1003, 1008
15
(Fed. Cir. 2018) (finding that in the patent “program” and “user interface code” were not used as
16
“generic terms” but “as specific references to conventional graphical user interface programs or
17
code, existing in prior art at the time of the inventions.”).
18
Teradata argues that a generic application program is not enough to satisfy the structure
19
requirements under the Federal Circuit case law. It relies, instead, on Aristocrat Techs. Australia
20
PTY Ltd. v. Int’l Game Tech., where the Federal Circuit affirmed the district court’s ruling that
21
providing a “general purpose microprocessor” was not a sufficient disclosure of structure under
22
112 ¶ 6 as the patent holder did not “disclose particular structure in the specification … to avoid
23
pure functional claiming.” 521 F.3d 1328, 1333 (Fed. Cir. 2008). Teradata argues since the claim
24
does not explain how the software works, it does not satisfy § 112 ¶ 6.
25
SAP replies that here the particular structure is an application program, which is not a
26
prohibited simple reference to “general-purpose computer processor” or just “appropriate
27
programming.” It contends that Zeroclick itself demonstrated that a computer program can be an
28
adequately disclosed structure. SAP Reply 12. Finally, it cites to a recently decided Federal
18
1
Circuit opinion that clarified that Aristocrat’s holding requires a “specific algorithm” only when
2
the asserted structure is a reference to a “general-purpose computer or microprocessor”, which is
3
not what this Patent discloses. Nevro Corp. v. Boston Sci. Corp., 2020 WL 1802794 *1, *5 (Fed.
4
Cir. April 9, 2020).
At the hearing, both sides admitted that the determination of whether there is a sufficiently
5
6
disclosed structure for this means does not need to be determined on claim construction. Both
7
agreed that this determination could be deferred until summary judgment when this and other
8
means-plus-function claims will be addressed. Transcript at 39:6-12 (Teradata); 43:3-7 (SAP). I
9
will therefore address all of Teradata’s means-plus-function challenges at that time.
10
United States District Court
Northern District of California
11
12
13
14
15
16
17
18
19
20
V.
ʼ516 PATENT
The parties dispute three related phrases from the ʼ516 Patent: “eviction policy plug-in” /
“storage policy plug-in” / “plug-in”
As used in Claim 1 of the ʼ516 Patent:
A method, comprising …configuring respective first and second
cache portions by plugging said first and second eviction policy plugins into a cache management software program and plugging
respective first and second storage plug-ins into said cache
management software program;
’516 Patent at 19:25, 43-47.
Patent/Term
SAP’s Proposal
Plug-in: Claims 1, 9, “piece of software or
17 of the ’516 Patent code that provides a
[all asserted claims]
requisite
functionality”
21
22
23
24
25
26
27
28
Eviction
policy plug-in:
Claims 1, 9, 17 of the
’516 Patent
“the actual piece of
software or code that
dictates the removal
of an object from
cache”
Teradata’s Proposal
“a discrete body of
code that is separate
from a main program
and can be added to
and removed from the
main program without
modification to the
main program, such
that the discrete body
of code adds
functionalities
to the main program
when added to it”
“plug-in for
performing a sorting
method and
an eviction timing
method.”
19
1
2
3
Storage policy
plug-in (or
storage plugin):
Claims 1, 9, 17 of the
’516 Patent
“the actual piece of
software or code that
executes the “get”
and “put” operations
for objects stored in
cache”
“plug-in for
performing cache
storage treatment of
stored data.”
4
5
6
SAP argues that Teradata’s construction would include limitations that are not supported
by intrinsic evidence. These limitations would require the plug-ins to be:
7
1) a discrete body of code; 2) separate from a main program; 3) able
to be added to and removed from the main program without
modification to the main program; and 4) add functionalities.
8
9
10
United States District Court
Northern District of California
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
SAP Reply 13.
Teradata contends that these limitations are well-supported by the general understanding of
the “known term of art” of a “plug-in” and that because SAP did not act as its own lexicographer
and did not otherwise define “plug-in” to be something other than what was generally understood
at the time, its construction should be adopted. Declaration of Dr. Daniel Menascé (Dkt. No. 2195) ¶¶ 24-25 (“eviction policy plug-in” and “storage policy plug-in” contain a known term of art,
“plug-in,” a POSITA would have understood what these terms mean in context of the known
term). In turn, Teradata argues that the definition of “plug-in” cannot be separated from the
definition of “eviction policy plug-in” or “storage policy plug-in.” TD CC 21.
SAP responds that eviction policy plug-ins and storage policy plug-ins were not used in
this Patent consistent with existing terms of the art and SAP’s definitions should be adopted
because they are taken from the specification. SAP CC 23; ʼ516 Patent, at 7:8–11 (explaining an
embodiment of the eviction policy plug-in); ʼ516 Patent, at 7:1–4 (explaining an embodiment of
the storage policy plug-in); Maier Decl. ¶¶ 106-08. SAP argues that Teradata improperly ignores
the intrinsic evidence and construes “plug-in” in isolation, which is improper because “plug-in”
even has several different terms of the art which could lead to jury confusion. SAP CC 23. SAP
admits that a “plug-in” is a common term of art but it argues the term has no “single well-accepted
meaning” and that Teradata’s extrinsic evidence supports this by showing “inconsistent meanings
of ‘plug-in.’” SAP Reply 15. Unlike other examples of plug-in and as required by Teradata’s
definition, SAP asserts that the plug-ins do not simply add functionality but are “required” for the
20
1
patent’s functionality. SAP CC 23; Maier Decl. ¶ 110 (stating “[a] POSITA would have
2
recognized that the ‘eviction policy plug-in’ and ‘storage plug-in’ performed specific functions
3
that were required for the operation of the cache manager of the ʼ516 patent”).
4
Finally, SAP contends that Teradata’s proposal adds limitations that are not supported by
either the cited intrinsic or extrinsic evidence: namely, “none of the cited evidence indicates that a
6
‘plug-in’ must be ‘a discrete body of code,’ or requires that a ‘plug-in’ ‘can be added to and
7
removed from the main program without modification to the main program.’” SAP CC 24.
8
Teradata replies that the claim language shows that a plug-in must be “plug[ed] into a main
9
program.” TD CC 24 (internal quotations omitted). Further, the specification shows “that a plug-
10
in in a library is a discrete body of code that is plugged into a cache manager… without modifying
11
United States District Court
Northern District of California
5
the rest of the main program”). ʼ517 Patent, Figures 4, 16. SAP agrees with Teradata that the
12
claims use of “plugging” shows that the plug-in is added to the “cache management software,” but
13
figures in the ʼ516 patent show the “eviction policy plug-in and the storage plug-in within the
14
cache manager … indicating that the two plug-ins are neither discrete nor separate.” See Figures 4-
15
8 (showing the plug-ins within the cache management software).
16
In my Tentative Order, I proposed the following definition of plug-in: a “piece of software
17
or code that can be added to and removed from the main program without modification to the
18
main program to provide a requisite functionality.” Dkt. No. 265 at 4. I also tentatively adopted
19
SAP’s proposed definitions for eviction and storage policy plug-ins. Id. As the hearing, Teradata
20
was happy with the Court’s construction of plug-in, but questioned how it would fit into the
21
policies. Transcript at 30:10-13. SAP agreed with part of the suggested definition but took issue
22
with “removed,” as removal of the plug-in is not required or supported by the claim language or
23
specification. Transcript at 28:21-25. SAP also argues that the “without modification” language
24
needs clarification so that it is clear that the addition of the plug-in would be done “without
25
modification to the other functionality of the main program.” Transcript at 29:12-16.
26
I adopt SAP’s proposed revision of my proposed language. My construction does not
27
foreclose Teradata’s argument that the plug-in must be a “discrete” modular set of code and that
28
the claim language does not cover a developer’s subsequent rewrite of a program to add
21
1
2
3
4
5
6
7
functionality. Those arguments can be raised on summary judgment.
Adopted Construction – “Plug-in”: A piece of software or code that can be added to
the main program without modification to the other functionality of the main program.”
Adopted Construction – “Eviction policy plug-in”: The plug-in that dictates the
removal of an object from cache.
Adopted Construction – “Storage policy plug-in (or storage plugin)”: The plug-in
that executes the “get” and “put” operations for objects stored in cache.
CONCLUSION
8
9
10
United States District Court
Northern District of California
11
12
13
14
15
16
17
18
For the foregoing reasons the disputes terms are construed as follows:
“Optimal access plan”: The estimated best plan, considering estimates of execution
costs, among the plans considered.
“Optimize[d]”: Find/found the estimated best plan, considering estimates of
execution costs, among the plans considered.
“Query optimization graph”: An internal representation of a query block or derived
table block, structured as a graph.
“Query block”: A query block refers to the smallest portion of a query (which has
more than one block) that can be separately optimized.
“Share a consistent view of said database information”: Update the row-format data
19
(by the relational database management system component) and update the column-format
20
data (by the column-oriented data processing component) within the same database
21
transaction.
22
“A plurality of data dictionary cache at an application level”: Multiple data
23
dictionary caches at a layer of software, different from a data access layer, that provides
24
services to a user of data dictionary information, and obtains that data dictionary
25
information from the data access layer.
26
“Mapping”: Creating and storing, in computer system memory or secondary storage
27
for a computer system, an association between data elements in the computer system such
28
that a computer can locate a data element using that association.
22
“Mapping Table”: A computer-implemented data structure that holds associations
1
2
or assignments.
“Online Analytical Processing Cube”: A data structure designed to store
3
4
multidimensional data, where data to be stored in the data structure is provided by online
5
analytical processing.
“Invoking an online analytical processing component to fill the online analytical
6
7
processing cubes with transactional data”: Using software to transfer transactional data
8
into online analytical processing cubes.
“Plug-in”: A piece of software or code that can be added to the main program
9
10
without modification to the other functionality of the main program.”
“Eviction policy plug-in”: The plug-in that dictates the removal of an object from
United States District Court
Northern District of California
11
12
13
14
15
16
cache.
“Storage policy plug-in (or storage plugin)”: The plug-in that executes the “get” and
“put” operations for objects stored in cache.
IT IS SO ORDERED.
Dated: July 15, 2020
17
18
William H. Orrick
United States District Judge
19
20
21
22
23
24
25
26
27
28
23
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?