Commit Graph

3124 Commits

Author SHA1 Message Date
Aaron Boodman 598feae89f Australify (#2847) 2016-11-22 14:43:54 -08:00
Aaron Boodman 4943979fad Teach photos UI about LocalResource (#2841)
Teach photos UI about LocalResource
2016-11-22 14:37:25 -08:00
Ben Kalman 96d10ac29f Improve Set marshaling to add encoding support, and decoding to map (#2845)
The only support that marshal has for Set at the moment is decoding to
slice.
2016-11-22 11:24:18 -08:00
Erik Arvidsson 5e901b0924 Cache OIDs as we descend (#2840)
Remove validation/normalization of union order and struct field order as we decode a chunk into a type.

Instead the validation happens in ValidatingBatchSink.

We still normalize the union order when a struct type is created directly (not from a chunk) using  makeStructType.

The motivation for this change is that computing the OID (order ID) is expensive and it used to be a O(n^2) since we kept recomputing it as we traversed the type hierarchy.

Towards #2836
2016-11-21 15:18:02 -08:00
cmasone-attic 0cf72d5b85 Add debug logging to HandleWriteValue (#2846)
This patch introduces optional debug logging in util/verbose, and adds
some usage of it to HandleWriteValue and the httpBatchStore
SchedulePut code path. It also modifies chunks.DeserializeToChan() so
that callers can better recover from panics in there.

https://github.com/attic-labs/attic/issues/103
2016-11-21 15:11:34 -08:00
Ben Kalman ff4ee3c3a9 Small refactor to marshal code to support upcoming "set" tag (#2843) 2016-11-18 17:44:10 -08:00
Eric Halpern 86878936b1 Store photo urls under RemoteResource.url (#2838)
fixes: #2837
2016-11-16 17:16:12 -08:00
Aaron Boodman 26c9fe44d1 Remove tagging_user from fb query (#2839)
This was causing an auth error for @rafael. Unclear why, but it's
not necessary in first place.
2016-11-16 16:26:01 -08:00
Eric Halpern b29e50379f Reduce time required by sequence_iterator_test by using smaller chunk sizes (#2831)
* Reduce time required by sequence_iterator_test by using smaller chunk
sizes

* Simplify data generation
2016-11-16 11:26:43 -08:00
Aaron Boodman 7f760a9ba3 photo-index: index photos by source too (#2833)
Fixes https://github.com/attic-labs/attic/issues/19
2016-11-15 14:20:17 -08:00
Aaron Boodman e730306bd2 Teach photo-index about PhotoGroup (#2832)
Teach photo-index about PhotoGroup
2016-11-15 14:09:48 -08:00
Aaron Boodman 8e64e636aa Introduce photo-dedup-by-date (#2826)
Introduce photo-dedup-by-date

This program deduplicates photos by the date they were taken. It considers two photos a group if they were separated by less than 5 seconds.
2016-11-15 14:07:57 -08:00
Aaron Boodman 03434861ea coffeebot: don't do anything until 10a each day (#2834)
this way easier for message to be seen
2016-11-15 02:24:48 -08:00
Eric Halpern 94a61c6aad Better test fix. Need to obtain raw bytes before reading from buffer (#2830) 2016-11-14 11:55:26 -08:00
Eric Halpern 3da7461480 Fix test break (#2829) 2016-11-14 11:13:55 -08:00
Eric Halpern 242b782748 Improve sequence read performance using read-ahead (#2711)
* Implement read-ahead in sequence_cursor
For each meta-sequence that contains leaf sequences, start reading ahead in
parallel and deliver in order to a buffered channel. Each advance of the cursor gets
the next sequence in the read-ahead channel.

toward: #2079
-

* Address code review comments:
- Use // for all comments
- Fix label format
- Increase channel read timeout

* Rework read-ahead to use map[int]channel sequence instead of a channel of sequences

* Rework sequence cursor read-ahead for better throughput

- Guts of read-ahead now encapsulted in sequenceReadAhead
- New implemention uses a cursor to iterate across the leaves ahead
  of the current cursor
  - It reads ahead using short-lived go routines that place each read-ahead
    sequence in a channel that is then stored by hash in a map
  - When the sequence is needed, the cursor first looks in the map. If found,
    it reads the sequence from the channel stored in the map. If not, it reads
    it normally.
  - This approach allows for reading ahead in parallel without requiring a long
    running pool of goroutines
- Introduce sequenceIterator to encapulate read-ahead behind an abstraction that
  always reads forward. This is currently used narrowly but could be used more
  widely as the the core implementation for all sequence iterators

* Address review comments
2016-11-12 11:51:26 -08:00
Erik Arvidsson f6c3f91cc3 Make publish-js-sdk.py publish all packages (#2822) 2016-11-11 16:11:23 -08:00
Ben Kalman cc13253c45 Add --subdir argument to roll.py (#2782)
If you want to roll just the go/ directory of noms, you can do:

$ roll.py https://github.com/attic-labs/noms --incl go

If you want to roll the AWS SDK without the tests, you can do:

$ roll.py https://github.com/aws/aws-sdk-go --excl awstesting

This works with nested directories too, for example --incl go/util

--excl is evaluated after --incl, so you could exclude the perf/
directory of go/ if you really wanted:

$ roll.py https://github.com/attic-labs/noms --incl go --excl go/perf
2016-11-11 15:53:16 -08:00
Ben Kalman 13a188cc89 Change publish-to-npm to work relative to GOPATH not pwd (#2821)
Jenkins is now running from a different pwd. This changes fixes that and
makes it immune to future changes.
2016-11-10 17:10:56 -08:00
Ben Kalman 401a878478 Add auth parameter to Splore (#2820) 2016-11-10 16:14:03 -08:00
Ben Kalman 0ee6d105bb Export HttpError and SpecOptions to Noms JS API (#2819)
I renamed HTTPError to HttpError for consistency with HttpBatchStore
(and XMLHttpRequest).
2016-11-10 15:46:21 -08:00
Erik Arvidsson 257520c287 Sync photo-set-iterator.js between repos (#2818) 2016-11-10 15:45:04 -08:00
zcstarr 3afbd11578 Remove dependency on bash shell from package (#2817) 2016-11-10 14:38:42 -08:00
Erik Arvidsson db4aedaeaf Use the latest version of documentation.js (#2805)
To pick up links into github for methods
2016-11-10 13:00:49 -08:00
Ben Kalman cdfbee1b3d Remove spec GetDataset/GetDatabase/GetPath, update all clients (#2815)
These are now ForDataset/ForDatabase/ForPath.
2016-11-09 17:34:39 -08:00
Erik Arvidsson 45a36a46e9 Change to use interface instead of declare (#2816) 2016-11-09 15:38:58 -08:00
Dan Willhite b6b1389c30 Danloader (#2794)
* Downloader

* Review changes
2016-11-08 16:46:55 -08:00
Aaron Boodman a0f489bc1c Remove temporary time-based dedup from webui (#2814) 2016-11-08 14:59:03 -08:00
Ben Kalman 172b991ac1 Port new Spec API to Go from JS (#2807)
This is a side-by-side port, taking inspiration from the old dataspec.go
code. Notably:

- LDB support has been added in Go. It wasn't needed in JS.
- There is an Href() method on Spec now.
- Go now handles IPV6.
- Go no longer treats access_token specially.
- Go now has Pin.
- I found some issues in the JS while doing this, I'll fix later.

I've also updated the config code to use the new API so that basically
all the Go samples use the code, even if they don't really change.
2016-11-08 14:18:47 -08:00
Aaron Boodman 1f773a1c18 fix timezone in coffeebot (#2811) 2016-11-07 20:40:58 -08:00
Aaron Boodman 508a4dd3b5 coffeebot: remove secret url (#2810) 2016-11-07 17:36:28 -08:00
Aaron Boodman f51da13e44 Add coffee bot (#2809)
* Add coffee bot

* fix order
2016-11-07 17:25:58 -08:00
Ben Kalman 5ab12777f6 Remove the demo server and receipt code (again) (#2808) 2016-11-07 15:13:28 -08:00
Erik Arvidsson 1775c3805a Update to Flow 0.34 (#2803) 2016-11-07 08:32:24 -08:00
cmasone-attic 7dc5867142 Close and destroy databases being left open during tests (#2806)
There were several tests in the Database suites that were failing to
close test Databases that had orderedChunkCaches in them (backed by
levelDBs). Close them.

I was ALSO failing to destroy the cache used in LocalDatabase
instances only while testing Pull(). That's cleared up now as well.
2016-11-04 16:25:53 -07:00
cmasone-attic 12ddb66fc5 Clobber ValueStore cache entry on WriteValue (#2804)
ValueStore caches Values that are read out of it, but it doesn't
do the same for Values that are written. This is because we expect
that reading Values shortly after writing them is an uncommon usage
pattern, and because the Chunks that make up novel Values are
generally efficiently retrievable from the BatchStore that backs
a ValueStore. The problem discovered in issue #2802 is that ValueStore
caches non-existence as well as existence of read Values. So, reading
a Value that doesn't exist in the DB would result in the ValueStore
permanently returning nil for that Value -- even if you then go and
write it to the DB.

This patch drops the cache entry for a Value whenever it's written.

Fixes #2802
2016-11-04 15:53:26 -07:00
cmasone-attic 0400b0cf3f Don't use invalid Root in bad version test (#2800)
The httpBatchStore test TestVersionMismatch() expects a panic,
but the test was actually potentially causing MULTIPLE panics.
One due to the version mismatch, and another due to using an
invalid root.
2016-11-03 15:48:18 -07:00
Dan Willhite 46586ee928 Remove msg args from d.PanicIfTrue and d.PanicIfFalse. (#2757)
Should discourage people from writing code that does unnecessary work
to generate a msg every time that an error condition is checked. Fixes #2741
2016-11-03 11:43:57 -07:00
Eric Halpern 74df877747 Don't print warning unless -v (#2799) 2016-11-03 11:05:02 -07:00
Eric Halpern 11cc65ca7c Add jobs for grouping similar photos in PhotoGroups (#2789)
* Add jobs for grouping similar photos in PhotoGroups

Outline:
- The first photo-dhash job adds a dhash field to each photo. The dhash is a 128 bit
  downsampled representation of the photo that works well for visual similarity comparisions.
- The second photo-dedup job groups photos that have similar dhash's into PhotoGroups.

fixes: #2787
2016-11-02 12:06:54 -07:00
Ben Kalman 50c48be4b8 Noms, demo-server, and photos UI changes to support auth (#2793)
The big change here is adding a new Spec class in spec.js. This replaces
DatabaseSpec/DatasetSpec/PathSpec in specs.js, but I'm leaving those in
and moving code over in a later patch. For now, only photos UI.

The photos UI change is to plumb through the authorization token through
the Spec code. For now, it's reading it from a URL parameter, but soon
I'll make it session based (probably localStorage).

The demo-server change is to add the Authorization header into CORS.
2016-11-02 11:57:07 -07:00
Ben Kalman bbfc27d7fe Revert "Remove demo-server and receipts code" (#2791) 2016-10-31 17:10:17 -07:00
Ben Kalman ba5e309c84 Remove demo-server and receipts code (#2790)
They're in attic now: https://github.com/attic-labs/attic
2016-10-31 17:08:18 -07:00
Ben Kalman 26391d9d57 Implement private databases for the demo server (#2772)
Private databases begin with "/p/" - for example, "/kalman" is not
private, but "/p/kalman" is private. They are not the same database.

The bulk of this work is the receipt infrastructure.

A receipt is form data that gives access to a database, encrypted using
secretbox. For example, "Database=/p/kalman&Date=12345678" might encrypt
to "SFH5bcIJ3_XgEbtmi_AdCKTItW20fl90czVl5_pF5PAXhNQ366U1yOpYGAjT".

* A new tool receiptkey generates random receipt (secretbox) keys.
* A new tool receipttool generates receipts for databases.
* demo-server has been updated to check for a receipt in the
  Authorization header to access private databases.

receipttool and demo-server must be given the same receipt key.
2016-10-31 10:58:33 -07:00
Mike Gray 8b198cc71b Nomsfs working with FUSE for Mac 3.5.2
Only changes were in vendor
2016-10-30 18:57:55 -04:00
Dan Willhite 82f2a1218b Add resources field to find-photo's Photo object (#2778) 2016-10-30 14:21:35 -07:00
Dan Willhite 1cd34e0ebd Add Append() method to types.Path (#2783) 2016-10-29 12:37:50 -07:00
Erik Arvidsson 3a4e0dbd75 Remove publish-js-sdk.py (#2786)
This file was renamed to publish-to-npm.py
2016-10-28 18:04:38 -07:00
Erik Arvidsson 9a3a119e60 Update build scripts to use the installed node (#2781) 2016-10-28 18:01:07 -07:00
Erik Arvidsson 37ede2373e Rename publish-js-sdk to publish-to-npm (#2785)
I'm doing this in two steps to allow the builders to continue to work.
2016-10-28 17:54:06 -07:00