design+build the Usage/Aggregator service #468
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#468
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
As part of the Accounting project, we'll be building a "Usage" service, which
will help keep track of how much space is used per account. Here are my notes
from last week:
creating a Tahoe node with a storage server component creates a Usage
component by default. You can also create a node with a Usage component
but nothing else: we call this an Aggregator. The Usage component
subscribes to any co-resident Storage component, and can also subscribe to
other Storage services in other nodes. The Usage component provides a web
interface (localhost:8124/usage) that provides different views of a table
that shows usage (in bytes) per (server,account) pair. It also provides a
sum across all servers. If the Usage component is only subscribing to a
single storage server, the table will only have one column, and the sum
will be the same as the table. It can also return information about just a
subset of accounts (to return data in batches, since there might be a
million accounts). The Usage component will consult an optional "petname
database", which maps account to name. It will have an HTML table display,
and a machine-readable JSON interface.
Allmydata will run an Aggregator that subscribes to all prodnet storage
servers. Peter's SQL database stuff will then make JSON queries of the
aggregator to keep track of how much each customer is using.
In a friendnet deployment, the storage server admin can use their local
Usage service to find out how much each of their friends is using on that
one server. If the friendnet members exchange Usage-subscription-FURLs
symmetrically, they will be able to see how much each member is using
across the whole friendnet.
When we implement Invitations, the code that negotiates the invitation
will populate the petname database.
What if we build an access control system that doesn't have accounts at all?