summaryrefslogtreecommitdiff
path: root/blog/2021/07/18/meeting.mdwn
blob: 1e062abae10882fd7cf6e0d46d302f5408e60a58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
[[!meta title="Iteration planning: July 18–August 2"]]
[[!tag meeting]]

[[!toc levels=1]]

# Assessment of the iteration that has ended

[previous iteration]: /blog/2021/07/04/meetings

The goal of the [previous iteration][] was:


> Change the Obnam client to use async Rust to be more concurrent. The
> result doesn't need to make optimal use of all cores, but it needs
> to pass the test suite and needs to work.

This was achieved, at least partly. Lars learned a lot more about
async in Rust, and wrote some abstractions for use of async, and added
a new command `chunkify` that reads the files named on the command
line, splits them into chunks, and computes SHA256 checksum of the
data. This uses most of all the available CPU cycles, and so achieves
that part of the week's goal.

However, this only works for the new command. All the old commands are
still strictly linear. It turns out they will all need to be
reworked, and possibly rewritten, to make use of async. This will be
done in future iterations.

# Discussion

The next step in the use of async in the Obnam client is probably
going to be using the async with the `reqwest` crate. Obnam currently
uses the crate only in a "blocking" manner.

# Goals

## Goal for 1.0 (not changed this iteration)

The goal for version 1.0 is for Obnam to be an utterly boring backup
solution for Linux command line users. It should just work, be
performant, secure, and well-documented.

It is not a goal for version 1.0 to have been ported to other
operating systems, but if there are volunteers to do that, and to
commit to supporting their port, ports will be welcome.

Other user interfaces is likely to happen only after 1.0.

The server component will support multiple clients in a way that
doesn’t let them see each other’s data. It is not a goal for clients
to be able to share data, even if the clients trust each other.

## Goal for the next few iterations (not changed for this iteration)

The goal for next few iterations is to have Obnam be performant. This
will include, at least, making the client use more concurrency so that
it can use more CPU cores to compute checksums for de-duplication.

## Goal for this iteration (same as last iteration)

Change the Obnam client to use async Rust to be more concurrent. The
result doesn't need to make optimal use of all cores, but it needs to
pass the test suite and needs to work.


# Commitments for this iteration

Lars intends to change the `obnam get-chunk` command to use async HTTP
client code.

In addition, Lars intends to work on [[!issue 111]] to document what
Obnam's subplot needs.

Alexander intends to work on [[!issue 112]], [[!issue 114]], and
[[!issue 117]], and also on [[!issue 115]] if we reach a consensus on
what to do.


# Meeting participants

* Alexander Batischev
* Lars Wirzenius