Skip to content

Commit 0f6416d

Browse files
committed
Add 'Conclusion', remove unused references
1 parent 5cd2ffb commit 0f6416d

8 files changed

+35
-79
lines changed

compaction_implementation.pdf

-1.38 MB
Binary file not shown.

compaction_implementation.psd

-34.6 KB
Binary file not shown.

secondary_compaction_example.pdf

-10.8 KB
Binary file not shown.

secondary_compaction_example.psd

1.47 KB
Binary file not shown.

vldb_sample.aux

+21-21
Original file line numberDiff line numberDiff line change
@@ -2,58 +2,58 @@
22
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}}
33
\@writefile{toc}{\contentsline {section}{\numberline {2}Background and motivation}{1}}
44
\citation{kai:slimdb}
5-
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces LSM-tree ranges dump and compaction}}{2}}
5+
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces LSM tree ranges dump and compaction}}{2}}
66
\newlabel{fig:compaction_schema}{{1}{2}}
77
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Compaction}{2}}
8-
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}LSM-tree based table structure}{2}}
9-
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces LSM-tree based table inconsistency example}}{2}}
10-
\newlabel{fig:inconsistent_example}{{2}{2}}
11-
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Multiple indexes update problem}{2}}
8+
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}LSM tree-based table structure}{2}}
9+
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Multiple index update problem}{2}}
1210
\@writefile{toc}{\contentsline {section}{\numberline {3}Design and implementation}{2}}
11+
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces LSM tree-based table inconsistency example}}{3}}
12+
\newlabel{fig:inconsistent_example}{{2}{3}}
1313
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Deferred update}{3}}
14-
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces LSM-tree based table if update is deferred}}{3}}
14+
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Deferred update of LSM tree-based table}}{3}}
1515
\newlabel{fig:table_after_deferred_update}{{3}{3}}
1616
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Compaction}{3}}
1717
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}Primary index}{3}}
18-
\citation{Kirsch:bloom_less_hashing}
19-
\citation{Putze:bloom_cache_oblivious}
18+
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}Secondary index}{4}}
2019
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Secondary index compaction example}}{4}}
2120
\newlabel{fig:secondary_compaction_example}{{4}{4}}
22-
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}Secondary index}{4}}
2321
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Secondary index read example}}{4}}
2422
\newlabel{fig:secondary_reading_example}{{5}{4}}
2523
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Read}{4}}
2624
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Implementation}{4}}
25+
\citation{Kirsch:bloom_less_hashing}
26+
\citation{Putze:bloom_cache_oblivious}
2727
\citation{kai:slimdb}
2828
\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Primary index compaction schema}}{5}}
2929
\newlabel{fig:compaction_implementation}{{6}{5}}
30-
\@writefile{toc}{\contentsline {section}{\numberline {4}Mathematical basics}{5}}
30+
\@writefile{toc}{\contentsline {section}{\numberline {4}Mathematical foundations}{5}}
3131
\@writefile{toc}{\contentsline {section}{\numberline {5}Evaluation}{6}}
3232
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Microbench}{6}}
3333
\citation{Armstrong:linkbench}
3434
\citation{Edward:incremental_update}
3535
\citation{Lohman:differential_files}
36-
\citation{Wang:open_channel_ssd}
3736
\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Microbenchmark RPS}}{7}}
3837
\newlabel{fig:rps_microbench}{{7}{7}}
39-
\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Microbenchmark disk statement number}}{7}}
38+
\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Microbenchmark disk statement count}}{7}}
4039
\newlabel{fig:disk_stmt_microbench}{{8}{7}}
41-
\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Microbenchmark dump number}}{7}}
40+
\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Microbenchmark dump count}}{7}}
4241
\newlabel{fig:dump_count_microbench}{{9}{7}}
43-
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Microbenchmark RPS aggregated}}{7}}
42+
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Microbenchmark aggregated RPS}}{7}}
4443
\newlabel{table:rps_microbench}{{1}{7}}
45-
\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Linkbench RPS}}{7}}
46-
\newlabel{fig:linkbench}{{10}{7}}
47-
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Linkbench}{7}}
44+
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}LinkBench}{7}}
4845
\@writefile{toc}{\contentsline {section}{\numberline {6}Related work}{7}}
46+
\citation{Wang:open_channel_ssd}
4947
\bibstyle{abbrv}
5048
\bibdata{vldb_sample}
5149
\bibcite{Armstrong:linkbench}{1}
5250
\bibcite{Kirsch:bloom_less_hashing}{2}
5351
\bibcite{Edward:incremental_update}{3}
5452
\bibcite{Putze:bloom_cache_oblivious}{4}
5553
\bibcite{kai:slimdb}{5}
56-
\bibcite{salas:calculus}{6}
57-
\bibcite{Lohman:differential_files}{7}
58-
\bibcite{Wang:open_channel_ssd}{8}
59-
\@writefile{toc}{\contentsline {section}{\numberline {7}References}{8}}
54+
\bibcite{Lohman:differential_files}{6}
55+
\bibcite{Wang:open_channel_ssd}{7}
56+
\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces LinkBench RPS}}{8}}
57+
\newlabel{fig:linkbench}{{10}{8}}
58+
\@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion}{8}}
59+
\@writefile{toc}{\contentsline {section}{\numberline {8}References}{8}}

vldb_sample.bib

-54
Original file line numberDiff line numberDiff line change
@@ -7,60 +7,6 @@ @INPROCEEDINGS{kai:slimdb
77
YEAR = {2017},
88
VOLUME = "{10}" }
99
10-
@ARTICLE{bowman:reasoning,
11-
AUTHOR = "Mic Bowman and Saumya K. Debray and Larry L. Peterson",
12-
TITLE = "Reasoning About Naming Systems",
13-
JOURNAL = "ACM Trans. Program. Lang. Syst.",
14-
VOLUME = {15},
15-
NUMBER = {5},
16-
PAGES = {795-825},
17-
MONTH = "November",
18-
YEAR = {1993} }
19-
20-
@ARTICLE{braams:babel,
21-
AUTHOR = "Johannes Braams",
22-
TITLE = "Babel, a Multilingual Style-Option System for Use with LaTeX's Standard Document Styles",
23-
JOURNAL = {TUGboat},
24-
VOLUME = {12},
25-
NUMBER = {2},
26-
PAGES = {291-301},
27-
MONTH = "June",
28-
YEAR = {1991} }
29-
30-
@INPROCEEDINGS{clark:pct,
31-
AUTHOR = "Malcolm Clark",
32-
TITLE = "Post Congress Tristesse",
33-
BOOKTITLE = "TeX90 Conference Proceedings",
34-
PAGES = "84-89",
35-
ORGANIZATION = "TeX Users Group",
36-
MONTH = "March",
37-
YEAR = {1991} }
38-
39-
@ARTICLE{herlihy:methodology,
40-
AUTHOR = "Maurice Herlihy",
41-
TITLE = "A Methodology for Implementing Highly Concurrent
42-
Data Objects",
43-
JOURNAL = {ACM Trans. Program. Lang. Syst.},
44-
VOLUME = {15},
45-
NUMBER = {5},
46-
PAGES = {745-770},
47-
MONTH = "November",
48-
YEAR = {1993} }
49-
50-
@BOOK{Lamport:LaTeX,
51-
AUTHOR = "Leslie Lamport",
52-
TITLE = "LaTeX User's Guide and Document Reference Manual",
53-
PUBLISHER = "Addison-Wesley Publishing Company",
54-
ADDRESS = "Reading, Massachusetts",
55-
YEAR = "1986" }
56-
57-
@BOOK{salas:calculus,
58-
AUTHOR = "S.L. Salas and Einar Hille",
59-
TITLE = "Calculus: One and Several Variable",
60-
PUBLISHER = "John Wiley and Sons",
61-
ADDRESS = "New York",
62-
YEAR = "1978" }
63-
6410
@ARTICLE{Edward:incremental_update,
6511
AUTHOR = "Edward Omiecinski and Wei Liu and Ian Akyildiz",
6612
TITLE = "Analysis of a deferred and incremental update strategy for secondary indexes",

vldb_sample.pdf

-1.4 MB
Binary file not shown.

vldb_sample.tex

+14-4
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
this advantage is nullified by secondary indexes, because replace/delete-like
105105
operations require reading and explicitly deleting old data from each secondary index.
106106
This paper presents an LSM tree modification that allows not reading any indexes
107-
on replacement/deletion even if there are non-secondary indexes in the table.
107+
on replacement/deletion even if there are secondary indexes in the table.
108108
Experimental research of the modified LSM tree shows a 1.5-10-times increase
109109
in the write speed on tables with 2-4 non-unique secondary indexes, as compared
110110
with the original LSM tree. Write performance of the new LSM tree grows linearly with
@@ -668,9 +668,10 @@ \subsection{Microbench}
668668
index on the first field, and 4 secondary indexes, each on one field. In terms of the
669669
SQL syntax, it looks as follows:
670670
\begin{verbatim}
671-
create table test (field1 unsigned integer primary key, field2 unsigned integer,
672-
field3 unsigned integer, field4 unsigned integer,
673-
field5 unsigned integer);
671+
create table test
672+
(field1 unsigned integer primary key,
673+
field2 unsigned integer, field3 unsigned integer,
674+
field4 unsigned integer, field5 unsigned integer);
674675
create not unique index on test(field2);
675676
create not unique index on test(field3);
676677
create not unique index on test(field4);
@@ -778,6 +779,15 @@ \section{Related work}
778779
purely hardware, as the LSM tree is not changed at all, so it will not work for
779780
regular SSDs. However, this method can be combined with deferred updates.
780781

782+
\section{Conclusion}
783+
784+
This paper introduced a new version of the LSM tree that turns replace/delete
785+
operations into blind writes even if multiple indexes exist. The main idea is to
786+
defer old data lookup and deletion until compaction, which eliminates hidden
787+
reads. Several variants of the new compaction algorithm were proposed, and one
788+
of them was implemented. Exponential speed growth was mathematically proven for
789+
deferred updates, and the same results were obtained in experiments.
790+
781791
% The following two commands are all you need in the
782792
% initial runs of your .tex file to
783793
% produce the bibliography for the citations in your paper.

0 commit comments

Comments
 (0)