Download - Overview of MONOMI
![Page 1: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/1.jpg)
Processing Analytical Queriesover Encrypted Data
Stephen Tu, M. Frank Kaashoek,Samuel Madden, and Nickolai Zeldovich
39th International Conference on Very Large Data BasesRiva del Garda, Trento, Italy, August 2013
SWIM SeminarMay 19th, 2015Mateus Cruz
![Page 2: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/2.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
OUTLINE
1 Introduction
2 Split Execution
3 Optimization Techniques
4 Designer and Planner
5 Experiments
6 Conclusion
2 / 31
![Page 3: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/3.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
OUTLINE
1 Introduction
2 Split Execution
3 Optimization Techniques
4 Designer and Planner
5 Experiments
6 Conclusion
3 / 31
![Page 4: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/4.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
OVERVIEW
System called MONOMII Extension of CryptDB
Analytical queries over encrypted dataI Data protected against server compromises
Modest overheadI Slowdown of 1.03 to 2.33×
4 / 31
![Page 5: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/5.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
MAIN IDEAS
Split client/server executionOptimization techniques
I Per-row precomputationI Space-efficient encryptionI Grouped homomorphic additionI Pre-filtering
DesignerI Physical data layout
PlannerI Efficient execution plan for queries
5 / 31
![Page 6: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/6.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
USED ENCRYPTION SCHEMES
6 / 31
![Page 7: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/7.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
ARCHITECTURE
7 / 31
![Page 8: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/8.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
OUTLINE
1 Introduction
2 Split Execution
3 Optimization Techniques
4 Designer and Planner
5 Experiments
6 Conclusion
8 / 31
![Page 9: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/9.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
INTUITION
The server cannot execute all queriesI Limitations of cryptosystems
Cannot transfer all data to the clientI Large amount of data
Divide executionI Execute as much as possible on serverI Transfer data to the client when it is not
possible to execute on the server
9 / 31
![Page 10: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/10.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
LIMITATIONS OF SERVER EXECUTION
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty) AS valueFROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty) * 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
10 / 31
![Page 11: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/11.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
LIMITATIONS OF SERVER EXECUTION
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty) AS valueFROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM
Addition and comparison in-volve incompatible encryptionschemes
(ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty) * 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
10 / 31
![Page 12: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/12.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
LIMITATIONS OF SERVER EXECUTION
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty) AS valueFROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
No efficient encryptionscheme allows multiplica-tion of two encrypted values
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
10 / 31
![Page 13: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/13.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSortkey:[$1]
LocalProjectionexprs: [$0, sum($1)]
LocalGroupFilterfilter: sum($1) > subquery0()
LocalDecryptpos: [$0, $1]
LocalProjectionexprs: [sum($0) * 0.0001]
RemoteSQLSELECT
ps parkey DET,GROUP(precomp DET)
FROM ... WHEREn name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecryptpos: [$0]
RemoteSQLSELECT
GROUP(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 14: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/14.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSortkey:[$1]
LocalProjectionexprs: [$0, sum($1)]
LocalGroupFilterfilter: sum($1) > subquery0()
LocalDecryptpos: [$0, $1]
LocalProjectionexprs: [sum($0) * 0.0001]
RemoteSQLSELECT
ps parkey DET,GROUP(precomp DET
Precomputedmultiplication
)FROM ... WHERE
n name DET = 0xabcdefGROUP BY ps partkey DET
LocalDecryptpos: [$0]
RemoteSQLSELECT
GROUP(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 15: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/15.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSortkey:[$1]
LocalProjectionexprs: [$0, sum($1)]
LocalGroupFilterfilter: sum($1) > subquery0()
LocalDecryptpos: [$0, $1
Reference tothe columnsof the childoperator
]LocalProjection
exprs: [sum($0) * 0.0001]
RemoteSQLSELECT
ps parkey DET,GROUP(precomp DET)
FROM ... WHEREn name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecryptpos: [$0]
RemoteSQLSELECT
GROUP(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 16: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/16.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSortkey:[$1]
LocalProjectionexprs: [$0, sum($1)]
LocalGroupFilterfilter: sum($1) > subquery0()
LocalDecryptpos: [$0, $1]
LocalProjectionexprs: [sum($0) * 0.0001]
RemoteSQLSELECT
ps parkey DET,GROUP(precomp DET)
FROM ... WHEREn name DET = 0xabcdef
Deterministicencryption of thevalue :1
GROUP BY ps partkey DET
LocalDecryptpos: [$0]
RemoteSQLSELECT
GROUP(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 17: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/17.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSortkey:[$1]
LocalProjectionexprs: [$0, sum($1)]
LocalGroupFilterfilter: sum($1) > subquery0()
LocalDecryptpos: [$0, $1]
LocalProjectionexprs: [sum($0) * 0.0001]
RemoteSQLSELECT
ps parkey DET,GROUP(precomp DET)
FROM ... WHEREn name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecryptpos: [$0]
RemoteSQLSELECT
GROUP
Concatenation of all valuesfrom each GROUP BY group
(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 18: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/18.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSortkey:[$1]
LocalProjectionexprs: [$0, sum($1)]
LocalGroupFilterfilter: sum($1) > subquery0()
LocalDecryptpos: [$0, $1]
LocalProjectionexprs: [sum($0) * 0.0001]
RemoteSQLSELECT
ps parkey DET,GROUP(precomp DET)
FROM ... WHEREn name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecryptpos: [$0]
RemoteSQLSELECT
GROUP(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 19: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/19.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSortkey:[$1]
LocalProjectionexprs: [$0, sum($1)]
LocalGroupFilterfilter: sum($1) > subquery0()
LocalDecryptpos: [$0, $1]
LocalProjectionexprs: [sum($0) * 0.0001]
RemoteSQLSELECT
Outmost SELECT
ps parkey DET,GROUP(precomp DET)
FROM ... WHEREn name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecryptpos: [$0]
RemoteSQLSELECT
GROUP(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 20: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/20.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSortkey:[$1]
LocalProjectionexprs: [$0, sum($1)]
LocalGroupFilterfilter: sum($1) > subquery0()
LocalDecryptpos: [$0, $1]
LocalProjectionexprs: [sum($0) * 0.0001]
RemoteSQLSELECT
ps parkey DET,GROUP(precomp DET)
FROM ... WHEREn name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecryptpos: [$0]
RemoteSQLSELECT
Innermost SELECT
GROUP(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 21: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/21.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSortkey:[$1]
LocalProjectionexprs: [$0, sum($1)]
LocalGroupFilterfilter: sum($1) > subquery0()
LocalDecryptpos: [$0, $1]
LocalProjectionexprs: [sum($0) * 0.0001]
RemoteSQLSELECT
ps parkey DET,GROUP(precomp DET)
FROM ... WHEREn name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecrypt
Decrypts the dataat the client
pos: [$0]
RemoteSQLSELECT
GROUP(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 22: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/22.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSortkey:[$1]
LocalProjectionexprs: [$0, sum($1)]
LocalGroupFilterfilter: sum($1) > subquery0()
LocalDecryptpos: [$0, $1]
LocalProjectionexprs:
Multiplicationby constant
[sum($0) * 0.0001]
RemoteSQLSELECT
ps parkey DET,GROUP(precomp DET)
FROM ... WHEREn name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecryptpos: [$0]
RemoteSQLSELECT
GROUP(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 23: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/23.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSortkey:[$1]
LocalProjectionexprs: [$0, sum($1)]
LocalGroupFilterfilter:
Filter referring tothe HAVING clause
sum($1) > subquery0()
LocalDecryptpos: [$0, $1]
LocalProjectionexprs: [sum($0) * 0.0001]
RemoteSQLSELECT
ps parkey DET,GROUP(precomp DET)
FROM ... WHEREn name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecryptpos: [$0]
RemoteSQLSELECT
GROUP(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 24: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/24.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSortkey:[$1]
LocalProjection
Selection of ps partkey andof the summation of the pre-computed expression
exprs: [$0, sum($1)]
LocalGroupFilterfilter: sum($1) > subquery0()
LocalDecryptpos: [$0, $1]
LocalProjectionexprs: [sum($0) * 0.0001]
RemoteSQLSELECT
ps parkey DET,GROUP(precomp DET)
FROM ... WHEREn name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecryptpos: [$0]
RemoteSQLSELECT
GROUP(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 25: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/25.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPLIT QUERY PLAN
Example (TPC-H Q11)SELECT ps partkey,
SUM (ps supplycost * ps availqty)AS VALUE
FROM partsupp JOIN supplier JOIN nationWHERE n name = :1GROUP BY ps partkeyHAVING SUM (ps supplycost * ps availqty) > (SELECT SUM (ps supplycost * ps availqty)
* 0.0001FROM partsupp JOIN supplier JOIN nationWHERE n name = :1 )
ORDER BY value DESC;
LocalSort
Sorting referring to theORDER BY clause
key:[$1]
LocalProjectionexprs: [$0, sum($1)]
LocalGroupFilterfilter: sum($1) > subquery0()
LocalDecryptpos: [$0, $1]
LocalProjectionexprs: [sum($0) * 0.0001]
RemoteSQLSELECT
ps parkey DET,GROUP(precomp DET)
FROM ... WHEREn name DET = 0xabcdef
GROUP BY ps partkey DET
LocalDecryptpos: [$0]
RemoteSQLSELECT
GROUP(precomp DET)FROM ... WHERE
n name DET = 0xabcdef
11 / 31
![Page 26: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/26.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
OUTLINE
1 Introduction
2 Split Execution
3 Optimization Techniques
4 Designer and Planner
5 Experiments
6 Conclusion
12 / 31
![Page 27: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/27.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
PER-ROW PRECOMPUTATION
Prior computation of certain expressionsMaterialized using additional columnsDecision made by the designer module
ExampleSUM (ps supplycost * ps availqty)
13 / 31
![Page 28: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/28.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPACE-EFFICIENT ENCRYPTION
Minimize ciphertext expansionI FFX mode of operation: n bits to n bits
Pack multiple columns in a rowPack multiple rows into a single PaillierPacked ciphertexts are kept in separate fileson the local file system
14 / 31
![Page 29: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/29.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
GROUPED HOMOMORPHIC ADDITION
Packed aggregates computed with a singlemodular multiplication
(a1||...||an) + (b1||...||bn) = (a1 + b1)||...||(an + bn)
E(a1||...||an)×E(b1||...||bn) = E((a1+b1)||...||(an+bn))
15 / 31
![Page 30: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/30.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
PRE-FILTERING
Minimize data sent to the clientApply filtering to encrypted data
ExampleSELECT l orderkey FROM lineitemGROUP BY l orderkeyHAVING SUM(l quantity) > :1
16 / 31
![Page 31: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/31.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
PRE-FILTERING
Minimize data sent to the clientApply filtering to encrypted data
ExampleSELECT l orderkey FROM lineitemGROUP BY l orderkeyHAVING SUM(l quantity) > :1
Incompatible schemes for SUMand comparison (>)
16 / 31
![Page 32: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/32.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
PRE-FILTERING
Minimize data sent to the clientApply filtering to encrypted data
ExampleSELECT l orderkey det,
PAILLIER SUM(l quantity paillier)FROM lineitemGROUP BY l orderkey detHAVING MAX(l quantity ope) > encrypt ope(m)
OR COUNT(*) > (:1 / m)
16 / 31
![Page 33: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/33.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
PRE-FILTERING
Minimize data sent to the clientApply filtering to encrypted data
ExampleSELECT l orderkey det,
PAILLIER SUM(l quantity paillier)FROM lineitemGROUP BY l orderkey detHAVING MAX(l quantity ope) > encrypt ope(m
Maximum valueof the columnl quantity
)OR COUNT(*) > (:1 / m)
16 / 31
![Page 34: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/34.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
OUTLINE
1 Introduction
2 Split Execution
3 Optimization Techniques
4 Designer and Planner
5 Experiments
6 Conclusion
17 / 31
![Page 35: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/35.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
INTUITION
Optimizations are not always betterDesigner
I Best physical design– Encryption schemes– Precomputed expressions
PlannerI Best query plan at runtime
18 / 31
![Page 36: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/36.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
DESIGNER: INPUT AND OUTPUT
InputI Representative query workload
– Q0,Q1, ...,Qn– Chosen by the administrator
I Sample dataI Space constraint factor (optional)
OutputI Physical design of the server
– Set of encrypted columns to materialize
19 / 31
![Page 37: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/37.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
DESIGNER: ALGORITHM
1 Consider all operations in query QiI Check what expression would allow execution
on the serverI EncSeti
– Set of 〈value, scheme〉 pairs for Qi
ExampleWHERE x = :1 generates a 〈x,DET〉 pair,referring to the x columnORDER BY x + y generates a 〈x + y,OPE〉pair, referring to a precomputed x + y value
20 / 31
![Page 38: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/38.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
DESIGNER: ALGORITHM
2 The designer invokes the planner todetermine the best way to execute Qi
I The planner computes PowSeti– Contains the subsets of EncSeti
I The planner constructs an execution plan for Qifor each element of the power set
3 The planner uses a cost model to estimatethe fastest execution plan
20 / 31
![Page 39: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/39.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
COST MODEL
Sum of three componentsI Execution time on the serverI Data transfer timeI Post-processing on client (decryption)
Constraints are considered using an IntegerLinear Programming (ILP) formulation
21 / 31
![Page 40: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/40.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
OUTLINE
1 Introduction
2 Split Execution
3 Optimization Techniques
4 Designer and Planner
5 Experiments
6 Conclusion
22 / 31
![Page 41: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/41.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
IMPLEMENTATION
8.000 lines of Scala for designer/planner4.000 lines of C++ for client libraryOpenSSL for cryptographyEach table is mapped to an encrypted table
I Copies of columns (different cryptosystems)Do not support
I ViewsI Pattern matching with two or more patterns
ExampleLIKE ’%foo%bar%’
23 / 31
![Page 42: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/42.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
ENVIRONMENT
ClientI Four 4-core 2.2GHz Intel Xeon E5520I 24GB RAM
ServerI Four 4-core 2.4GHz Intel Xeon E5530I 24GB RAM
Multiple cores used for decryptionPostgres 8.4
I Memory limit: 8GB
TPC-H scale 10 dataset
24 / 31
![Page 43: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/43.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
OVERALL EFFICIENCY
Median overhead of 1.24×
25 / 31
![Page 44: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/44.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
TECHNIQUE PERFORMANCE
Cumulative use of optimization techniques
26 / 31
![Page 45: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/45.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SPACE OVERHEAD
27 / 31
![Page 46: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/46.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SENSITIVITY TO DESIGNER INPUT
Choosing representative queriesI Aggregation over expressionsI Expressions requiring precomputationI Very selective WHERE on large relations
28 / 31
![Page 47: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/47.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
SECURITY
Plaintext is never revealedOPE is used infrequently
I Leaks order
29 / 31
![Page 48: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/48.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
OUTLINE
1 Introduction
2 Split Execution
3 Optimization Techniques
4 Designer and Planner
5 Experiments
6 Conclusion
30 / 31
![Page 49: Overview of MONOMI](https://reader031.vdocuments.mx/reader031/viewer/2022021918/588adddf1a28abab6c8b4d31/html5/thumbnails/49.jpg)
Introduction Split Execution Optimization Techniques Designer and Planner Experiments Conclusion
CONCLUSION
Novel system: MONOMIAnalytic queries over confidential dataNew optimization techniquesUse of designer and plannerModest overheads
I Execution: 1.24×I Space: 1.72×
31 / 31