llnl / llnl/UnifyFS

Design: Lamination while file is being written

Open
#345 11 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
C
Stars
122
Forks
34
PR merge metrics
No merged PRs in 30d

Description

Describe the problem you're observing

Lets you have two nodes writing 100MB to a file at non-overlapping offsets. Node 1 finishes writing and does a laminate while node 2 is still writing its last 10MB. What should the behaviour be?

  1. node 2's last 10MB of writes return EINVAL?
  2. node 2's writes complete, and it can continue to write to the file until it's closed(). Effectively, this means that "is this file laminated?" is only checked on file open(), and the file is only "laminated and set in stone" after all writers close() the file.
  3. node 2's writes complete successfully, but they can't be read() since they happened after the lamination.

According to pg 6 in the docs (https://buildmedia.readthedocs.org/media/pdf/unifycr/dev/unifycr.pdf) after a lamination:

write: All writes are invalid.

...which sounds like it would be 1 or 3.

What behaviour do we expect?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the UnifyFS developer documentation linked in the issue, especially page 6 and its statement that writes after lamination are invalid. Review the concurrent-writer scenario described in the issue and determine which behavior is expected; done means the lamination semantics are decided and documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.