Benjamin Kalman 338de4e583 Correctly distinguish between chunking window size and buzhash window size.
Previously the buzhash boundary checker used a single value for the
window size, both as the buzhash buffer size when constructing a hash
object, and reported as its window size to the boundary checker
interface. This was wrong because we don't always pass single byte
values to the hasher, for example refs are 20 bytes.

The compound list chunking compensated for this by only passing the
first byte of each list leaf's ref rather than the full ref. This is bad
because there is obviously less entropy in 1 byte vs 20 bytes.

The meta sequence chunking compensated for this by multiplying the
chunking window size by 20, but this also had the effect of
unnecessarily considering 20 times more chunked elements than would fit
in the buzhash buffer.
2015-12-03 14:58:35 -08:00
2015-10-23 13:28:29 -07:00
2015-11-12 20:53:23 -05:00
2015-11-20 09:34:09 -08:00

Noms

Noms is a content-addressable, immutable, peer-to-peer datastore for structured data.

In other words, noms is git for data.

This repository will contain the reference implementation of the noms protocol, and will eventually be open sourced.

This includes:

  • Go wrappers for all the core noms types
  • Support for generating Go types from Nom schema definitions
  • Chunking and dechunking
  • Serialization and deserialization
  • Chunkstore interface as well as several sample implementations
  • Search support
  • Sample applications

Get the code

git clone https://github.com/attic-labs/noms

Build

go build ./...
go test ./...

Run

cd <noms>/clients/counter
go build
./counter -ldb=/tmp/foo -ds=foo
./counter -ldb=/tmp/foo -ds=foo
./counter -ldb=/tmp/foo -ds=foo

rejoice!

You can see the raw data:

ls /tmp/foo
cat /tmp/foo/*.log | strings

You can also explore the data visually. Follow the instructions in clients/splore.

There are lots of other sample programs in clients/ and they usually have READMEs. Have fun...

TODO: There needs to be more of a big-picture introduction.

Description
Dolt – Git for Data
Readme Apache-2.0 368 MiB
Latest
2026-01-29 19:13:28 -06:00
Languages
Go 84%
Shell 15.1%
JavaScript 0.3%
Java 0.1%