diff --git a/README.md b/README.md index d01f3c87..b26101eb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # The ODIn Lab Website -Hosted at http://odin.cse.buffalo.edu +Hosted at https://odin.cse.buffalo.edu ## Editing the Website diff --git a/db/cv/okennedy.json b/db/cv/okennedy.json index 5a80c541..bb525964 100644 --- a/db/cv/okennedy.json +++ b/db/cv/okennedy.json @@ -21,7 +21,7 @@ "contact" : { "Phone" : "+1 (716) 645-1597", "Email" : "okennedy@buffalo.edu", - "Web" : "http://odin.cse.buffalo.edu/" + "Web" : "https://odin.cse.buffalo.edu/" }, "education" : [ { diff --git a/db/cv/okennedy/grants.json b/db/cv/okennedy/grants.json index 0b61df1b..4017484b 100644 --- a/db/cv/okennedy/grants.json +++ b/db/cv/okennedy/grants.json @@ -88,8 +88,8 @@ "commitment" : { "summer" : 1 }, "agency_id" : "1640864", "urls" : { - "whitepaper" : "http://odin.cse.buffalo.edu/grants/2016-NSF-Vizier-Whitepaper.pdf", - "proposal" : "http://odin.cse.buffalo.edu/grants/2016-NSF-Vizier.pdf" + "whitepaper" : "https://odin.cse.buffalo.edu/grants/2016-NSF-Vizier-Whitepaper.pdf", + "proposal" : "https://odin.cse.buffalo.edu/grants/2016-NSF-Vizier.pdf" }, "supplements" : [ { "type" : "NSF-REU", @@ -118,8 +118,8 @@ "supports" : ["Ying Yang", "Poonam Kumari" ], "commitment" : { "summer" : 1 }, "urls" : { - "abstract" : "http://odin.cse.buffalo.edu/grants/2016-Oracle-IntuitiveDataInterpretation-Abstract.rtf", - "proposal" : "http://odin.cse.buffalo.edu/grants/2016-Oracle-IntuitiveDataInterpretation-Full.rtf" + "abstract" : "https://odin.cse.buffalo.edu/grants/2016-Oracle-IntuitiveDataInterpretation-Abstract.rtf", + "proposal" : "https://odin.cse.buffalo.edu/grants/2016-Oracle-IntuitiveDataInterpretation-Full.rtf" } }, { "title" : "CI-P: Supporting Pocket Scale Data Management Research", @@ -134,7 +134,7 @@ "agency_id" : "1629791", "commitment" : { "summer" : 0.25 }, "urls" : { - "proposal" : "http://odin.cse.buffalo.edu/grants/2016-NSF-PocketData.pdf" + "proposal" : "https://odin.cse.buffalo.edu/grants/2016-NSF-PocketData.pdf" } }, { "title" : "Curating Uncertainty and Reliable Exploitation (CURE)", @@ -166,8 +166,8 @@ "supports" : [ "Saurav Singhi", "Hank Lin" ], "commitment" : { "summer" : "0.75, 1.25, 1" }, "urls" : { - "abstract" : "http://odin.cse.buffalo.edu/grants/2016-NSF-JITDs-Abstract.txt", - "proposal" : "http://odin.cse.buffalo.edu/grants/2016-NSF-JITDs-Full.pdf" + "abstract" : "https://odin.cse.buffalo.edu/grants/2016-NSF-JITDs-Abstract.txt", + "proposal" : "https://odin.cse.buffalo.edu/grants/2016-NSF-JITDs-Full.pdf" }, "supplements" : [ { "type" : "NSF-REU", @@ -216,8 +216,8 @@ "start" : "03/2015", "end" : "03/2016", "type" : "gift", "urls" : { - "abstract" : "http://odin.cse.buffalo.edu/grants/2015-Oracle-IntuitiveDataInterpretation-Abstract.txt", - "proposal" : "http://odin.cse.buffalo.edu/grants/2015-Oracle-IntuitiveDataInterpretation-Full.txt" + "abstract" : "https://odin.cse.buffalo.edu/grants/2015-Oracle-IntuitiveDataInterpretation-Abstract.txt", + "proposal" : "https://odin.cse.buffalo.edu/grants/2015-Oracle-IntuitiveDataInterpretation-Full.txt" }, "supports" : [ "Niccolò Meneghetti", "Ying Yang", "Arindam Nandi" ], "commitment" : { "summer" : 1 } @@ -290,8 +290,8 @@ } ], "urls" : { - "abstract" : "http://odin.cse.buffalo.edu/grants/2014-NSF-SatC-InsiderThreats-Abstract.pdf", - "proposal" : "http://odin.cse.buffalo.edu/grants/2014-NSF-SatC-InsiderThreats-Full.pdf" + "abstract" : "https://odin.cse.buffalo.edu/grants/2014-NSF-SatC-InsiderThreats-Abstract.pdf", + "proposal" : "https://odin.cse.buffalo.edu/grants/2014-NSF-SatC-InsiderThreats-Full.pdf" }, "supports" : [ "Ting Xie", "Gökhan Kul", "Duc Thanh Luong" ], "commitment" : { "summer" : "1, 2, 0, 1" } @@ -306,7 +306,7 @@ "start" : "03/2014", "end" : "03/2015", "type" : "gift", "urls" : { - "abstract" : "http://odin.cse.buffalo.edu/grants/2014-IntuitiveDataInterpretation.rtf" + "abstract" : "https://odin.cse.buffalo.edu/grants/2014-IntuitiveDataInterpretation.rtf" }, "supports" : [ "Ying Yang" ], "commitment" : { "summer" : 1 } diff --git a/db/lab.json b/db/lab.json index 3f83c32d..f0da1fdd 100644 --- a/db/lab.json +++ b/db/lab.json @@ -4,7 +4,7 @@ "status" : "Assistant Professor", "ubit" : "okennedy", "pic" : { - "file" : "http://odin.cse.buffalo.edu/assets/people/oliver.jpg", + "file" : "https://odin.cse.buffalo.edu/assets/people/oliver.jpg", "width" : 230, "height" : 346 }, @@ -12,7 +12,7 @@ "twitter" : "xthemage", "scholar" : "9Q9tiCsAAAAJ", "dblp" : "hd/k/Kennedy:Oliver", - "cv" : "http://odin.cse.buffalo.edu/artifacts/okennedy.pdf", + "cv" : "https://odin.cse.buffalo.edu/artifacts/okennedy.pdf", "orcid" : "0000-0003-0632-1668" }, "Mike Brachmann" : { @@ -30,7 +30,7 @@ "projects" : ["insider-threats"], "ubit" : "tingxie", "pic" : { - "file" : "http://odin.cse.buffalo.edu/assets/people/ting.jpg", + "file" : "https://odin.cse.buffalo.edu/assets/people/ting.jpg", "width" : 270, "height" : 360 }, @@ -76,7 +76,7 @@ "projects" : ["mimir"], "ubit" : "ahuber", "pic" : { - "file" : "http://odin.cse.buffalo.edu/assets/people/aaron.jpg", + "file" : "https://odin.cse.buffalo.edu/assets/people/aaron.jpg", "width" : 255, "height" : 318 } @@ -95,7 +95,7 @@ "joint_advisor" : true, "advisor" : ["Luke Ziarek"], "pic" : { - "file" : "http://odin.cse.buffalo.edu/assets/people/lisa.jpg", + "file" : "https://odin.cse.buffalo.edu/assets/people/lisa.jpg", "width" : 260, "height" : 292 } @@ -120,7 +120,7 @@ "ubit" : "shivanga", "link" : "http://about.me/shivangaggarwal", "pic" : { - "file" : "http://odin.cse.buffalo.edu/assets/people/shivang.jpg", + "file" : "https://odin.cse.buffalo.edu/assets/people/shivang.jpg", "width" : 216, "height" : 199 } @@ -150,7 +150,7 @@ "joint_advisor" : true, "advisor" : ["Luke Ziarek"], "pic" : { - "file" : "http://odin.cse.buffalo.edu/assets/people/carl.jpg", + "file" : "https://odin.cse.buffalo.edu/assets/people/carl.jpg", "width" : 200, "height" : 200 } @@ -277,7 +277,7 @@ "projects" : ["mimir"], "ubit" : "niccolom", "advisor" : ["Jan Chomicki"], - "link" : "http://odin.cse.buffalo.edu/people/niccolo_meneghetti/", + "link" : "https://odin.cse.buffalo.edu/people/niccolo_meneghetti/", "position" : "Software Engineer", "company" : "HPE/Vertica", "joint_advisor" : true, diff --git a/db/publications.json b/db/publications.json index 85020313..741e20cf 100644 --- a/db/publications.json +++ b/db/publications.json @@ -21,10 +21,10 @@ "projects" : ["mimir"], "length" : 12, "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2017/SIGMOD-BetaPDBs-final.pdf", + "paper" : "https://odin.cse.buffalo.edu/papers/2017/SIGMOD-BetaPDBs-final.pdf", "video" : "https://youtu.be/CbTaDRdTG7s?t=2m56s", - "slides" : "http://odin.cse.buffalo.edu/slides/conference/2017-Niccolo-BetaPDBs.pptx", - "poster" : "http://odin.cse.buffalo.edu/slides/conference/2017-Niccolo-BetaPDBs-poster.ppt" + "slides" : "https://odin.cse.buffalo.edu/slides/conference/2017-Niccolo-BetaPDBs.pptx", + "poster" : "https://odin.cse.buffalo.edu/slides/conference/2017-Niccolo-BetaPDBs-poster.ppt" }, "grants_cited" : [ { "agency" : "NSF: CISE: SaTC", "agency_id" : "1409551" }, @@ -49,8 +49,8 @@ "projects" : ["pocketdata", "mimir"], "length" : 1, "urls" : { - "abstract" : "http://odin.cse.buffalo.edu/papers/2017/ICDE-Panel-SmallData.pdf", - "extended" : "http://odin.cse.buffalo.edu/papers/2017/ICDE-Panel-SmallData-extended.pdf" + "abstract" : "https://odin.cse.buffalo.edu/papers/2017/ICDE-Panel-SmallData.pdf", + "extended" : "https://odin.cse.buffalo.edu/papers/2017/ICDE-Panel-SmallData-extended.pdf" } }, { @@ -64,7 +64,7 @@ "projects" : ["mimir"], "length" : 1, "urls" : { - "abstract" : "http://odin.cse.buffalo.edu/papers/2017/CIDR-Truthiness-abstract.pdf" + "abstract" : "https://odin.cse.buffalo.edu/papers/2017/CIDR-Truthiness-abstract.pdf" } }, { @@ -77,8 +77,8 @@ "projects" : ["mimir"], "length" : 12, "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2017/EDBT-ConvergentInf-final.pdf", - "slides" : "http://odin.cse.buffalo.edu/slides/talks/2017-1-EDBT-Inference/" + "paper" : "https://odin.cse.buffalo.edu/papers/2017/EDBT-ConvergentInf-final.pdf", + "slides" : "https://odin.cse.buffalo.edu/slides/talks/2017-1-EDBT-Inference/" }, "grants_cited" : [ { "agency" : "NSF: CISE: SaTC", "agency_id" : "1409551" }, @@ -154,7 +154,7 @@ "length":4, "projects" : ["mimir"], "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2016/QDB-Uncertainty-final.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2016/QDB-Uncertainty-final.pdf" }, "grants_cited" : [ { "agency" : "NSF: ACI: DIBBS", "agency_id" : "1640864" }, @@ -172,8 +172,8 @@ "projects" : ["mimir", "vizier"], "authornote" : "alpha", "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2016/HILDA-vizier-final.pdf", - "slides" : "http://odin.cse.buffalo.edu/slides/talks/2016-4-HILDA/" + "paper" : "https://odin.cse.buffalo.edu/papers/2016/HILDA-vizier-final.pdf", + "slides" : "https://odin.cse.buffalo.edu/slides/talks/2016-4-HILDA/" }, "grants_cited" : [ { "agency" : "Oracle University Relations", "start_date" : "05/2016", "project_name" : "Intuitive Data Interpretation" } @@ -190,7 +190,7 @@ "length":6, "projects" : ["mimir", "vizier"], "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2016/TAPP-PVVDW-final.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2016/TAPP-PVVDW-final.pdf" } }, { @@ -231,7 +231,7 @@ "year":2016, "length":4, "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2016/ERMIS-final.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2016/ERMIS-final.pdf" }, "projects" : ["insider-threats"] }, @@ -245,9 +245,9 @@ "venue":"TPC-TC","year":2015, "length":16, "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2015/TPCTC-sqlite-final.pdf", - "html5-slides" : "http://odin.cse.buffalo.edu/slides/talks/2015-1-PocketData", - "pdf-slides" : "http://odin.cse.buffalo.edu/slides/talks/2015-1-PocketData.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2015/TPCTC-sqlite-final.pdf", + "html5-slides" : "https://odin.cse.buffalo.edu/slides/talks/2015-1-PocketData", + "pdf-slides" : "https://odin.cse.buffalo.edu/slides/talks/2015-1-PocketData.pdf" }, "projects" : ["pocketdata", "astral"] }, @@ -266,8 +266,8 @@ "number":12, "pages":"1578--1589", "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2015/VLDB-lenses-final.pdf", - "slides" : "http://odin.cse.buffalo.edu/slides/conference/2015-Ying-VLDB-Mimir.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2015/VLDB-lenses-final.pdf", + "slides" : "https://odin.cse.buffalo.edu/slides/conference/2015-Ying-VLDB-Mimir.pdf" }, "projects" : ["mimir"] }, @@ -277,7 +277,7 @@ "length":6, "authornote":"alpha", "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2015/HotMobile-maybe-final.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2015/HotMobile-maybe-final.pdf" }, "projects" : ["maybe"] }, @@ -286,8 +286,8 @@ "venue":"CIDR","year":2015, "length":10, "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2015/CIDR-jitd-final.pdf", - "slides" : "http://odin.cse.buffalo.edu/slides/talks/2015-3-JITDs.zip" + "paper" : "https://odin.cse.buffalo.edu/papers/2015/CIDR-jitd-final.pdf", + "slides" : "https://odin.cse.buffalo.edu/slides/talks/2015-3-JITDs.zip" }, "projects" : ["astral"] }, @@ -304,7 +304,7 @@ "length":9, "authornote":"Authors listed students first, then faculty", "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2015/BIGDATA-pigout-final.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2015/BIGDATA-pigout-final.pdf" }, "projects" : ["pigout"] }, @@ -321,7 +321,7 @@ "length":17, "authornote":"Authors listed UB first, then Oracle", "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2014/BIRTE-context-final.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2014/BIRTE-context-final.pdf" }, "projects" : ["mimir"] }, @@ -332,7 +332,7 @@ "year" : 2013, "projects" : ["astral"], "urls" : { - "thesis" : "http://odin.cse.buffalo.edu/thesis/2013-AnkurUpadhyay.pdf" + "thesis" : "https://odin.cse.buffalo.edu/thesis/2013-AnkurUpadhyay.pdf" } }, { "title":"Monadic Logs for Collaborative Web Applications", @@ -348,7 +348,7 @@ "length":6, "authornote":"alpha", "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2013/WebDB-laasie-final.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2013/WebDB-laasie-final.pdf" }, "projects" : ["astral"] }, @@ -446,7 +446,7 @@ "venue":"SIGMOD","year":"2011", "length":12, "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2011/SIGMOD-jigsaw.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2011/SIGMOD-jigsaw.pdf" }, "projects" : ["pip"] }, @@ -456,7 +456,7 @@ "length":"demo+4 pages", "track":"Demo", "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2011/SIGMOD-demo-jigsaw.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2011/SIGMOD-demo-jigsaw.pdf" }, "projects" : ["pip"] }, @@ -505,7 +505,7 @@ "venue":"ICDE","year":"2010", "length":12, "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2010/ICDE-pip.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2010/ICDE-pip.pdf" }, "projects" : ["pip"] }, @@ -514,7 +514,7 @@ "venue":"ICDE","year":"2009", "length":4, "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2010/ICDE-pip.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2010/ICDE-pip.pdf" }, "projects" : ["gossip"] }, @@ -574,7 +574,7 @@ ], "venue":"MIST","year":2015, "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2015/MIST-ontology-final.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2015/MIST-ontology-final.pdf" }, "projects" : ["insider-threats"], "hidden" : true @@ -585,7 +585,7 @@ ], "venue":"pVLDB","year":2014, "urls" : { - "paper" : "http://odin.cse.buffalo.edu/papers/2014/VLDBPhD-ondemand-final.pdf" + "paper" : "https://odin.cse.buffalo.edu/papers/2014/VLDBPhD-ondemand-final.pdf" }, "track":"PhD", "projects" : ["mimir"] diff --git a/slides/cse501/2015.html b/slides/cse501/2015.html index a0d3562a..4867c92b 100644 --- a/slides/cse501/2015.html +++ b/slides/cse501/2015.html @@ -43,7 +43,7 @@
The Online Data Interactions Lab
- http://odin.cse.buffalo.edu
+ https://odin.cse.buffalo.edu
@@ -129,7 +129,7 @@
Email: okennedy@buffalo.edu Office: Davis 338H The second part of communication is speaking the user's language. If you're going to make guesses that affect a user's analysis... tell them... but tell them in English (or your localization of choice). Prioritize. Let the user know why their result is uncertain, what you did to fix it, and whether they should be concerned or not. Above all, let the user dictate the pace at which they absorb information. The third part of communication is listening. If there's an error that affects the user's results, we can't just stop at telling the user. We need to make it as easy as possible for the user to fix it. Don't shun uncertainty, embrace it. Better still, make it easier for your users to embrace it! And, if you're interested in how the ODIn Lab is trying to approach these problems, check out the Mimir project and our 2015 VLDB paper (Research Session 25, Thursday, Sept 3 at 1:30 PM), or drop us a line! And, if you're interested in how the ODIn Lab is trying to approach these problems, check out the Mimir project and our 2015 VLDB paper (Research Session 25, Thursday, Sept 3 at 1:30 PM), or drop us a line! Your code is expected to evaluate the SELECT statements on provided data, and produce output in a standardized form. Your code will be evaluated for both correctness and performance (in comparison to a naive evaluator based on iterators and nested-loop joins). A parser converts a human-readable string into a structured representation of the program (or query) that the string describes. A fork of the JSQLParser open-source SQL parser (JSQLParser) will be provided for your use. The JAR may be downloaded from: And documentation for the fork is available at You are not required to use this parser (i.e., you may write your own if you like). However, we will be testing your code on SQL that is guaranteed to parse with JSqlParser. Basic use of the parser requires a java.io.Reader or java.io.InputStream from which the file data to be parsed (For example, a java.io.FileReader). Let's assume you've created one already (of either type) and called it inputFile. http://odin.cse.buffalo.edu/resources/jsqlparser/jsqlparser.jar https://odin.cse.buffalo.edu/resources/jsqlparser/jsqlparser.jar http://odin.cse.buffalo.edu/resources/jsqlparser https://odin.cse.buffalo.edu/resources/jsqlparser http://odin.cse.buffalo.edu/resources/expressionlib/expression.jar https://odin.cse.buffalo.edu/resources/expressionlib/expression.jar Documentation for the library is available at http://odin.cse.buffalo.edu/resources/expressionlib https://odin.cse.buffalo.edu/resources/expressionlib To use the Eval class, you will need to define a method for dereferencing Column objects. For example, if I have a Map called tupleSchema that contains my tuple schema, and an ArrayList called tuple that contains the tuple I am currently evaluating, I might write: For this project, you will get access to a new library: BerkeleyDB (Java Edition). Don't let the name mislead you, BDB is not actually a full database system. Rather, BDB implements the indexing and persistence layers of a database system. Download BDB at: http://odin.cse.buffalo.edu/resources/berkeleydb/berkeleydb.jar https://odin.cse.buffalo.edu/resources/berkeleydb/berkeleydb.jar The BerkeleyDB documentation is mirrored at: http://odin.cse.buffalo.edu/resources/berkeleydb/ https://odin.cse.buffalo.edu/resources/berkeleydb/ You can find a getting started guide at: http://odin.cse.buffalo.edu/resources/berkeleydb/GettingStartedGuide https://odin.cse.buffalo.edu/resources/berkeleydb/GettingStartedGuide http://odin.cse.buffalo.edu/resources/berkeleydb/java/ BDB can be used in two ways: The Direct Persistence layer, and the Base API. The Direct Persistence Layer is easier to use at first, as it handles index management and serialization through compiler annotations. However, this ease comes at the cost of flexibility. Especially if you plan to use secondary indexes, you may find it substantially easier to work with the Base API. For this reason, this summary will focus on the Base API. https://odin.cse.buffalo.edu/resources/berkeleydb/java/ BDB can be used in two ways: The Direct Persistence layer, and the Base API. The Direct Persistence Layer is easier to use at first, as it handles index management and serialization through compiler annotations. However, this ease comes at the cost of flexibility. Especially if you plan to use secondary indexes, you may find it substantially easier to work with the Base API. For this reason, this summary will focus on the Base API. A relation or table is represented in BDB as a Database, which is grouped into units of storage called an Environment. The first thing that you should to do in the pre-computation phase is to create an Environment and one or more Databases. Be absolutely sure to close both the environment and the database before you exit, as not doing so could lead to file corruption. A relation or table is represented in BDB as a Database, which is grouped into units of storage called an Environment. The first thing that you should to do in the pre-computation phase is to create an Environment and one or more Databases. Be absolutely sure to close both the environment and the database before you exit, as not doing so could lead to file corruption. BDB Databases are in effect clustered indexes, which means that every record stored in one is identified (and sorted by) a key. A database supports efficient access to records or ranges of records based on their keys. Every tuple must be marked with a primary key, and may include one or more secondary keys. In the Base API, both the value and its key are represented as a string of bytes. Both key and value must be stored as a byte array encapsulated in a DatabaseEntry object. Secondary Keys are defined when creating a secondary index. Every tuple must be marked with a primary key, and may include one or more secondary keys. In the Base API, both the value and its key are represented as a string of bytes. Both key and value must be stored as a byte array encapsulated in a DatabaseEntry object. Secondary Keys are defined when creating a secondary index. Note that you will need to manually extract the key from the rest of the record and write some code to serialize the record and the key into byte arrays. You could use toString(), but you may find it substantially faster to use Java's native object serialization: ObjectOutputStream | ObjectInputStream ... or a pair of classes that java provides for serializing primitive data: DataOutputStream | DataInputStream Like a Hash-Map, BDB supports a simple get/put interface. Tuples can be stored or looked up by their key. Like your code, BDB also provides an iterator interface called a Cursor. Of note, BDB's cursor interface supports index lookups. Like a Hash-Map, BDB supports a simple get/put interface. Tuples can be stored or looked up by their key. Like your code, BDB also provides an iterator interface called a Cursor. Of note, BDB's cursor interface supports index lookups. The Database represents a clustered index. In addition, BDB has support for unclustered indexes, which it calls SecondaryDatabases. As an unclustered index, a secondary database doesn't dictate how the tuples themselves are laid out, but still allows for (mostly) efficient lookups for secondary "keys". The term "keys" is in quotation marks, because unlike the primary key used in the primary database, a secondary database allows for multiple records with the same secondary key. To automate the management process, a secondary index is defined using an implementation of SecondaryKeyCreator. This class should map record DatabaseEntry objects to a (not necessarily unique) DatabaseEntry object that acts as a secondary key. The Database represents a clustered index. In addition, BDB has support for unclustered indexes, which it calls SecondaryDatabases. As an unclustered index, a secondary database doesn't dictate how the tuples themselves are laid out, but still allows for (mostly) efficient lookups for secondary "keys". The term "keys" is in quotation marks, because unlike the primary key used in the primary database, a secondary database allows for multiple records with the same secondary key. To automate the management process, a secondary index is defined using an implementation of SecondaryKeyCreator. This class should map record DatabaseEntry objects to a (not necessarily unique) DatabaseEntry object that acts as a secondary key. Another misnomer, BDB allows you to define so-called Join Cursors. This is not a relational join in the traditional sense. Rather, a Join Cursor allows you to define multiple equality predicates over the base relation and scan over all records that match all of the specified lookup conditions. Another misnomer, BDB allows you to define so-called Join Cursors. This is not a relational join in the traditional sense. Rather, a Join Cursor allows you to define multiple equality predicates over the base relation and scan over all records that match all of the specified lookup conditions. BerkeleyDB can be quite tricky to get performance out of. There are a number of options, and ways of interacting with it that can help you get the most out of this indexing software. Since evaluation on the grading boxes takes time due to the end-to-end testing process, I encourage you to evaluate on your own machines. For best results, be sure to store your database on an HDD (Results from SSDs will not be representative of the grading boxes). Recall that the grader boxes have 4 GB of RAM. Depending on how you've implemented deserialization of the raw data files, you may find it faster to read directly from the clustered index rather than from the data file. In the reference implementation, reading from a clustered index is about twice as fast as from a data file, but this performance boost stems from several factors. If you choose to do this, take a look at DiskOrderedCursor, which my experiments show is roughly about twice as fast as a regular in-order Cursor on an HDD on a fully compacted relation. Depending on how you've implemented deserialization of the raw data files, you may find it faster to read directly from the clustered index rather than from the data file. In the reference implementation, reading from a clustered index is about twice as fast as from a data file, but this performance boost stems from several factors. If you choose to do this, take a look at DiskOrderedCursor, which my experiments show is roughly about twice as fast as a regular in-order Cursor on an HDD on a fully compacted relation. Locking is slow. Consistency is slow. As long as you're not implementing your code multithreaded or with updates or transactions, you'll find that cursor operations will be faster under LockMode.READ_UNCOMMITTED. See below for ways to set this parameter globally. Locking is slow. Consistency is slow. As long as you're not implementing your code multithreaded or with updates or transactions, you'll find that cursor operations will be faster under LockMode.READ_UNCOMMITTED. See below for ways to set this parameter globally. BDB also has numerous options that will affect the performance of your system. Several options you may wish to evaluate, both for the load and run phases: All students should provide one short paragraph identifying at least one strength and at least one weakness of the approach described in the week's reading. All students should provide one short paragraph identifying at least one strength and at least one weakness of the approach described in the week's reading.Demo
-
+
-
+
+
+
diff --git a/slides/cse501/2016/index.html b/slides/cse501/2016/index.html
index f5e0db4d..bb5d560a 100644
--- a/slides/cse501/2016/index.html
+++ b/slides/cse501/2016/index.html
@@ -448,7 +448,7 @@
Demo (Mimir)
-
+
Mimir Demo
-
+
Embracing Uncertainty
ODIn Lab
- http://odin.cse.buffalo.edu
+ https://odin.cse.buffalo.edu
Demo (Mimir)
-
+
http://odin.cse.buffalo.edu
+ https://odin.cse.buffalo.edu
Mimir Demo
-
+
http://odin.cse.buffalo.edu
+ https://odin.cse.buffalo.edu
Mimir!
-
+
Demo
-
+
Presentations
diff --git a/src/teaching/cse-462/2016sp/dubstep/checkpoint1.html b/src/teaching/cse-462/2016sp/dubstep/checkpoint1.html
index edcc4f40..1b2f6659 100644
--- a/src/teaching/cse-462/2016sp/dubstep/checkpoint1.html
+++ b/src/teaching/cse-462/2016sp/dubstep/checkpoint1.html
@@ -18,9 +18,9 @@ title: DµBStep Checkpoint 1
Parsing SQL
by Jens Dittrich
ed. Bailis, Hellerstein, and Stonebraker
Parsing SQL
A parser converts a human-readable string into a structured representation of the program (or query) that the string describes. A fork of the JSQLParser open-source SQL parser (JSQLParser) will be provided for your use. The JAR may be downloaded from
-Expressions
JSQLParser includes an object called Expression that represents a primitive-valued expression parse tree. In addition to the parser, we are providing a collection of classes for manipulating and evaluating Expressions. The JAR may be downloaded from
-public void LeafValue eval(Column x){
@@ -157,9 +157,9 @@ Your code is expected output query results in the same format as the input data
Example Queries and Data
These are only examples. Your code will be expected to handle these queries, as well as others.
-Sanity Check Examples: A thorough suite of test cases covering most simple query features.
+Sanity Check Examples: A thorough suite of test cases covering most simple query features.
-Example NBA Benchmark Queries: Some very simple queries to get you started.
+Example NBA Benchmark Queries: Some very simple queries to get you started.
The TPC-H Benchmark: This benchmark consists of two parts: DBGen (generates the data) and a specification document (defines the queries). A nice summary of the TPC-H queries can be found here.
diff --git a/src/teaching/cse-562/2015sp/checkpoint3.html b/src/teaching/cse-562/2015sp/checkpoint3.html
index cc842871..3b5a430e 100644
--- a/src/teaching/cse-562/2015sp/checkpoint3.html
+++ b/src/teaching/cse-562/2015sp/checkpoint3.html
@@ -18,73 +18,73 @@
BerkeleyDB
Environments and Databases
-Representing, Storing, and Reading Tuples
-Secondary Indexes
-BDB Joins
-Performance Tuning
Heap Scans
-Locking Policies
-Config Options
-
diff --git a/src/teaching/cse-562/2015sp/index.html b/src/teaching/cse-562/2015sp/index.html
index 12d5facb..bd491e03 100644
--- a/src/teaching/cse-562/2015sp/index.html
+++ b/src/teaching/cse-562/2015sp/index.html
@@ -45,55 +45,55 @@ In this course, you will learn...
-
-
Library Documentation
-
Lecture Schedule
-
Content Outline
diff --git a/src/teaching/cse-562/2017sp/index.erb b/src/teaching/cse-562/2017sp/index.erb
index 9cf14a6e..d4bf56c5 100644
--- a/src/teaching/cse-562/2017sp/index.erb
+++ b/src/teaching/cse-562/2017sp/index.erb
@@ -167,7 +167,7 @@ In this course, you will learn...
Course Details
Syllabus & Website
-
http://odin.cse.buffalo.edu/teaching/cse-562
+ https://odin.cse.buffalo.edu/teaching/cse-562
Course Project
http://dubstep.odin.cse.buffalo.edu
@@ -528,7 +528,7 @@
Group Formation Thread
<%= Disqus::embed(
- "http://odin.cse.buffalo.edu/teaching/cse-662/2017fa/group_formation.html",
+ "https://odin.cse.buffalo.edu/teaching/cse-662/2017fa/group_formation.html",
"cse662.2017fa.group_formation"
) %>
\ No newline at end of file
diff --git a/src/teaching/cse-662/2017fa/index.md b/src/teaching/cse-662/2017fa/index.md
index 95124469..2950cb09 100644
--- a/src/teaching/cse-662/2017fa/index.md
+++ b/src/teaching/cse-662/2017fa/index.md
@@ -79,10 +79,10 @@ After the taking the course, students should be able to:
* **Sept. 01** : Functional Data Structures [ [slides](slides/2017-09-01-FunctionalDataStructures.pdf) ]
* **Sept. 04** : **No Class, Labor Day**
* **Sept. 06** : Database Cracking [ [paper](http://stratos.seas.harvard.edu/files/IKM_CIDR07.pdf) | [feedback](feedback/01-cracking.html) ]
-* **Sept. 08** : Just-in-Time Data Structures [ [paper](http://odin.cse.buffalo.edu/papers/2015/CIDR-jitd-final.pdf) ]
+* **Sept. 08** : Just-in-Time Data Structures [ [paper](https://odin.cse.buffalo.edu/papers/2015/CIDR-jitd-final.pdf) ]
* **Sept. 11** : Incomplete Databases 1 [ [paper](http://dl.acm.org.gate.lib.buffalo.edu/citation.cfm?id=1376686) | [feedback](feedback/02-mcdb.html) ]
* **Sept. 13** : Incomplete Databases 2
-* **Sept. 15** : Mimir [ [paper](http://odin.cse.buffalo.edu/papers/2015/VLDB-lenses-final.pdf) ]
+* **Sept. 15** : Mimir [ [paper](https://odin.cse.buffalo.edu/papers/2015/VLDB-lenses-final.pdf) ]
* **Sept. 18** : MayBMS [ [paper](http://maybms.sourceforge.net/download/INFOSYS-TR-2007-2.pdf) ]
* **Sept. 20** : Sampling From Probabilistic Queries [ [paper](http://dl.acm.org.gate.lib.buffalo.edu/citation.cfm?id=1376686) ]
* **Sept. 22** : Probabilistic Constraint Repair [ [paper](https://cs.uwaterloo.ca/~ilyas/papers/BeskalesVLDBJ2014.pdf) ]
@@ -196,7 +196,7 @@ The [PocketData](http://pocketdata.info) project explores the performance of dat
###### Background Material:
-* [The PocketData Benchmark](http://odin.cse.buffalo.edu/research/pocketdata/)
+* [The PocketData Benchmark](https://odin.cse.buffalo.edu/research/pocketdata/)
* [PocketBench on GitHub](https://github.com/UBOdin/PocketBench)
diff --git a/subsites/nmeneghetti/404.html b/subsites/nmeneghetti/404.html
index a83a14e4..bc735216 100644
--- a/subsites/nmeneghetti/404.html
+++ b/subsites/nmeneghetti/404.html
@@ -13,17 +13,17 @@
-
-
-
+
+
+
-
-
+
+
-
+
@@ -31,20 +31,20 @@