{"id":16216764,"url":"https://github.com/thaapasa/dissertation","last_synced_at":"2026-05-02T04:35:08.269Z","repository":{"id":79478167,"uuid":"123959435","full_name":"thaapasa/dissertation","owner":"thaapasa","description":"Doctoral dissertation: Accessing Multiversion Data in Database Transactions","archived":false,"fork":false,"pushed_at":"2018-03-05T18:24:21.000Z","size":2550,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-14T00:21:03.828Z","etag":null,"topics":["database","dissertation","index-structure","latex-document","multiversion-concurrency-control","tikz-figures"],"latest_commit_sha":null,"homepage":null,"language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thaapasa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-05T18:15:13.000Z","updated_at":"2018-03-05T18:27:26.000Z","dependencies_parsed_at":"2023-05-25T09:00:41.446Z","dependency_job_id":null,"html_url":"https://github.com/thaapasa/dissertation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thaapasa%2Fdissertation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thaapasa%2Fdissertation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thaapasa%2Fdissertation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thaapasa%2Fdissertation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thaapasa","download_url":"https://codeload.github.com/thaapasa/dissertation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247744333,"owners_count":20988783,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","dissertation","index-structure","latex-document","multiversion-concurrency-control","tikz-figures"],"created_at":"2024-10-10T11:22:09.039Z","updated_at":"2026-05-02T04:35:03.250Z","avatar_url":"https://github.com/thaapasa.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Doctoral dissertation\n\n## Accessing Multiversion Data in Database Transactions\n\nMany important database applications need to access previous versions of the\ndata set, thus requiring that the data are stored in a multiversion database\nand indexed with a multiversion index, such as the multiversion\nB-tree (MVBT) of Becker et al.\nThe MVBT is optimal, so that any version of the database can be accessed\nas efficiently as with a single-version B-tree that is used to index\nonly the data items of that version, but it cannot be used in a full-fledged\ndatabase system because it follows a single-update model, and the update\ncannot be rolled back.\n\nWe have redesigned the MVBT index so that a single multi-action updating\ntransaction can operate on the index structure concurrently with multiple\nconcurrent read-only transactions.\nData items created by the transaction become part of the same\nversion, and the transaction can roll back.\nWe call this structure the _transactional MVBT_ (TMVBT).\nThe TMVBT index remains optimal even in the presence of logical key\ndeletions.\nEven though deletions in a multiversion index must not physically\ndelete the history of the data items, queries and range scans\ncan become more efficient, if the leaf pages of the\nindex structure are merged to retain optimality.\n\nFor the general transactional setting with multiple updating transactions, we\npropose a multiversion database structure called the _concurrent MVBT_\n(CMVBT), which stores the updates of active transactions in a separate\nmain-memory-resident _versioned B-tree_ index.\nA system maintenance transaction is periodically run to apply the updates of\ncommitted transactions into the TMVBT index.\nWe show how multiple updating transactions can operate on the CMVBT\nindex concurrently, and our recovery algorithm is based on the standard\nARIES recovery algorithm.\n\nWe prove that the TMVBT index is asymptotically optimal, and show that the\nperformance of the CMVBT index in general transaction processing is\non par with the performance of the time-split B-tree (TSB-tree)\nof Lomet and Salzberg.\nThe TSB-tree does not merge leaf pages and is therefore not optimal if\nlogical data-item deletions are allowed.\nOur experiments show that the CMVBT outperforms the TSB-tree with\nrange queries in the presence of deletions.\n\n## Compiling\n\nYou can compile the dissertation with `pdflatex` (plain `LaTeX` is not enough),\nyou need to run the command a couple of times.\n\nUse the parameter `--min-crossrefs=999` with Bibtex so that the references\nare created correctly.\n\nRequires a relatively recent `LaTeX` environment. The dissertation\nwas compiled with `MikTex 2.8` on Windows.\n\nThis information was last checked on 30.9.2010.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthaapasa%2Fdissertation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthaapasa%2Fdissertation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthaapasa%2Fdissertation/lists"}