{"repo":"purduedb/OpenAurora","free":true,"listed":false,"github":"https://github.com/purduedb/OpenAurora","clone":"git clone https://github.com/purduedb/OpenAurora.git","description":"OpenAurora is a cloud-native database system prototype developed at Purdue University. It is an open-source version of Amazon Aurora. It is designed to enable more research in cloud-native database systems for our database community.","language":"C","stars":109,"topics":["cloud-native-database","database-system","disaggregation","memory-disaggregation","oltp","storage-disaggregation","postgresql"],"license":null,"category":"databases-storage","readme_excerpt":"OpenAurora OpenAurora is a cloud-native OLTP database system prototype developed at Purdue University, based on PostgreSQL v13.0. It is an open-source version of Amazon Aurora . It is designed to enable more research in cloud-native database systems for our database community. Currently, OpenAurora supports storage disaggregation. We are investigating memory disaggregation and multi-masters within OpenAurora, but we believe this platform can support many interesting research topics in databases. Architecture Overview Implementation All the implementations are based on PostgreSQL v13.0. To ensure full compatibility with the PostgreSQL source code, we use C to implement kernel parts, such as xlog replaying and the multi-version storage engine. For network communication, we adopt Apache Thrift v0.14.0 \\cite{Thrift}, which is a lightweight software stack for RPC implementation. To achieve compatibility with Apache Thrift, GetPage@LSN and other APIs that are closely related to RPC are implemented in C++. Documentations Delve into LogIndex: What is LogIndex? How does it work? Pluggable KV-Store: Working with your own KVStore The Truth of the Disk Disaggregation: Virtual File Descriptor Concurrency Control in Disaggregated Database : Multi-Version Page Store How does Compute Node directly commit XLogs to Storage Nodes? Background LogIndex Vacuumer Implementation Details What is Metadata Cache? Why does it important? XLog Replay: Concurrently Replay XLog with un-multi-thread-safe XLo","default_branch":null,"files":null,"tree":[],"storefront":"/r/purduedb","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/purduedb/OpenAurora/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}