generated from BU-DiSC/CS561-Spring2021
-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.html
executable file
·1088 lines (940 loc) · 86.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link href="img/disc-favicon.png" rel="shortcut icon" type="image/x-icon" />
<title>CAS CS561 -- Data Systems Architectures @ Boston University</title>
<!-- Bootstrap Core CSS -->
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Theme CSS -->
<link href="css/clean-blog.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="css/main.css?v=1" rel="stylesheet">
<!-- Custom Fonts -->
<link href="vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href='https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
.tech-question
{
/* display: none !important; */
/*color: #cc0000 !important;*/
/* font-size: 12pt !important; */
}
</style>
<script type="text/javascript">
function classDay(d){
var dates2021Spring = ["January 26","January 28","February 2","February 4","February 9","February 11","February 18","February 23","February 25","March 2","March 4","March 9","March 11","March 16","March 23","March 25","March 30","April 1","April 6","April 8","April 13","April 15","April 20","April 22","April 27","April 29"];
var dates2022Spring = ["January 20","January 25","January 27","February 1","February 3","February 8","February 10","February 15","February 17","February 24","March 1","March 3","March 15","March 17","March 22","March 24","March 29","March 31","April 5","April 7"
,"April 12","April 14","April 19","April 21","April 26","April 28","May 3"];
// this should always be the current semester
var dates = dates2022Spring;
if (d>=0 && d<27)
return dates[d];
else
return "TBA";
}
var cday=0;
var rday=0;
var cancelday=0;
var review=1;
var techq=1;
var studpres=1;
</script>
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-default navbar-custom navbar-fixed-top">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header page-scroll">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
Menu <i class="fa fa-bars"></i>
</button>
<a class="navbar-brand" href="index.html">CS 561</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li>
<a href="index.html">Home</a>
</li>
<li>
<a href="project.html">Project</a>
<!-- <a class="inactiveLink">Project</a> -->
</li>
<li>
<a href="labs.html">Labs</a>
</li>
<li>
<a href="https://tinyurl.com/S22-CS561-presentations" target="_blank">Presentations</a>
<!-- <a class="inactiveLink">Project</a> -->
</li>
<!-- <li>
<a href="http://tinyurl.com/" target="_blank">Notes</a>
</li> -->
<li>
<a href="https://www.gradescope.com/courses/342653" target="_blank">Gradescope</a>
</li>
<li>
<a href="https://piazza.com/bu/spring2022/cs561" target="_blank">Piazza</a>
</li>
<li>
<a href="https://disc.bu.edu/" target="_blank">DiSC lab</a>
</li>
<!-- <li>
<a href="contact.html">Contact</a>
</li>
-->
<!-- <li>
<a href="#first">1st</a>
</li>
<li>
<a href="#second">2nd</a>
</li> -->
</ul>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav>
<!-- Page Header -->
<!-- Set your background image for this header on the line below. -->
<!-- <header class="intro-header" style="background-image: url('img/home-bg.jpg')"> -->
<!-- <header class="intro-header" style="background-color: #FF2400"> -->
<header class="intro-header" style="background-image: url('img/data-center.jpg')">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="site-heading">
<h1>CS 561</h1>
<h2> Data Systems Architectures</h2>
<hr class="small">
<!-- <span class="subheading">Understanding the internals of database systems</span> -->
<div class="row">
<div class="col-md-4">
<a class="btn btn-xl" href="documents/CS561-Spring2022-syllabus.pdf">Syllabus</a>
</div>
<div class="col-md-4">
<a class="btn btn-xl" href="project.html">Class Projects</a>
</div>
<div class="col-md-4">
<a class="btn btn-xl" href="#announcements">Announcements</a>
</div>
</div>
</div>
</div>
</div>
<!-- <p class="text-center"> -->
<!-- <a class="btn btn-xl" href="syllabus.html">What is this class about?</a> -->
<!-- <a class="btn btn-xl" href="documents/CS591A1-Spring2019-syllabus.pdf">Syllabus</a> -->
<!-- <a class="btn btn-xl" href="project.html">Class Projects</a> -->
<!-- <a class="btn btn-xl inactiveLink">Class Projects</a> -->
<!-- <a class="btn btn-xl" href="#announcements">Announcements</a> -->
<!-- </p> -->
<!-- </div> -->
<!-- </div> -->
<!-- </div> -->
</div>
</header>
<!-- Main Content -->
<div class="" id="first">
<div class="row">
<div class="col-lg-6 col-lg-offset-3">
<!-- <div class="alert alert-success text-center" role="alert">
<p> If you are a CS561 student, please complete the <a href="https://forms.gle/xLodGLExoFdgLEKZ8" target="_blank">CS561 LfA Attendance Survey</a>.
</p>
</div>
-->
<div class="alert alert-danger text-center" role="alert" style="margin-top:-0.25cm;">
<!-- <p><strong>Note: </strong> The material of the website is currently updated. Please visit periodically to monitor updates as the beginning of the semester approaches. -->
<p><strong>Note: </strong> The class schedule is now finalized, however, monitor the website for any updates during the semester.
</p>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-10 col-lg-offset-1 col-md-10 col-md-offset-1">
<h1 class="text-center">Class at a glance</h1>
</div>
<!-- <div class="col-lg-6 col-lg-offset-3 col-md-8 col-md-offset-2">
<div class="alert alert-danger" role="alert">
<center>
<strong>Online classes and OH starting 3/17: <a href="https://piazza.com/class/k5ffzklkd1z54v?cid=50" style="text-decoration: underline;">Click here for Class/OH/Guest Lecture Zoom links</a></strong>
</center>
</div>
<div class="alert alert-danger" role="alert">
<center>
<strong>All class recordings: <a href="https://piazza.com/class/k5ffzklkd1z54v?cid=58" style="text-decoration: underline;">Click here for class recordings links</a></strong>
</center>
</div>
</div> -->
<div class="col-lg-5 col-lg-offset-1 col-md-5 col-md-offset-1 text-center">
<p>Class: Tu/Th 12:30-1:45pm <a href="http://www.bu.edu/classrooms/classroom/mcs-b37/" target="_blank">(MCS B37)</a>
<br>
Instructor: <a href="http://cs-people.bu.edu/mathan/" target="_blank">Manos Athanassoulis</a> <a href="mailto:[email protected]?subject=[CS561]"><i class="fa fa-envelope"></i></a></p>
<p>Lab: Fri 9:05-9:55am <a href=" http://www.bu.edu/classrooms/classroom/epc-204/" target="_blank">(EPC 204)</a><br>
Teaching Fellows: </br><em><a href="http://cs-people.bu.edu/zczhu/" target="_blank">Zichen Zhu</a></em> <a href="mailto:[email protected]?subject=[CS561]"><i class="fa fa-envelope"></i></a> / <em><a href="http://ramananeesh.github.io/" target="_blank">Aneesh Raman</a></em> <a href="mailto:[email protected]?subject=[CS561]"><i class="fa fa-envelope"></i></a></p>
</div>
<div class="col-lg-4 col-md-4 text-center">
<p> Office: MCS 106<br>
OH: Tue/Thu 2pm - 3pm ET</p>
<p>
Discussion on <a href="https://piazza.com/bu/spring2022/cs561" target="_blank">Piazza</a>
<br>TFs Office Hours: <a href="https://piazza.com/class/kxhzecvxmmd1u7?cid=12" target="_blank">Posted on Piazza</a>
<br>Grades on <a href="https://www.gradescope.com/courses/342653" target="_blank">Gradescope</a>
</p>
</div>
</div>
</div>
<!-- Main Content -->
<div class="alternate" id="announcements">
<div class="row">
<div class="col-lg-10 col-lg-offset-1 col-md-10 col-md-offset-1 col-xs-10 col-xs-offset-1">
<h1 class="text-center">Announcements</h1>
</div>
<div class="col-lg-8 col-lg-offset-2 col-xs-10 col-xs-offset-1">
<ul class="mylist2">
<!-- <li> Final grades are now uploaded! </li>
<li> Register for your <a href="https://doodle.com/poll/ey726g9zepy3kpag" target="_blank" style="text-decoration: underline">project presentation</a>. </li>
<li> A list of useful links added in the <a href="project.html" target="_blank" style="text-decoration: underline">project page</a>. </li>
<li> Our first visitor is coming on March 5th! </li>
<li> More details about the projects are available in the <a href="project.html" target="_blank" style="text-decoration: underline">project page</a>. </li>
<li> Slides for Class 1 are available. We will be posting slides as soon as possible after class. </li>
<li> <a href="https://tinyurl.com/CASCS591A1-presentations" target="_blank" style="text-decoration: underline">Register</a> for presentations! </li>
<li> The schedule is populated with the papers to discuss. </li> -->
<!-- <li> <strong><a href="https://piazza.com/class/k5ffzklkd1z54v?cid=58">All class recordings</a></strong></li>
<li> <strong><a href="https://piazza.com/class/k5ffzklkd1z54v?cid=50">Class/OH/Guest Lectures Zoom Links</a></strong></li>
<li> Deadline for midway report remains the same (March 21st) - late submission is allowed.</li>
<li> <strong><a href="https://piazza.com/class/k5ffzklkd1z54v?cid=41">Important updates in light of COVID-19</a></strong></li>
<li> Guest lectures for this semester on March 19th and March 26th! </li>
<li> Updated <strong><em><a href="documents/CS591A1-Spring2020-syllabus.pdf">Syllabus</a></em></strong> is now online. </li>
<li> Class starts on 1/21.</li> -->
<!-- <li> <a href="https://www.overleaf.com/read/ryckhctxswvk" target="_blank">Midterm Report</a> is due on <font color="red">March 28</font>. </li> -->
<li> <a href="https://www.gradescope.com/courses/342653/assignments/1760895" target="_blank">Final Project Report</a> <font color="red"> Due date: May 6th</font></li>
<li> <a href="https://www.gradescope.com/courses/342653/assignments/1998394/" target="_blank">Preliminary Project Report</a> <font color="red"> Due date: April 27th</font></li>
<li> <a href="#class25">Guest lecture</a> for this semester on April 26th </li>
<li> <a href="https://www.gradescope.com/courses/342653/assignments/1760893" target="_blank">Midway Report</a> <font color="red"> Due date: <del>March 25th</del> March 31st</font></li>
<li> <a href="./projects/Proj1.pdf" target="_blank">Project 1</a> is released. <font color="red">Due date: Feb 19th</font></li>
<li> <a href="./projects/Proj0.pdf" target="_blank">Project 0</a> is released. <font color="red">Due date: Feb 5th</font></li>
<li> <a href="https://tinyurl.com/S22-CS561-presentations" target="_blank">Register</a> for presentation by <font color="red">Feb 4th</font> </li>
<li> Class starts on 1/20 - stay tuned for updates.</li>
</ul>
<br>
<br>
</div>
</div>
</div>
<!-- Main Content -->
<div class="" id="milestones">
<div class="row">
<div class="col-lg-10 col-lg-offset-1 col-md-10 col-md-offset-1 col-xs-10 col-xs-offset-1">
<h3 class="text-center">Class Milestones - Important Dates</h3>
</div>
<div class="col-lg-8 col-lg-offset-2 col-xs-10 col-xs-offset-1">
<p>Keep in mind the <a href="https://www.bu.edu/reg/calendars/semester/" target="_blank">Official Semester Dates</a>.</p>
<ul>
<li>February 2nd, last day to add (any) class</li>
<!-- <li>February 9th, select a project</li> -->
<!-- <li>February 19th, decide the semester project (which you have discussed in OH)</li> -->
<!-- <li>February 28th, submit your project proposal</li> -->
<li>February 24th, last day to drop (without a "W")</li>
<!-- <li>March 28th, submit your mid-semester progress report</li> -->
<li>April 1st, last day to drop (with a "W")</li>
<!-- <li>April 23rd, submit your draft project presentation for review prior to presentation</li> -->
<!-- <li>April 25th 11:59pm, submit your final project report/code (draft version) </li> -->
<!-- <li>April 27th and April 29th, project presentation (in class)</li> -->
<!-- <li>May 3rd 11:59pm, final submission of project code and report </li> -->
</ul>
<!-- <p>Before each class submit your paper review!</p> -->
<br>
<br>
</div>
</div>
</div>
<!-- Main Content -->
<div class="alternate" id="schedule">
<div class="row">
<div class="col-lg-10 col-lg-offset-1 col-md-10 col-md-offset-1">
<h1 class="text-center">Class Schedule (tentative)</h1>
<p>
Here you can find the <em>tentative</em> schedule of the class (which
might change as the semester progresses).
</p>
<!-- <p>
The slides will be uploaded here after each class, but they
<em>cannot</em> be used as a replacement of the lectures, and will
<em>not</em> be sufficient on their own. Some lectures might deviate from
the textbook (in presentation, order, and content). Hence, attendance
during the lecturing and during the class discussion is <em>mandatory</em>
and an integral part of the class.
</p> -->
<div class="post-preview">
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Introduction to Data Systems and CS561
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content"> In this class we will discuss the basics of data systems and the goals and structure of the course.
<h4>Readings</h4>
<ul>
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class1.pdf" >Slides</a> </li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Data Systems Architectures Essentials – Part 1
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content"> In this class we discuss the fundamental
components that comprise a database system. We will see the
commonalities and the differences of the main database system
architectures and we will discuss why we have several different ones.
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class2.pdf" >Slides</a> </li>
<li><a href="https://dsf.berkeley.edu/papers/fntdb07-architecture.pdf">Architecture of a Database System</a>, Foundations and Trends in Databases, 2007</li>
<li><a href="https://stratos.seas.harvard.edu/files/stratos/files/columnstoresfntdbs.pdf">The Design and Implementation of Modern Column-Oriented Database Systems</a>, Foundations and Trends in Databases, 2012</li>
<li><a href="https://www.cut.ac.cy/digitalAssets/122/122275_1002013-FnTDB-Survey.pdf">Massively Parallel Databases and MapReduce Systems</a>, Foundations and Trends in Databases, 2013</li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Data Systems Architectures Essentials – Part 2
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content"> In this class we continue discussing data systems architectures and the basics for modern systems focusing on relational row-stores and column-stores.
<h4>Readings</h4>
<ul>
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class3.pdf" >Slides</a> </li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Class Project Overview
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content"> In this class the students will be introduced to the class semester project. In that process we describe in detail LSM-trees and we highlight open research problems in data management.
<h4>Readings</h4>
<ul>
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class4.pdf" >Slides</a> </li>
</ul>
</p>
<h2 class="text-center">A: Storage Layouts</h2>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Row-Stores vs. Column-Stores
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: column-stores, row-stores, vertical partitioning, index-only plans, materialized views, tuple reconstruction, late/early materialization,
block iteration, vectorized execution (block iteration), compression (run length encoding), hash joins, index joins, sort-merge joins, invisible joins, star schema
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class5.pdf" >Slides</a> </li>
<li><strong>(P)</strong> <a href="https://dl.acm.org/citation.cfm?doid=1376616.1376712">Column-Stores vs. Row-Stores: How Different Are They Really?</a>, SIGMOD 2008 (paper for <strong class="red"><script type="text/javascript">document.write("REVIEW R"+(review++)); </script></strong>) </li>
<li>(B) <a href="https://dl.acm.org/citation.cfm?id=1083658">C-Store: A Column-oriented DBMS</a>, VLDB 2005</li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Adaptive & Hybrid Layouts <font class="red">(student presentation <script type="text/javascript">document.write("S"+(studpres++)); </script>)</font>
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: on-line transaction processing (OLTP), on-line analytical processing (OLAP), n-ary storage model (NSM), decomposition storage model (DSM),
partition attributes across (PAX), flexible storage model (FSM), projectivity, selectivity, concurrency control, multi-version concurrency control (MVCC),
two-phase locking (2PL)
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./student_slides/CAS-CS561-Class6-student-presentation.pdf">Discussion Slides</a> </li>
<li> <strong>(P)</strong> <a href="https://dl.acm.org/citation.cfm?id=2915231">Bridging the Archipelago between Row-Stores and Column-Stores for Hybrid Workloads</a>, SIGMOD 2016 (paper for <strong class="red"><script type="text/javascript">document.write("REVIEW R"+(review++)); </script></strong>) </li>
<li> (B) <a href="https://dl.acm.org/citation.cfm?id=2610502">H2O: A Hands-free Adaptive Store</a>, SIGMOD 2014</li>
</ul>
</p>
<h2 class="text-center">B: Modern Storage Engines</h2>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Key-Value Store & Log-Structure Merge-Tree Engines
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class7.pdf" >Slides</a> </li>
<li><strong>(P)</strong> <a href="http://www.vldb.org/pvldb/vol10/p1526-bocksrocker.pdf">Fast Scans on Key-Value Stores</a>, VLDB 2017 <br>
<!-- <li class="tech-question"><font color="#cc0000"><strong>Technical Question <script type="text/javascript">document.write("T"+(techq++)); </script>:</strong></font> <em class="tech-question-text">How does TellStore-Log support fast get/put requests, versioning, and scans at the same time? In other words, describe the key design decisions of TellStore-Log that allows it to achieve fast get/put requests, versioning, and scans.</em> </li> -->
<li><strong>(P)</strong> <a href="https://arxiv.org/abs/1812.07527">LSM-based Storage Techniques: A Survey</a>, arXiv 2018</li>
<li>(B) <a href="https://dl.acm.org/doi/10.1145/3183713.3196927">Dostoevsky: Better Space-Time Trade-Offs for LSM-Tree Based Key-Value Stores via Adaptive Removal of Superfluous Merging</a>, SIGMOD 2018 [<a href="https://www.youtube.com/watch?v=fmXgXripmh0" target="_blank">conf. present. video</a>, <a href="https://nivdayan.github.io/dostoevsky__pdf.pdf" target="_blank">conf. </a>]</li>
<li>(B) <a href="https://dl.acm.org/citation.cfm?id=3064054">Monkey: Optimal Navigable Key-Value Store</a>, SIGMOD 2017 [<a href="https://www.youtube.com/watch?v=qQPSR_D2rm4&t=3151" target="_blank">conf. present. video</a>, <a href="http://cs-people.bu.edu/mathan/publications//sigmod2017-Monkey.pdf" target="_blank">conf. </a>]</li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Enabling Efficient Deletes in Log-Structured Key-Value Storage
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class8.pdf">Slides</a> </li>
<li><strong>(P)</strong> <a href="https://dl.acm.org/doi/abs/10.1145/3318464.3389757">Lethe: A Tunable Delete-Aware LSM Engine</a>, SIGMOD 2020 [<a href="https://www.youtube.com/watch?v=qr1MniqOTdA">conf. present. video</a>]</li>
<li class="tech-question"><font color="#cc0000"><strong>Technical Question <script type="text/javascript">document.write("T"+(techq++)); </script>:</strong></font> <em class="tech-question-text">To ensure bounded delete persistent latency, Lethe aggressively performs compactions. How does these eager compactions affect write amplification of the overall system?</em> </li>
</ul>
</p>
<!-- <h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Key-Value Store for JSON and CSV
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class9.pdf" >Slides</a> </li>
<li><strong>(P)</strong> <a href="https://dl.acm.org/doi/10.1145/3299869.3319896">FishStore: Faster Ingestion with Subset Hashing</a>, SIGMOD 2019 [<a href="https://av.tib.eu/media/42981" target="_blank">conf. present. video</a>]</li>
<li class="tech-question"><font color="#cc0000"><strong>Technical Question:</strong></font> <em class="tech-question-text">In order for FISHSTORE to efficiently achieve records within a PSF, it builds an index over the possible items that satisfy the PSF. However, if items that are qualified reside on disk, FISHSTORE spends an expensive random I/O. What is the policy proposed by the authors to reduce this cost? How effective is this policy? Is there any pitfall of this policy?</em> </li>
<li>(B) <a href="https://dl.acm.org/citation.cfm?id=3196898">FASTER: A Concurrent Key-Value Store with In-Place Updates</a>, SIGMOD 2018 [<a href="https://www.youtube.com/watch?v=68YBpitMrMI" target="_blank">conf. present. video</a>]</li>
</ul>
</p> -->
<h2 class="text-center">C. Indexing</h2>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Introduction to Indexing, Trees & Tries
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content"> In this class the instructor will provide the necessary background to indexing. We will describe the most common design principles and decisions of index structures and provide the background needed for diving into the details of cutting-edge indexing papers.
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" tabindex="-1" href="./slides/CAS-CS561-Class9.pdf">Slides</a> </li>
<li>(B) <a href="https://arxiv.org/abs/1812.07527">LSM-based Storage Techniques: A Survey</a>, arXiv 2018</li>
<!-- <li class="tech-question"><font
color="#cc0000"><strong>Technical
Question:</strong></font> <em
class="tech-question-text">What is the key design idea
of Dostoevsky to address the limitations of existing
merge policies? How does this design affect the
performance of Dostoevsky?</em> </li> -->
<li>(B) <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.219.7269&rep=rep1&type=pdf">Modern B-Tree Techniques</a>, Foundations and Trends in Databases 2011</li>
<li>(B) <a href="http://dl.acm.org/citation.cfm?id=320521.320530">Prefix B-trees</a>, TODS 1977</li>
<li>(B) <a href="https://db.in.tum.de/~leis/papers/ART.pdf">The Adaptive Radix Tree: ARTful Indexing for Main-Memory Databases</a>, ICDE 2013</li>
<li>(B) <a href="http://www.vldb.org/conf/1998/p476.pdf">Small Materialized Aggregates: A Light Weight Index Structure for Data Warehousing</a>, VLDB 1998</li>
<li>(B) <a href="https://www.comp.nus.edu.sg/~chancy/sigmod98.pdf">Bitmap Index Design and Evaluation</a>, SIGMOD 1998</li>
<li>(B) <a href="https://homepages.cwi.nl/~manegold/COMMIT/imprints.pdf">Column imprints: a secondary index structure</a>, SIGMOD 2013</li>
<li>(B) <a href="http://cidrdb.org/cidr2007/papers/cidr07p07.pdf">Database Cracking</a>, CIDR 2007</li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: The design space of data structures
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: range/hash/radix partitioning, indexing, out-of-place updates, in-place updates
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class10.pdf" >Slides</a> </li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Adaptive Radix Trees
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: tree indexing, tries, radix, adaptive radix trees
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class11.pdf" >Slides</a> </li>
<li><strong>(P)</strong> <a href="https://db.in.tum.de/~leis/papers/ART.pdf">The Adaptive Radix Tree: ARTful Indexing for Main-Memory Databases</a>, ICDE 2013 (paper for <strong class="red"><script type="text/javascript">document.write("REVIEW R"+(review++)); </script></strong>) </li>
<!-- <li class="tech-question"><font color="#cc0000"><strong>Technical Question:</strong></font> <em class="tech-question-text">One primary issue with Radix trees is that- with long keys, the space consumption per key can be significantly large even with the implicit prefix compression of keys. How does ART addresses this issue? In other words, what techniques are used by ART to decrease the height by reducing the number of nodes?</em> </li> -->
</ul>
</p>
<!--
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Zonemaps & Data Skipping <font class="red">(student presentation)</font>
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: partitioning, horizontal partitioning, vertical partitioning, hybrid partitioning, zonemaps,
tuple reconstruction, normalized schema, denormalized schema, clustering, use of clustering and feature extraction for partitioning
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./student_slides/Class-12-KaijieChen-GSOP.pdf" >Discussion Slides</a> </li>
<li><strong>(P)</strong> <a href="http://www.vldb.org/pvldb/vol10/p421-sun.pdf">Skipping-oriented Partitioning for Columnar Layouts</a>, VLDB 2016 </li>
<li class="tech-question"><font color="#cc0000"><strong>Technical Question:</strong></font> <em class="tech-question-text">What factors GSOP need to consider when determining the number of features to use for partitioning each column group? How does GSOP determine this optimal number of features?</em> </li>
<li> (B) <a href="https://pdfs.semanticscholar.org/6c15/13e2823131a319dbcce4780bdb3e3563c089.pdf">Small Materialized Aggregates: A Light Weight Index for Data Warehousing</a>, VLDB 1998</li>
</ul>
</p> -->
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Adaptive Indexing & Cracking <font class="red">(student presentation <script type="text/javascript">document.write("S"+(studpres++)); </script>)</font>
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: adaptive indexing, cracking, stochastic cracking, hybrid cracking, scan, sort and binary search, adaptive adaptive indexing,
radix partitioning, TLB, software managed buffers, non-temporal streaming stores, partitioning fanout, skew, adaptive indexing convergence rate, simulated annealing,
uniform/normal/zipfian distribution
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./student_slides/CAS-CS561-Class12-student-presentation.pdf" >Discussion Slides</a> </li>
<li><strong>(P)</strong> <a href="https://bigdata.uni-saarland.de/publications/Adaptive_Adaptive_Indexing_ICDE18.pdf">Adaptive Adaptive Indexing</a>, ICDE 2018 [<a href="https://bigdata.uni-saarland.de/publications/Adaptive_Adaptive_Indexing_ICDE18_slides.pdf" target="_blank">conf. slides</a>]</li>
<li class="tech-question"><font color="#cc0000"><strong>Technical Question <script type="text/javascript">document.write("T"+(techq++)); </script>:</strong></font> <em class="tech-question-text">The authors of adaptive adaptive indexing show that their technique performs well in multiple generic workloads. What type of workloads would adaptive adaptive indexing not work well for and why? Can you think of examples of reads or updates that would be inefficient in this schema?</em> </li>
<li> (B) <a href="https://dl.acm.org/citation.cfm?id=1559878">Self-organizing Tuple Reconstruction in Column-stores</a>, SIGMOD 2009</li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Updateable Bitmaps <font class="red">(student presentation <script type="text/javascript">document.write("S"+(studpres++)); </script>)</font>
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: bitmap indexing, bitvectors, fence pointers, out-of-place updates, query-driven merging, bitmap encoding schemes (RLE, BBC)
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./student_slides/CAS-CS561-Class13-student-presentation.pdf" >Discussion Slides</a> </li>
<li><strong>(P)</strong> <a href="https://dl.acm.org/citation.cfm?id=2915964">UpBit: Scalable In-Memory Updatable Bitmap Indexing</a>, SIGMOD 2016 [<a href="http://cs-people.bu.edu/mathan/publications/slides/nedbday2017-UpBit-public.pdf" target="_blank">conf. slides</a>]</li>
<li class="tech-question"><font color="#cc0000"><strong>Technical Question <script type="text/javascript">document.write("T"+(techq++)); </script>:</strong></font> <em class="tech-question-text">Both UCB and UpBit employ extra bitvector(s) to indicate the corresponding row has been updated. How can UpBit achieve a fast read performance compared to UCB and UpBit-FP?</em> </li>
<li> (B) <a href="https://dl.acm.org/citation.cfm?id=276336">Bitmap Index Design and Evaluation</a>, SIGMOD 1998</li>
</ul>
</p>
<!-- <h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Searching
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: searching, binary search, interpolation search
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./student_slides/9.InterpolationSearch_YizhouMao_ChengjunWu.pdf" >Discussion Slides</a> </li>
<li><strong>(P)</strong> <a href="https://dl.acm.org/doi/10.1145/3299869.3300075">Efficiently Searching In-Memory Sorted Arrays: Revenge of the Interpolation Search?</a>, SIGMOD 2019 (paper for <strong class="red">REVIEW</strong>) [<a href="https://av.tib.eu/media/42947" target="_blank">conf. present. video</a>]</li>
<li> (B) <a href="https://dl.acm.org/doi/10.1145/1140402.1140409">B-tree indexes, interpolation search, and skew</a>, DAMON 2006</li>
</ul>
</p> -->
<h2 class="text-center">D. Modern Hardware</h2>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Modern hardware trends
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content"> In this class the instructor will discuss modern hardware trends that drive system and index design with respect to storage, memories, and processing.
<h4>Readings</h4>
<ul>
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class14.pdf" >Slides</a> </li>
<!-- <li>(B) <a href="https://dl.acm.org/doi/10.1145/1989323.1989455" target="_blank">Data Management Over Flash Memory</a>, SIGMOD 2011 </li> -->
</ul>
</p>
<!-- <div class="alert alert-danger" role="alert">
<h3 class="post-subtitle" id="research-talk-2" style="margin:0px">
Class <script type="text/javascript">document.write(cday+1)</script>: Guest Lecture on TBA
<em>Guest Lecture <script type="text/javascript">document.write((rday++)+1)</script>: TBA</em>
</h3>
<p style="border:0px; margin:0px;"> from <a href="https://rmarcus.info/blog/" target="_blank">Ryan Marcus</a>, MIT</p>
<p style="border:0px; margin:0px;">Part of <strong> Machine Learning for Data Systems</strong></p>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));rday++;</script></p>
<p class="post-content"><strong>Abstract:</strong> Query optimization is one of the most well-studied problems in database management systems. Because of the exponential problem space and the heuristic nature of current solutions, researchers have recently applied machine learning techniques to this challenging problem domain. Various approaches range from using machine learning to perform cardinality estimation to outright replacing the query optimizer with deep reinforcement learning. Each of these approaches comes with their own unique sets of advantages and constraints. This talk will lay out these recent advancements in a skeptical light (my own work included), highlighting both potential advantages and the myriad of challenges that still need to be overcome to achieve a fully autonomous query optimizer.</p>
<p class="post-content"><strong>Bio:</strong> Dr. Ryan Marcus is a postdoc researcher at MIT, working under Tim Kraska. Ryan recently graduated from Brandeis University, where he studied applications of machine learning to cloud databases under Olga Papaemmanouil. Before that, Ryan took courses in gender studies and mathematics at the University of Arizona, while banging his head against supercomputers at Los Alamos National Laboratory. He enjoys long walks down steep gradients, and shorter walks down gentler ones.
</p>
<p>
<h4 style="color:black">Readings</h4>
<ul>
<li style="color:black"><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="https://rmarcus.info/pub/bu20.pdf" >Slides from Ryan Marcus</a> </li>
</ul>
</p>
</div> -->
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Query Evaluation for Multi-Core <font class="red">(student presentation <script type="text/javascript">document.write("S"+(studpres++)); </script>)</font>
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: multi-core, many-core, multi-socket, load balancing, skew resistance, context switching, non-uniform memory architectures (NUMA),
pipeline breaker, elasticity, thread pool, just-in-time (JIT) code compilation, lock-free data structures, hyper-threading, translation lookaside buffer (TLB),
open addressing, morsel-driven parallelism, dynamic hashing, outer join, semi-join, anti-join, radix join
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./student_slides/CAS-CS561-Class15-student-presentation.pdf" >Discussion Slides</a> </li>
<li><strong>(P)</strong> <a href="https://dl.acm.org/citation.cfm?id=2610507">Morsel-driven parallelism: A NUMA-aware query evaluation framework for the many-core age</a>, SIGMOD 2014 [<a href="https://www.cse.iitb.ac.in/infolab/Data/Courses/CS632/Talks/morsel-slides.pdf" target="_blank">public slides</a>]</li>
<li class="tech-question"><font color="#cc0000"><strong>Technical Question <script type="text/javascript">document.write("T"+(techq++)); </script>:</strong></font> <em class="tech-question-text">The authors mention in the paper that "the morsel size is not very critical for performance". What do you think is the reason behind this? Do the authors present any experiment to support their claim?</em> </li>
<li> (B) <a href="http://cidrdb.org/cidr2005/papers/P19.pdf">MonetDB/X100: Hyper-Pipelining Query Execution</a>, CIDR 2005</li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Serverless Data Management <font class="red">(student presentation <script type="text/javascript">document.write("S"+(studpres++)); </script>)</font>
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: cloud-based data management, serverless
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./student_slides/CAS-CS561-Class16-student-presentation.pdf" >Discussion Slides</a> </li>
<li><strong>(P)</strong> <a href="https://doi.org/10.1145/3318464.3389758">Lambada: Interactive Data Analytics on Cold Data Using Serverless Cloud Infrastructure</a>, SIGMOD 2020 [<a href="https://www.youtube.com/watch?v=BubXdEhn4k8">conf. talk</a>] (paper for <strong class="red"><script type="text/javascript">document.write("REVIEW R"+(review++)); </script></strong>)</li>
<li>(B) <a href="https://doi.org/10.1145/3318464.3380609">Starling: A Scalable Query Engine on Cloud Functions</a>, SIGMOD 2020 [<a href="https://www.youtube.com/watch?v=FE9CnDEPBkI">long talk</a>]</li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Data Processing with GPUs <font class="red">(student presentation <script type="text/javascript">document.write("S"+(studpres++)); </script>)</font>
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: GPUs
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./student_slides/CAS-CS561-Class17-student-presentation.pdf" >Discussion Slides</a> </li>
<li><strong>(P)</strong> <a href="https://dl.acm.org/doi/10.1145/3318464.3389705">Pump Up the Volume: Processing Large Data on GPUs with Fast Interconnects</a>, SIGMOD 2020 [<a href="https://www.youtube.com/watch?v=HAFBkNLGOhI">conf. talk</a>, <a href="https://www.youtube.com/watch?v=fRaH4h7-45s">long talk</a>]</li>
<li class="tech-question"><font color="#cc0000"><strong>Technical Question <script type="text/javascript">document.write("T"+(techq++)); </script>:</strong></font> <em class="tech-question-text">This paper investigates how the fast interconnect such as NVLink 2.0 can solve the data transfer bottleneck between CPUs and GPUs. What are the disadvantages of current interconnect and the benefits of NVLink 2.0 besides speed?</em> </li>
<li>(B) <a href="https://doi.org/10.1145/3318464.3380595">A Study of the Fundamental Performance Characteristics of GPUs and CPUs for Database Analytics </a>, SIGMOD 2020 [<a href="https://vimeo.com/441072118#t=1079s">conf. talk</a>]</li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Asymmetry & Concurrency Aware Storage Management
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: storage, asymmetry, concurrency, bufferpool, eviction policy
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class18.pdf" >Slides </a> </li>
<!-- <li><strong>(P)</strong> <a href="https://dl.acm.org/doi/10.1145/3318464.3389705">Pump Up the Volume: Processing Large Data on GPUs with Fast Interconnects </a>, SIGMOD 2020 [<a href="https://www.youtube.com/watch?v=HAFBkNLGOhI">conf. talk</a>, <a href="https://www.youtube.com/watch?v=fRaH4h7-45s">long talk</a>]</li>
<li class="tech-question"><strong>Technical Question:</strong> <em>
TBA
</em></li> -->
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Indexing for Persistent Memories <font class="red">(student presentation <script type="text/javascript">document.write("S"+(studpres++)); </script>)</font>
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: non-volatile memories, indexing
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./student_slides/CAS-CS561-Class19-student-presentation.pdf">Discussion Slides</a> </li>
<li><strong>(P)</strong> <a href="http://www.vldb.org/pvldb/vol8/p786-chen.pdf">Persistent B+-Trees in Non-Volatile Main Memory</a>, VLDB 2015 </li>
<li class="tech-question"><font color="#cc0000"><strong>Technical Question <script type="text/javascript">document.write("T"+(techq++)); </script>:</strong></font> <em class="tech-question-text">How can persistent B+-Trees achieve both write atomicity and good search performance while providing consistency after failure?</em> </li>
<li>(B) <a href="http://cidrdb.org/cidr2011/Papers/CIDR11_Paper3.pdf">Rethinking Database Algorithms for Phase Change Memory</a>, CIDR 2011 </li>
</ul>
</p>
<!-- <h3 class="post-subtitle">
Class <script type="text/javascript">document.write(cday+1)</script>: Indexng for RDMA Networks
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<ul class="mylist">
<li><strong>(P)</strong> <a href="https://dl.acm.org/doi/10.1145/3299869.3300081">Designing Distributed Tree-based Index Structures for Fast RDMA-capable Networks</a>, SIGMOD 2019 (paper for <strong class="red">REVIEW</strong>) [<a href="https://av.tib.eu/media/42976" target="_blank">conf. present. video</a>]</li>
</ul>
</p> -->
<h2 class="text-center">E. Scientific Data Management</h2>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: In-Situ Data Processing
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: in-situ query processing, raw data files, adaptive partitioning, fine-grained indexing, query-based vs. homogenous partitioning,
implicit clustering, eviction policy, workload shift, memory consumption
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class20.pdf">Slides</a> </li>
<li><strong>(P)</strong> <a href="http://www.vldb.org/pvldb/vol10/p1106-olma.pdf">Slalom: Coasting Through Raw Data via Adaptive Partitioning and Indexing</a>, VLDB 2017 </li>
<!-- <li class="tech-question"><font color="#cc0000"><strong>Technical Question <script type="text/javascript">document.write("T"+(techq++)); </script>:</strong></font> <em class="tech-question-text">Slalom: The Partition Manager chooses between two partitioning strategies: query based partitioning and homogeneous partitioning. Explain how the index types (value-existence indexes and value-position indexes) would impact lookup performance for both partitioning strategies.</em> </li> -->
<li> (B) <a href="https://dl.acm.org/citation.cfm?id=2213864">NoDB: Efficient Query Execution on Raw Data Files</a>, SIGMOD 2012</li>
</ul>
</p>
<h3 class="post-subtitle">
Class <script type="text/javascript">document.write(cday+1)</script>: Multi-dimensional Data Management <font class="red">(student presentation <script type="text/javascript">document.write("S"+(studpres++)); </script>)</font>
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: array management systems, multi-dimensional arrays, storage manager, tiles, thread-safe, process-safe, atomicity,
dense vs. sparse arrays, global cell order, fragments, dense vs. sparse fragments, consolidation
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./student_slides/CAS-CS561-Class21-student-presentation.pdf">Discussion Slides</a> </li>
<li><strong>(P)</strong> <a href="http://www.vldb.org/pvldb/vol10/p349-papadopoulos.pdf">The TileDB Array Data Storage Manager</a>, VLDB 2017 [<a href="https://www.slideshare.net/PyData/the-tiledb-array-data-storage-manager-stavros-papadopoulos-jake-bolewski" target="_blank">wide auidence slides</a>]</li>
<li class="tech-question"><font color="#cc0000"><strong>Technical Question <script type="text/javascript">document.write("T"+(techq++)); </script>:</strong></font> <em class="tech-question-text">TileDB: Global cell order can significantly impact application performance. Explain the benefit from global cell order and the setting (space tile extents and tile/cell order) that can minimize the read cost by using an example. </em> </li>
<li> (B) <a href="https://dl.acm.org/citation.cfm?id=1807271">Overview of SciDB: Large Scale Array Storage, Processing and Analysis</a>, SIGMOD 2010</li>
</em></li>
</ul>
</p>
<!--
<h2 class="text-center">F. Distributed Data Management</h2>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Global Distributed Systems
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: global-scale distributed database, concurrency control, Paxos, data sharding, external consistency, TrueTime API
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./student_slides/13.Spanner_AneeshRaman_ThanasisFilippidis.pdf">Discussion Slides</a> </li>
<li><strong>(P)</strong> <a href="https://www.usenix.org/system/files/conference/osdi12/osdi12-final-16.pdf">Spanner: Google's Globally-Distributed Database</a>, OSDI 2012 (paper for <strong class="red">REVIEW</strong>) [<a href="https://www.usenix.org/conference/osdi12/technical-sessions/presentation/corbett" target="_blank">public slides/video</a>]</li>
<li> (B) <a href="http://cidrdb.org/cidr2011/Papers/CIDR11_Paper32.pdf">Megastore: Providing Scalable, Highly Available Storage for Interactive Services</a>, CIDR 2011</li>
</ul>
</p> -->
<!-- <div class="alert alert-danger" role="alert">
<h3 class="post-subtitle" id="research-talk-3" style="margin:0px">
<em>Guest Lecture <script type="text/javascript">document.write((rday++)+1)</script>: TBA</em>
</h3>
<p style="border:0px; margin:0px;"> from <a href="https://jialinding.github.io/" target="_blank">Jialin Ding</a>, MIT</p>
<p style="border:0px; margin:0px;">Part of <strong> Machine Learning for Data Systems</strong></p>
<p class="" style="text-decoration: underline;"><em><strong>Date & Time:</strong> Outside class schedule: Friday, April 10th at 11am.</em> </p>
<p class="" style="text-decoration: underline;"><a href="https://piazza.com/class/k5ffzklkd1z54v?cid=58" target="_blank">Click here for the recording!</a></p>
<p class="post-content"><strong>Abstract:</strong> Scanning and filtering over multi-dimensional tables are key operations in modern analytical database engines. To optimize the performance of these operations, databases often create clustered indexes over a single dimension or multi-dimensional indexes such as R-Trees, or use complex sort orders (e.g., Z-ordering). However, these schemes are often hard to tune and their performance is inconsistent across different datasets and queries.
In this talk, I will present Flood, a multi-dimensional in-memory read-optimized index that automatically adapts itself to a particular dataset and workload by jointly optimizing the index structure and data storage layout. Flood achieves up to three orders of magnitude faster performance for range scans with predicates than state-of-the-art multi-dimensional indexes or sort orders on real-world datasets and workloads. Our work serves as a building block towards an end-to-end learned database system. Our paper on Flood will appear at SIGMOD 2020.
I will also talk about our continuing work on extending the ideas of Flood to address real-world challenges of indexing multi-dimensional data such as data correlation, non-uniform queries, and categorical attributes.</p>
<p class="post-content"><strong>Bio:</strong> Jialin Ding is a second-year PhD student in the MIT Data Systems Group, where he is advised by Prof. Tim Kraska. His research focuses broadly on the application of machine learning to data systems. He also collaborates with Umar Farooq Minhas and the Database Group at Microsoft Research on learned data structures. Prior to MIT, Jialin was an undergraduate at Stanford University, where he worked on data-intensive systems with Prof. Peter Bailis at part of Stanford DAWN.
</p>
<p>
<h4 style="color:black">Readings</h4>
<ul class="mylist">
<li style="color:black"><a style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/JialinDing_LearnedMultidimensionalIndexes.pdf">Slides from Jialin Ding</a></li>
</ul>
</p>
</div> -->
<!-- <h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Map/Reduce: Data Management at Scale
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: Map/Reduce, distributed file systems, resource management, positional delta trees, SQL-on-Map/Reduce, massively parallel processing database management systems (MPP DBMS), user-defined functions (UDF), encryption, authentication, user role management, elasticity, data warehouse, fact table, merge-join, partitioning attributes across (PAX) layout, message passing interface (MPI), two-phase commit (2PC), ACID
</p>
<p class="post-content">
<strong>Systems/Approaches</strong>: Hadoop, Spark, YARN, HDFS Hive, Impala, Vectorwise, Actian Vector
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./student_slides/14.VectorH_XiaotongNiu_XiaoyanGe.pdf">Discussion Slides</a> </li>
<li><strong>(P)</strong> <a href="https://dl.acm.org/citation.cfm?id=2903742">VectorH: Taking SQL-on-Hadoop to the Next Level</a>, SIGMOD 2016 (paper for <strong class="red">TECHNICAL QUESTION</strong>)</li>
<li class="tech-question"><strong>Technical Question:</strong> <em>
VectorH uses Vectorwise as a springboard to
jumpstart its development. In particular, the query
optimizer of Vectorwise makes the big assumption
that all workers can read everything with an equal
IO cost. With VectorH, these assumptions are
invalidated. How do the authors redesign the query
optimizer to work with this new constraint and can
you think of how they modeled the new cost? What
benefits does VectorH receive from their solution?
</em></li>
<li> (B) <a href="http://www.vldb.org/pvldb/vol7/p1295-floratou.pdf">SQL-on-Hadoop: Full Circle Back to Shared-Nothing Database Architectures</a>, VLDB 2014</li>
<li> (B) <a href="http://www.vldb.org/pvldb/2/vldb09-861.pdf">HadoopDB: An Architectural Hybrid of MapReduce and DBMS Technologies for Analytical Workloads</a>, VLDB 2009</li>
<li> (B) <a href="https://dl.acm.org/doi/10.1145/1327452.1327492">MapReduce: simplified data processing on large clusters</a>, CACM 2008</li>
</ul>
</p> -->
<h2 class="text-center">F. Machine Learning for Data Systems</h2>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Machine Learning for Data Systems
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<strong>Concepts</strong>: physical design, machine learning, tuning knobs, database administrator (DBA), OtterTune, workload characterization, k-means clustering, knob identification, automatic tuner, feature selection, linear regression model, ordinary least squares, workload mapping (dynamic vs. static), configuration recommendation
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class22.pdf">Slides</a> </li>
<li><strong>(P)</strong> <a href="https://dl.acm.org/citation.cfm?id=3064029">Automatic Database Management System Tuning Through Large-scale Machine Learning</a>, SIGMOD 2017 [<a href="https://www.youtube.com/watch?v=OnFBoWsdJqo&t=1530" target="_blank">conf. present. video</a>]</li>
<!-- <li class="tech-question"><font color="#cc0000"><strong>Technical Question <script type="text/javascript">document.write("T"+(techq++)); </script>:</strong></font> <em class="tech-question-text">OttherTune: The authors explains that it is impossible to provide a universal knob setting. Explain the reason why using the experimental results shown in the paper. </em> </li> -->
<li> (B) <a href="http://www.pdl.cmu.edu/PDL-FTP/Database/p42-pavlo-cidr17.pdf">Self-Driving Database Management Systems</a>, CIDR 2017</li>
<li> (B) <a href="https://doi.org/10.1145/3318464.3380579">Learning Multi-Dimensional Indexes</a>, SIGMOD 2018 [<a href="https://vimeo.com/442093133#t=1050s" target="_blank">conf. present. video</a>]</li>
<li> (B) <a href="https://dl.acm.org/citation.cfm?id=3196909">The Case for Learned Index Structures</a>, SIGMOD 2018 [<a href="https://www.youtube.com/watch?v=MM33CvATm_M" target="_blank">conf. present. video</a>]</li>
<li> (B) <a href="http://sites.computer.org/debull/A21mar/p3.pdf">ML-In-Databases: Assessment and Prognosis</a>, IEEE Data Engineering Bulletin, 44(1), March 2021 </li>
<li> (B) <a href="http://www.vldb.org/pvldb/vol12/p1705-marcus.pdf">Neo: A Learned Query Optimizer</a>, VLDB 2019 </li>
<li> (B) <a href="http://cidrdb.org/cidr2019/papers/p117-kraska-cidr19.pdf">SageDB: A Learned Database System</a>, CIDR 2019 </li>
<li> (B) <a href="https://stratos.seas.harvard.edu/files/stratos/files/selfdesignedandlearnedsystems.pdf">From Auto-tuning One Size Fits All to Self-designed and Learned Data-intensive Systems</a>, SIGMOD 2019 </li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Learned Indexes
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class23.pdf">Slides</a> </li>
<li><strong>(P)</strong> <a href="https://dl.acm.org/doi/10.1145/3318464.3389711">Alex: An Updatable Adaptive Learned Index</a>, SIGMOD 2020 [<a href="https://www.youtube.com/watch?v=wVxbOcwYZ8I" target="_blank">conf. present. video</a>]</li>
<li>(B) <a href="https://dl.acm.org/doi/10.1145/3299869.3319860">FITing-Tree: A Data-aware Index Structure</a>, SIGMOD 2019 [<a href="https://av.tib.eu/media/42914" target="_blank">conf. present. video</a>]</li>
<li>(B) <a href="http://cs.brown.edu/people/acrotty/pubs/cidr2021_paper20.pdf">Hist-Tree: Those Who Ignore It Are Doomed to Learn</a>, CIDR 2021 [<a href="https://www.youtube.com/watch?v=ruELVKr54yI" target="_blank">conf. present. video</a>]</li>
<!-- <li class="tech-question"><strong>Technical Question:</strong> <em>
TBA
FITing-Tree only describes the case of insertions.
Describe how to support updates and deletes, along
with the impacts on performance.
</em></li> -->
</ul>
</p>
<!-- <h3 class="post-subtitle">
Class <script type="text/javascript">document.write(cday+1)</script>: Learned Query Optimization
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<h4>Readings</h4>
<ul class="mylist">
<li><strong>(P)</strong> <a href="http://www.vldb.org/pvldb/vol12/p1705-marcus.pdf">Neo: A Learned Query Optimizer</a>, PVLDB 2019 (paper for <strong class="red">REVIEW</strong>)</li>
</ul>
</p> -->
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Learned Query Evaluation
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
<!-- We will spend the first 15 minutes to <a href="http://bu.campuslabs.com/courseeval" target="_blank">provide class evaluation</a>! -->
<h4>Readings</h4>
<ul class="mylist">
<li><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="./slides/CAS-CS561-Class24.pdf">Slides</a> </li>
<li><strong>(P)</strong> <a href="http://wrap.warwick.ac.uk/115961/7/WRAP-DBEst-revisiting-approximate-query-processing-engines-machine-learning-models-Triantafillou-2019.pdf">DBEst: Revisiting Approximate Query Processing Engines with Machine Learning Models</a>, SIGMOD 2019 [<a href="https://av.tib.eu/media/42909" target="_blank">conf. present. video</a>]</li>
<li class="tech-question"><font color="#cc0000"><strong>Technical Question <script type="text/javascript">document.write("T"+(techq++)); </script>:</strong></font> <em class="tech-question-text">DBEst: The authors explain that DBEst uses models, unlike other competing AQP approaches. Explain how models are built and how they can answer aggregate functions. </em> </li>
</ul>
</p>
<!-- <div class="alert alert-danger" role="alert"> -->
<h3 class="post-subtitle" id="research-talk-2" style="margin:0px">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Guest Lecture on "Building a Healthcare Computational Engine: The case for purpose-built systems"
</h3>
<p style="border:0px; margin:0px;"> from <a href="https://www.linkedin.com/in/angelok1/" target="_blank">Angelo Kastroulis</a>, Ballista Technology Group</p>
<!-- <p style="border:0px; margin:0px;">Part of <strong> Machine Learning for Data Systems</strong></p> -->
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<!-- <p class="post-content"><strong>Abstract:</strong> TBA -->
<!-- </p> -->
<p class="post-content"><strong>Bio:</strong> Angelo is a data scientist, author, speaker, engineer, podcaster,
entrepreneur, and inventor. He has served in a variety of executive positions (CTO, COO, CEO) in health IT,
consulting, and fintech before founding the consulting firm Carrera Group. Along the way, he has contributed to
several health standards.
Angelo received his graduate degree from Harvard University where he studied high-performance
computing and artificial intelligence. His research in the Harvard Data Systems Laboratory
focused on methods of artificial intelligence that enable self-tuning data systems, resulting
in patents and published research.
Angelo is currently CEO of Ballista Technology Group (a high-performance computing consulting
firm and next generation VC) and host of the <a href="https://CountingSandShow.com" target="_blank">Counting Sand podcast</a>.
</p>
<p>
Twitter: <a href="https://twitter.com/angelokastr" target="_blank">@angelokastr</a> <a href="https://twitter.com/ballistagroup" target="_blank">@ballistagroup</a></p>
<p>
<!-- <h4 style="color:black">Readings</h4> -->
<!-- <ul>
<li style="color:black"><a target="_blank" style="font-size:18px; text-decoration: underline;" tabindex="-1" href="https://rmarcus.info/pub/bu20.pdf" >Slides from Ryan Marcus</a> </li>
</ul> -->
</p>
<!-- </div> -->
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Project Presentations A
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
Project Presentations
<!-- <h4>Readings</h4> -->
<ul class="mylist">
<li><strong>12:30-12:45</strong> Class Evaluation </li>
<li><strong>12:45-12:57</strong> <a href="./project_slides/SlotA_LSM-impl.pdf" target="_blank">"An LSM-Tree Implementation" from Amara Nwigwe, Satha (Ray) Kitirattragarn, Adit Mehta, Huda Irshad</a> </li>
<li><strong>12:57-1:09</strong> <a href="./project_slides/SlotB_Dual-B+Tree.pdf" target="_blank">"Dual B+ Trees" from Lanfeng Liu, Ning Wang, Jianqi Ma</a> </li>
<li><strong>1:09-1:21</strong> <a href="./project_slides/SlotC_Bufferpool.pdf" target="_blank">"Buffer Pool Manager" from Harsh Mutha, Aditya Pal, Manind Gera</a> </li>
<li><strong>1:21-1:33</strong> <a href="./project_slides/SlotD_LSM-impl.pdf" target="_blank">"Implementation of LSM", from Hantian (Alan) Liu, Joseph Mitchell, Junchen Liu</a> </li>
<li><strong>1:33-1:45</strong> <a href="./project_slides/SlotE_Benchmarking-Dual-B+Tree.pdf" target="_blank">"Benchmarking Dual B+ Trees" from Meng-Heng Lee, Jingyi Huang, Shaolin Xie</a> </li>
</ul>
</p>
<h3 class="post-subtitle">
<script type="text/javascript">document.write("<a id=\"class"+(cday+1)+"\"></a>"); </script>
Class <script type="text/javascript">document.write(cday+1)</script>: Project Presentations B
</h3>
<p class="post-meta"><script type="text/javascript"> document.write(classDay(rday+cday+cancelday));cday++;</script></p>
<p class="post-content">
Project Presentations
<ul class="mylist">
<li><strong>12:30-12:42</strong> <a href="./project_slides/SlotF_Bufferpool-Impl.pdf" target="_blank">"Buffer pool Manager" from Samir Farhat, Yuxin Li, Stephany Yipchoy</a> </li>
<li><strong>12:42-12:54</strong> <a href="./project_slides/SlotG_LSM-impl.pdf" target="_blank">"Implementation of LSM-tree" from Shun Yao, Yinan An, Minghui Yang</a> </li>
<li><strong>12:54-1:06</strong> <a href="./project_slides/SlotH_RangeDeletes-in-LSM.pdf" target="_blank">"Range Deletes in LSM-Trees" from Guanzhang Li, Kaize Shi, Xinyun Cao</a> </li>
<li><strong>1:06-1:18</strong> <a href="./project_slides/SlotI_LSM-impl.pdf" target="_blank">"An implementation of LSM tree" from Xingkun Yin, Jingyu Su, Richard Andreas</a> </li>
<li><strong>1:18-1:30</strong> <a href="./project_slides/SlotJ_Concurrency-Aware-Graph-Traversal-Algorithms.pdf" target="_blank">"Concurrency-Aware Graph/Tree Traversal Algorithms" from Randy Collado, Taishan Chen, Yizheng Xie</a> </li>
<li><strong>1:30-1:45</strong> Closing Remarks </li>
</ul>
</p>