90b96799ac
Bulk of the switch to int64 microsecond timestamps, including test data.
2013-03-15 15:08:58 -04:00
56679ad770
Move more datetime_tz calls into common code
2013-03-15 15:08:58 -04:00
b5541722c2
Continue moving time-handling code into nilmdb.utils.time
2013-03-15 15:08:58 -04:00
aaea105861
Consolidate most timestamp <-> string conversions (outside of rocket)
2013-03-15 15:08:57 -04:00
e6a081d639
Consolidate timestamp constants into nilmdb.utils.time
2013-03-15 15:08:57 -04:00
1835d03412
Bump bulkdata database version to 3
2013-03-15 15:08:57 -04:00
c7a712d8d8
Partial test for rounding issues
2013-03-15 15:08:57 -04:00
20d315b4f7
Add documentation about upcoming timestamp changes
2013-03-15 15:08:57 -04:00
a44a5e3135
Merge branch 'argcomplete'
2013-03-15 15:08:42 -04:00
039b2a0557
Include nilmtool-bash-completion.sh script in .tar.gz
2013-03-15 15:08:28 -04:00
cd1dfe7dcd
Add completion functions to most commandline arguments
2013-03-15 14:26:38 -04:00
fb35517dfa
Add basic argument completion
2013-03-15 13:57:35 -04:00
b9f0b35bbe
Stream renaming support, and comprehensive tests
...
Implemented in command line, client, server, nilmdb, bulkdata
2013-03-14 11:02:30 -04:00
b1b09f8cd0
Strengthen checks when creating paths, fix some bugs, and add tests
2013-03-13 17:45:47 -04:00
d467df7980
Add specific error for creating a path that already exists
2013-03-13 10:14:28 -04:00
09bc7eb48c
Make StreamInserter.insert complain if data remains after send
...
Previously, we ignored problems when sending intermediate blocks,
since getting more data might make the next attempt succeed.
But in practice, malformed data would just build up, causing
problems. Raise an exception if there's too much data remaining
after trying to send an intermediate block.
2013-03-12 18:45:56 -04:00
b77f07a4cd
Fix reporting of parsing errors with malformed data
...
strtod() and friends will happily swallow newlines, so we need to skip
over spaces and look for that sort of thing manually.
2013-03-12 16:44:36 -04:00
59f0076306
Increase max layout count in rocket
2013-03-12 16:10:29 -04:00
83bc5bc775
Make rocket/bulkdata errors include column number and the bad data
...
The bad line is printed out on a new line, and a third line
with a ^ to indicate the position of the error.
2013-03-12 16:10:00 -04:00
6b1dfec828
In stream_list, return 0 instead of None for rows and seconds
...
For rows and seconds only. Extents still give None if they don't
exist.
2013-03-11 19:37:52 -04:00
d827f41fa5
Fix Makefile omission
2013-03-11 17:42:02 -04:00
7eca587fdf
Add 'nilmtool intervals' command, with --diff option
...
Can show the set-difference between the interval ranges in two
streams.
2013-03-11 17:07:26 -04:00
a351bc1b10
Add client, server, nilmdb support for listing interval differences
2013-03-11 17:07:08 -04:00
1d61d61a81
Add interval.set_difference function and associated tests
2013-03-11 15:40:50 -04:00
755255030b
Clean up interval __and__ function; we don't need to __and__ sets
2013-03-11 15:15:43 -04:00
8e79998e95
Tune sqlite to use write-ahead-logging
...
Enable the following pragmas: synchronous=NORMAL, journal_mode=WAL.
This offers a significant speedup to INSERT times compared to
synchronous=FULL, and is roughly the same as synchronous=OFF
but should be a bit safer.
2013-03-11 15:13:43 -04:00
9f914598c2
Make /stream/list give some more extended info, like row count
...
Also changes the HTTP parameter from "extent" to "extended",
and the commandline parameter from "extent" to "ext".
2013-03-11 15:13:43 -04:00
0468b04538
Fix pyrocket to handle comments better
2013-03-11 15:13:43 -04:00
232a3876c2
Clean up imports to separate client and server more.
...
"import nilmdb" doesn't do much; "import nilmdb.client" or "import
nilmdb.server" is now required.
2013-03-11 15:13:42 -04:00
1c27dd72d6
Fill out client tests and fix various bugs
...
Fixes various corner cases and other bugs regarding lines with
comments, having data but no endpoints, etc.
2013-03-08 12:36:17 -05:00
de5e474001
Update benchmarks in design.md
2013-03-07 20:33:30 -05:00
0fc092779d
Big rework of stream_insert_context and places that use it.
...
Things are now block-focused, rather than line-focused. This should
give a pretty big speedup to inserting client data, especially when
inserting preformatted data.
2013-03-07 20:30:11 -05:00
7abfdfbf3e
Add const qualifier to strings we get from Python
2013-03-07 16:27:07 -05:00
92724d10ba
Rework 'nilmtool insert' and some client stuff to speed up inserting data
...
Still needs work.
2013-03-06 20:49:14 -05:00
1d7acbf916
Remove null timestamper, speed up insert --none a tiny bit
2013-03-06 20:46:51 -05:00
ea3ea487bc
Merge branch 'rocket-insert'
...
Conflicts:
nilmdb/server/bulkdata.py
nilmdb/server/server.py
nilmdb/utils/__init__.py
2013-03-06 20:46:04 -05:00
69ad8c4842
Merge branch 'rocket'
2013-03-06 20:38:02 -05:00
0047e0360a
Implement Rocket.append_string() in C; misc cleanups along the way
...
This should more or less complete the rocket interface.
2013-03-06 15:50:00 -05:00
1ac6abdad0
Fix rocket.ParseError exception handling
...
Before, a tuple was crammed into args[0]. Now, the three arguments are
args[0:2].
2013-03-05 22:05:17 -05:00
65f09f793c
When re-raising exceptions in the server, preserve original tracebacks
2013-03-05 21:48:40 -05:00
84e21ff467
Move ASCII data parsing from the server to the rocket interface.
...
The server buffers the string and passes it to nilmdb. Nilmdb passes
the string to bulkdata. Bulkdata uses the rocket interface to parse
it in chunks, as necessary. Everything gets passed back up and
everyone is happy.
Currently, only pyrocket implements append_string.
2013-03-05 17:51:17 -05:00
11b228f77a
Convert times to microsecond precision strings more consistently.
...
Use a new helper, nilmdb.utils.time.float_to_time_string().
This will help if we ever want to change representation (like using
uint64 microseconds since epoch, which saves us from having to
waste bits on the floating-point exponent)
2013-03-05 17:07:39 -05:00
7860a6aefb
Make helper for removing or truncating a file; use it
2013-03-05 15:27:12 -05:00
454e561d69
Verify that metadata values are numbers or strings
2013-03-05 13:22:17 -05:00
fe91ff59a3
Better handling of JSON requests
2013-03-05 12:38:08 -05:00
64c24a00d6
Add --traceback argument to nilmdb-server script
2013-03-05 12:20:07 -05:00
58c0ae72f6
Support application/json POST bodies as well as x-www-form-urlencoded
2013-03-05 11:54:29 -05:00
c5f079f61f
When removing data from files, try to punch a hole.
...
Requires fallocate(2) support with FALLOC_FL_PUNCH_HOLE, as
well as a filesystem that supports it (in Linux 3.7,
tmpfs, btrfs, xfs, or ext4)
2013-03-04 20:31:14 -05:00
16f23f4a91
Fill out pyrocket.py to fit new interfaces; fix small bugs
2013-03-04 17:01:53 -05:00
b0f12d55dd
Fully replace bulkdata.File with rocket.Rocket
2013-03-04 16:43:26 -05:00