Skip to content

Instantly share code, notes, and snippets.

@bbpennel
Last active September 20, 2019 20:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bbpennel/232ef166ec27891fa262310fd069d8eb to your computer and use it in GitHub Desktop.
Save bbpennel/232ef166ec27891fa262310fd069d8eb to your computer and use it in GitHub Desktop.

Example Persistence Layout for FSDB

In this example, there is:

  • an object, my_book, which is an AG
    • It has been assigned a fedora id info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e
  • a head version contains a folder containing two binaries
  • one previous version, which contained only one binary
  • an active transaction that adds another folder and binary, and deletes a binary

File system representation

fcrepo_storage/
  5b/fe/6a/08/5bfe6a08-67d9-4d90-9e50-eeaf86aad37e/
    data
        .fcrepo
            my_book.n3
            my_book/
                pages.n3
                pages/
                    page1.png.n3
                    page2.png.n3
        my_book.n3
        my_book/
            pages/
                page1.png
                page1.png.n3
                page2.png
    versions
        201909201205531033
            .fcrepo
                my_book.n3
                my_book/
                    pages.n3
                    pages/
                        page1.png.n3
            my_book.n3
            my_book/
                pages/
                    page1.png.n3
                    page1.png
    txs
        ptx_8w32rb01s
            .fcrepo
                my_book/
                    pages.n3
                    pages/
                        page3.png.n3
                    admin.n3
                    admin/
                        rights.txt.n3
            my_book/
                pages/
                    page3.png
                    page3.png.n3
                admin/
                    rights.txt

In memory

  • ptx_8w32rb01s
    • delete_log
      • pages/page1.png

DB Index

Storage path index

fedora_uri fs_path ag_child txid model
info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e 5b/fe/6a/08/5bfe6a08-67d9-4d90-9e50-eeaf86aad37e/data FALSE ag
info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e/pages 5b/fe/6a/08/5bfe6a08-67d9-4d90-9e50-eeaf86aad37e/data/my_book TRUE container
info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e/pages/page1.png 5b/fe/6a/08/5bfe6a08-67d9-4d90-9e50-eeaf86aad37e/data/my_book/pages TRUE binary
info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e/pages/page2.png 5b/fe/6a/08/5bfe6a08-67d9-4d90-9e50-eeaf86aad37e/data/my_book/pages TRUE binary
info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e/pages 5b/fe/6a/08/5bfe6a08-67d9-4d90-9e50-eeaf86aad37e/txs/ptx_8w32rb01s/my_book TRUE 8w32rb01s container
info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e/pages/page2.png 5b/fe/6a/08/5bfe6a08-67d9-4d90-9e50-eeaf86aad37e/txs/ptx_8w32rb01s/my_book/pages TRUE 8w32rb01s binary
info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e/admin 5b/fe/6a/08/5bfe6a08-67d9-4d90-9e50-eeaf86aad37e/txs/ptx_8w32rb01s/my_book TRUE 8w32rb01s container
info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e/admin/rights.txt 5b/fe/6a/08/5bfe6a08-67d9-4d90-9e50-eeaf86aad37e/txs/ptx_8w32rb01s/my_book/admin TRUE 8w32rb01s binary

Version index

fedora_uri memento_datetime
info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e 201909201205531033
info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e/pages 201909201205531033
info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e/pages/page1.png 201909201205531033
info:fedora/91f6d9c2-dc27-4ab5-b626-df0a45e4519e/pages/page2.png 201909201205531033
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment