diff --git a/CHANGELOG.md b/CHANGELOG.md index e465b270f..226a1e5fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ -# Revision history for lsm-tree +# Revision history for `lsm-tree` -## 0.1.0.0 -- YYYY-mm-dd +## 1.0.0.0 -- 2025-07 -* First version. Released on an unsuspecting world. +* First released version. diff --git a/NOTICE b/NOTICE index 82751f478..47d51cf76 100644 --- a/NOTICE +++ b/NOTICE @@ -1,4 +1,4 @@ -Copyright 2023 Input Output Global, Inc. (IOG), 2023-2025 INTERSECT. +Copyright (c) 2023-2025 Cardano Development Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index dff6c849f..6e85d13d0 100644 --- a/README.md +++ b/README.md @@ -6,16 +6,21 @@ [![Build](https://img.shields.io/github/actions/workflow/status/IntersectMBO/lsm-tree/ci.yml?label=Build)](https://github.com/IntersectMBO/lsm-tree/actions/workflows/ci.yml) [![Haddocks](https://img.shields.io/badge/documentation-Haddocks-purple)](https://IntersectMBO.github.io/lsm-tree/) -> :warning: **This library is in active development**: there is currently no release schedule! +This package has been developed by Well-Typed LLP on behalf of the Cardano +Development Foundation and Intersect. A [project report] and [integration notes] +are available. -This package is developed by Well-Typed LLP on behalf of Input Output Global, Inc. (IOG) and INTERSECT. -The main contributors are Duncan Coutts, Joris Dral, Matthias Heinzel, Wolfgang Jeltsch, Wen Kokke, and Alex Washburn. +[project report]: https://github.com/IntersectMBO/lsm-tree/blob/main/doc/final-report/final-report.pdf +[integration notes]: https://github.com/IntersectMBO/lsm-tree/blob/main/doc/final-report/integration-notes.pdf + +The primary authors are Duncan Coutts, Joris Dral, Matthias Heinzel, +Wolfgang Jeltsch, Wen Kokke, and Alex Washburn. ## Description This package contains an efficient implementation of on-disk key–value -storage, implemented as a log-structured merge-tree or LSM-tree. An -LSM-tree is a data structure for key–value mappings, similar to +storage, implemented as a log-structured merge-tree, LSM-tree or LSMT. +An LSM-tree is a data structure for key–value mappings, similar to `Data.Map`, but optimized for large tables with a high insertion volume. It has support for: diff --git a/blockio/NOTICE b/blockio/NOTICE index 82751f478..47d51cf76 100644 --- a/blockio/NOTICE +++ b/blockio/NOTICE @@ -1,4 +1,4 @@ -Copyright 2023 Input Output Global, Inc. (IOG), 2023-2025 INTERSECT. +Copyright (c) 2023-2025 Cardano Development Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/blockio/blockio.cabal b/blockio/blockio.cabal index a08cdce2c..a9f503a33 100644 --- a/blockio/blockio.cabal +++ b/blockio/blockio.cabal @@ -28,10 +28,7 @@ author: Duncan Coutts, Joris Dral, Matthias Heinzel, Wolfgang Jeltsch, Wen Kokke, and Alex Washburn maintainer: joris@well-typed.com -copyright: - (c) 2023 Input Output Global, Inc. (IOG) - (c) 2023-2025 INTERSECT - +copyright: (c) 2023-2025 Cardano Development Foundation category: System build-type: Simple extra-doc-files: CHANGELOG.md diff --git a/bloomfilter-blocked/NOTICE b/bloomfilter-blocked/NOTICE index 82751f478..47d51cf76 100644 --- a/bloomfilter-blocked/NOTICE +++ b/bloomfilter-blocked/NOTICE @@ -1,4 +1,4 @@ -Copyright 2023 Input Output Global, Inc. (IOG), 2023-2025 INTERSECT. +Copyright (c) 2023-2025 Cardano Development Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/bloomfilter-blocked/bloomfilter-blocked.cabal b/bloomfilter-blocked/bloomfilter-blocked.cabal index 881e007b8..488430c55 100644 --- a/bloomfilter-blocked/bloomfilter-blocked.cabal +++ b/bloomfilter-blocked/bloomfilter-blocked.cabal @@ -12,10 +12,7 @@ author: Duncan Coutts, Joris Dral, Matthias Heinzel, Wolfgang Jeltsch, Wen Kokke, and Alex Washburn maintainer: duncan@well-typed.com, joris@well-typed.com -copyright: - (c) 2023 Input Output Global, Inc. (IOG) - (c) 2023-2025 INTERSECT - +copyright: (c) 2023-2025 Cardano Development Foundation category: Data build-type: Simple tested-with: diff --git a/doc/final-report/final-report.md b/doc/final-report/final-report.md index a77a12f0a..2892f2084 100644 --- a/doc/final-report/final-report.md +++ b/doc/final-report/final-report.md @@ -1,7 +1,7 @@ --- title: "Storing the Cardano ledger state on disk: final report for a high-performance backend" -subtitle: "[A technical report by Well-Typed LLP on behalf of Intersect MBO]{.smallcaps}" +subtitle: "[A technical report by Well-Typed on behalf of Intersect]{.smallcaps}" author: - Duncan Coutts - Joris Dral @@ -107,7 +107,7 @@ references: --- \begin{changelog}[simple, sectioncmd=\section*] - \shortversion{author={Duncan Coutts, Joris Dral, Wolfgang Jeltsch}, v=0.1, date=July 2025, changes=Final draft} + \shortversion{author={Duncan Coutts, Joris Dral, Wolfgang Jeltsch}, v=1.0, date=July 2025, changes=Final version} \end{changelog} # Introduction @@ -115,9 +115,10 @@ references: As part of the project to reduce `cardano-node`’s memory use [@utxo-db] by storing the bulk of the ledger state on disk, colloquially known as UTxO-HD[^1], a high-performance disk backend was developed as an arm’s-length project by -Well-Typed LLP on behalf of Intersect MBO[^2]. The intent is for the backend to -be integrated into the consensus layer of `cardano-node`, specifically to be -used for storing the larger parts of the Cardano ledger state. +Well-Typed LLP on behalf of the Cardano Development Foundation and +Intersect[^2]. The intent is for the backend to be integrated into the +consensus layer of `cardano-node`, specifically to be used for storing the +larger parts of the Cardano ledger state. [^1]: ‘UTxO-HD’ is a classic project-manager’s misnomer. The project is not just about the UTxO but also other parts of the ledger state, and it is not @@ -128,7 +129,7 @@ used for storing the larger parts of the Cardano ledger state. engrained. [^2]: In its early stages, it was developed on behalf of Input Output Global, - Inc. (IOG). + Inc. (IOG). It was novated in early 2024. This backend is now complete. It satisfies all its functional requirements and meets all its performance requirements, including stretch targets. diff --git a/doc/final-report/final-report.pdf b/doc/final-report/final-report.pdf new file mode 100644 index 000000000..bdd9209cb Binary files /dev/null and b/doc/final-report/final-report.pdf differ diff --git a/doc/final-report/integration-notes.pdf b/doc/final-report/integration-notes.pdf new file mode 100644 index 000000000..129c65fae Binary files /dev/null and b/doc/final-report/integration-notes.pdf differ diff --git a/doc/final-report/makefile b/doc/final-report/makefile index 074f33967..8e5caeb10 100644 --- a/doc/final-report/makefile +++ b/doc/final-report/makefile @@ -6,10 +6,10 @@ all: final-report.pdf integration-notes.pdf final-report.pdf: final-report.md ieee-software.csl pipelining.pdf - pandoc --citeproc $< -o $@ + pandoc --citeproc $(@:.pdf=.md) -o $@ integration-notes.pdf: integration-notes.md - pandoc $< -o $@ + pandoc $(@:.pdf=.md) -o $@ .PHONY: clean clean: diff --git a/lsm-tree.cabal b/lsm-tree.cabal index bd3b3b68f..a43a8fb12 100644 --- a/lsm-tree.cabal +++ b/lsm-tree.cabal @@ -1,9 +1,9 @@ cabal-version: 3.4 name: lsm-tree -version: 0.1.0.0 +version: 1.0.0.0 synopsis: Log-structured merge-trees description: - This package contains an efficient implementation of on-disk key–value storage, implemented as a log-structured merge-tree or LSM-tree. + This package contains an efficient implementation of on-disk key–value storage, implemented as a log-structured merge-tree, LSM-tree or LSMT. An LSM-tree is a data structure for key–value mappings, similar to "Data.Map", but optimized for large tables with a high insertion volume. It has support for: @@ -485,11 +485,8 @@ license-files: author: Duncan Coutts, Joris Dral, Matthias Heinzel, Wolfgang Jeltsch, Wen Kokke, and Alex Washburn -maintainer: TODO: MAINTAINER EMAIL -copyright: - (c) 2023 Input Output Global, Inc. (IOG) - (c) 2023-2025 INTERSECT - +maintainer: oso@intersectmbo.org +copyright: (c) 2023-2025 Cardano Development Foundation category: Database build-type: Simple tested-with: GHC ==9.2 || ==9.4 || ==9.6 || ==9.8 || ==9.10 || ==9.12 @@ -499,12 +496,10 @@ source-repository head type: git location: https://github.com/IntersectMBO/lsm-tree --- TODO: this tag obviously does not exist yet because the package has not --- been published source-repository this type: git location: https://github.com/IntersectMBO/lsm-tree - tag: lsm-tree-0.1.0.0 + tag: lsm-tree-1.0.0.0 common warnings ghc-options: diff --git a/scripts/generate-readme-header.md b/scripts/generate-readme-header.md index b996b21a5..fbc1ff5bf 100644 --- a/scripts/generate-readme-header.md +++ b/scripts/generate-readme-header.md @@ -6,9 +6,14 @@ [![Build](https://img.shields.io/github/actions/workflow/status/IntersectMBO/lsm-tree/ci.yml?label=Build)](https://github.com/IntersectMBO/lsm-tree/actions/workflows/ci.yml) [![Haddocks](https://img.shields.io/badge/documentation-Haddocks-purple)](https://IntersectMBO.github.io/lsm-tree/) -> :warning: **This library is in active development**: there is currently no release schedule! +This package has been developed by Well-Typed LLP on behalf of the Cardano +Development Foundation and Intersect. A [project report] and [integration notes] +are available. -This package is developed by Well-Typed LLP on behalf of Input Output Global, Inc. (IOG) and INTERSECT. -The main contributors are Duncan Coutts, Joris Dral, Matthias Heinzel, Wolfgang Jeltsch, Wen Kokke, and Alex Washburn. +[project report]: https://github.com/IntersectMBO/lsm-tree/blob/main/doc/final-report/final-report.pdf +[integration notes]: https://github.com/IntersectMBO/lsm-tree/blob/main/doc/final-report/integration-notes.pdf + +The primary authors are Duncan Coutts, Joris Dral, Matthias Heinzel, +Wolfgang Jeltsch, Wen Kokke, and Alex Washburn. ## Description diff --git a/src/Database/LSMTree.hs b/src/Database/LSMTree.hs index 8afe922e4..1819eeebc 100644 --- a/src/Database/LSMTree.hs +++ b/src/Database/LSMTree.hs @@ -1,7 +1,6 @@ {- | Module : Database.LSMTree -Copyright : (c) 2023, Input Output Global, Inc. (IOG) - (c) 2023-2025, INTERSECT +Copyright : (c) 2023-2025, Cardano Development Foundation License : Apache-2.0 Stability : experimental Portability : portable diff --git a/src/Database/LSMTree/Simple.hs b/src/Database/LSMTree/Simple.hs index 287454afb..c33b39046 100644 --- a/src/Database/LSMTree/Simple.hs +++ b/src/Database/LSMTree/Simple.hs @@ -1,7 +1,6 @@ {- | Module : Database.LSMTree.Simple -Copyright : (c) 2023, Input Output Global, Inc. (IOG) - (c) 2023-2025, INTERSECT +Copyright : (c) 2023-2025, Cardano Development Foundation License : Apache-2.0 Stability : experimental Portability : portable