Skip to content
This repository has been archived by the owner on Aug 28, 2021. It is now read-only.

The root chunk is huge #2869

Closed
aboodman opened this issue Dec 1, 2016 · 7 comments · Fixed by #3093
Closed

The root chunk is huge #2869

aboodman opened this issue Dec 1, 2016 · 7 comments · Fixed by #3093
Assignees

Comments

@aboodman
Copy link
Contributor

aboodman commented Dec 1, 2016

Currently the root map encodes the type of every dataset. Clients must download this chunk even though nobody ever really uses it.

I think that the thing to do here is to just change Noms to have this root map have the type Map<string, Ref<Value>>.

@aboodman
Copy link
Contributor Author

aboodman commented Dec 1, 2016

See also #2848

@aboodman
Copy link
Contributor Author

aboodman commented Dec 1, 2016

@arv can you estimate difficulty for this?

@aboodman
Copy link
Contributor Author

aboodman commented Dec 1, 2016

It makes attic UI load slowly, but it's somewhat of a temporary problem that will be addressed by other work we have planned.

@aboodman
Copy link
Contributor Author

aboodman commented Dec 1, 2016

Also, would it be a serialization change?

@aboodman
Copy link
Contributor Author

Update: I realize this might be easier because the type of this map should be Map<string, Ref<Value>>, not Map<string, Value> (the commits are out-of-line).

@aboodman
Copy link
Contributor Author

@rafael-atticlabs, @arv, @cmasone-attic seems like would be best options for this, but I think @rafael-atticlabs has least on his plate. Can you take it?

@aboodman aboodman assigned ghost and unassigned arv Dec 19, 2016
@aboodman
Copy link
Contributor Author

aboodman commented Dec 25, 2016

Here is an example of a huge root chunk (16MB) from the laudman db. I'm going to delete some things from this so I wanted to preserve the horribleness for investigation.

!? noms show --raw laudman::#k3s4kee1b0pnortbf94oi0hipsbei7pb | wc -c
 16863431

This chunk is a Map<string, Ref<T|U|V|...> of size 36. So almost all of this 16MB is type info. The type header alone is 8MB:

!? noms show --raw laudman::#k3s4kee1b0pnortbf94oi0hipsbei7pb@type | wc -c
 8429657

@cmasone-attic cmasone-attic self-assigned this Jan 18, 2017
cmasone-attic pushed a commit to cmasone-attic/noms that referenced this issue Jan 19, 2017
Since the head of each dataset can have an arbitrarily complex
type, type accretion leads the Datasets map at the root of the
DB to become very large. This type info isn't really very useful
at that level either. So, get rid of it by making this map be
from String -> Ref<Value>.

Fixes attic-labs#2869
cmasone-attic pushed a commit to cmasone-attic/noms that referenced this issue Jan 20, 2017
Since the head of each dataset can have an arbitrarily complex
type, type accretion leads the Datasets map at the root of the
DB to become very large. This type info isn't really very useful
at that level either. So, get rid of it by making this map be
from String -> Ref<Value>.

Fixes attic-labs#2869
cmasone-attic added a commit that referenced this issue Jan 22, 2017
Since the head of each dataset can have an arbitrarily complex
type, type accretion leads the Datasets map at the root of the
DB to become very large. This type info isn't really very useful
at that level either. So, get rid of it by making this map be
from String -> Ref<Value>.

Fixes #2869
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants