Skip to main content
https://travis-ci.org/internetarchive/trough.svg?branch=master

Trough

Big data, small databases.

Big data is really just lots and lots of little data.

If you split a large dataset into lots of small SQL databases sharded on a well-chosen key, they can work in concert to create a database system that can query very large datasets.

Worst-case Performance is important

A key insight when working with large datasets is that with monolithic big data tools’ performance is largely tied to having a full dataset completely loaded and working in a production-quality cluster.

Trough is designed to have very predictable performance characteristics: simply determine your sharding key, determine your largest shard, load it into a sqlite database locally, and you already know your worst-case performance scenario.

Designed to leverage storage, not RAM

Rather than having huge CPU and memory requirements to deliver performant queries over large datasets, Trough relies on flat sqlite files, which are easily distributed to a cluster and queried against.

Reliable parts, reliable whole

Each piece of technology in the stack was carefully selected and load tested to ensure that your data stays reliably up and reliably queryable. The code is small enough for one programmer to audit.

Ease of installation

One of the worst parts of setting up a big data system generally is getting setting sensible defaults and deploying it to staging and production environments. Trough has been designed to require as little configuration as possible.

An example ansible deployment specification has been removed from the trough repo but can be found at https://github.com/internetarchive/trough/tree/cc32d3771a7/ansible. It is designed for a cluster Ubuntu 16.04 Xenial nodes.

Metadata

Release files for Trough 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Trough 0.2.0
File Size Uploaded
Trough-0.2.0.tar.gz 34.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Trough 0.2.0
File Interpreter ABI Platform
Trough-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 73.7 kB

Release files / Trough-0.2.0.tar.gz

Download URL Trough-0.2.0.tar.gz
Size 34.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7facf2ef5b78afe8962804ff62b29846ef0cca67ebf2520aade35a51af2bf869
BLAKE2b-256 checksum
How to use checksums
644a1d1069f7a5734781e0dcee3c61ab1fc6886551db788f29bb4e352b32cc2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.12

Release files / Trough-0.2.0-py3-none-any.whl

Download URL Trough-0.2.0-py3-none-any.whl
Size 39.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
61f0f57bcb6990e11280fe9333957886bf71cba08315d945e4ac4fcbf38d3d24
BLAKE2b-256 checksum
How to use checksums
cd326b987e79d952caa8028c019567b872750fcc49391ca450c3e30e8fed36df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.12

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page