Course Introduction and History of Database Systems

Databases are still a hot field. DBMS developers are in demand and there are many challenging unsolved problems in data management and processing. If you are good enough to write code for a DBMS, then you can write code on almost anything else.
展开查看详情

1.15-721 DATABASE SYST EM S Lecture #01 – Course Introduction & History of Database Systems Andy Pavlo // Carnegie Mellon University // Spring 2016

2. 2 W H Y YO U S H O U L D TA K E T H I S CO U R S E CMU 15-721 (Spring 2016)

3. 2 W H Y YO U S H O U L D TA K E T H I S CO U R S E CMU 15-721 (Spring 2016)

4. 2 W H Y YO U S H O U L D TA K E T H I S CO U R S E CMU 15-721 (Spring 2016)

5. 2 W H Y YO U S H O U L D TA K E T H I S CO U R S E CMU 15-721 (Spring 2016)

6. 2 W H Y YO U S H O U L D TA K E T H I S CO U R S E CMU 15-721 (Spring 2016)

7. 3 W H Y YO U S H O U L D TA K E T H I S CO U R S E Databases are still a hot field. DBMS developers are in demand and there are many challenging unsolved problems in data management and processing. If you are good enough to write code for a DBMS, then you can write code on almost anything else. CMU 15-721 (Spring 2016)

8. 4 TO DAY ’ S AG E N DA Course Outline History of Database Systems CMU 15-721 (Spring 2016)

9. 5 CO U R S E O B J E C T I V E S Learn about modern practices in database internals and systems programming. Students will become proficient in: → Writing correct + performant code → Proper documentation + testing → Code reviews → Working on a large code base → North American street skills CMU 15-721 (Spring 2016)

10. 6 CO U R S E TO P I C S The internals of single node systems for in- memory databases. We will ignore distributed deployment problems. We will cover state-of-the-art topics. This is not a course on classical DBMSs. CMU 15-721 (Spring 2016)

11. 7 CO U R S E TO P I C S Concurrency Control Indexing Storage Models, Compression Join Algorithms Logging & Recovery Methods Query Optimization, Execution, Compilation New Storage Hardware CMU 15-721 (Spring 2016)

12. 8 BAC KG R O U N D I assume that you have already taken an intro course on databases (e.g., 15-415/615). We will discuss modern variations of classical algorithms that are designed for today’s hardware. Things that we will not cover: SQL, Serializability Theory, Relational Algebra, Basic Algorithms + Data Structures. CMU 15-721 (Spring 2016)

13. 9 BAC KG R O U N D All projects will be written in C++11. You will be working on a large code-base that contains portions of Postgres that we (CMU) did not write. Be prepared to debug a multi-threaded program. CMU 15-721 (Spring 2016)

14. 10 CO U R S E LO G I S T I C S Course Policies + Schedule: → Refer to course web page. Academic Honesty: → Refer to CMU policy page. → If you’re not sure, ask me. → I’m serious. Don’t plagiarize or I will wreck you. CMU 15-721 (Spring 2016)

15. 11 OFFICE HOURS Immediately after class in my office: → Mon/Wed: 1:30 – 2:30 → Gates-Hillman Center 9019 Things that we can talk about: → Issues on implementing projects → Paper clarifications/discussion → Relationship advice CMU 15-721 (Spring 2016)

16. 12 T E AC H I N G A S S I S TA N T S Head TA: Joy Arulraj → Main contact for questions about programming projects. Thug TA: Mu Li → Helping out with logistics and grading scripts. CMU 15-721 (Spring 2016)

17. 13 CO U R S E R U B R I C Reading Assignments Programming Projects Final Exam Extra Credit CMU 15-721 (Spring 2016)

18. 14 READING ASSIGNMENTS One mandatory reading per class (★). You can skip four readings during the semester. You must submit a synopsis before class: → Overview of the main idea (two sentences). → System used and how it was modified (one sentence). → Workloads evaluated (one sentence). Submission Form: http://cmudb.io/15721-s16-submit CMU 15-721 (Spring 2016)

19. 15 P L AG I A R I S M WA R N I N G Each review must be your own writing. You may not copy text from the papers or other sources that you find on the web. Plagiarism will not be tolerated. See CMU's Policy on Academic Integrity for additional information. CMU 15-721 (Spring 2016)

20. 16 PROGRAMMING PROJECTS Projects will be implemented in CMU’s new DBMS Peloton. → In-memory, hybrid DBMS based on Postgres → Modern code base (C++11, Multi-threaded) We will provide more details about how to get started with the first project next class. CMU 15-721 (Spring 2016)

21. 17 PROGRAMMING PROJECTS Do all development on your local machine. → Peloton only builds on Linux. → We will provide a Vagrant configuration. Do all benchmarking using DB Lab cluster. → We will provide login details later in semester. Generous hardware donation from MemSQL. CMU 15-721 (Spring 2016)

22. 18 PROJECTS #1 AND #2 We will provide you with test cases and scripts for the first two programming projects. Project #1 will be completed individually. Project #2 will be done in a group of three. → 30 people in the class → 10 groups of 3 people CMU 15-721 (Spring 2016)

23. 19 P L AG I A R I S M WA R N I N G These projects must be all of your own code. You may not copy source code from other groups or the web. Plagiarism will not be tolerated. See CMU's Policy on Academic Integrity for additional information. CMU 15-721 (Spring 2016)

24. 20 PROJECT #3 Each group will choose a project that is: → Relevant to the materials discussed in class. → Requires a significant programming effort from all team members. → Unique (i.e., two groups can’t pick same idea). You don’t have to pick a topic until after Spring Break. We will provide sample project topics. CMU 15-721 (Spring 2016)

25. 21 PROJECT #3 Project deliverables: → Proposal → Project Update → Code Review → Final Presentation → Code Drop CMU 15-721 (Spring 2016)

26. 22 PROJECT #3 – PROPOSAL Five minute presentation to the class that discusses the high-level topic. Each proposal must discuss: → What files you will need to modify. → How you will test whether your implementation is correct. → What workloads you will use for your project. CMU 15-721 (Spring 2016)

27. 23 P R O J E C T # 3 – S TAT U S U P DAT E Five minute presentation to update the class about the current status of your project. Each presentation should include: → Current development status. → Whether anything in your plan has changed. → Any thing that surprised you. CMU 15-721 (Spring 2016)

28. 24 P R O J E C T # 3 – CO D E R E V I E W Each group will be paired with another group and provide feedback on their code. Grading will be based on participation. CMU 15-721 (Spring 2016)

29. 25 P R O J E C T # 3 – F I N A L P R E S E N TAT I O N 10 minute presentation on the final status of your project during the scheduled final exam. You’ll want to include any performance measurements or benchmarking numbers for your implementation. Demos are always hot too… CMU 15-721 (Spring 2016)