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
8a648c1b97
Move towards replacing bulkdata.File with rocket.Rocket
...
There isn't much left in File, so let's move as much as possible
over to C.
2013-03-04 16:28:40 -05:00
2d45466f66
Print version at server startup
2013-03-04 15:43:45 -05:00
c6a0e6e96f
More complete CORS handling, including preflight requests (hopefully)
2013-03-04 15:40:35 -05:00
79755dc624
Fix Allow: header by switching to cherrypy's built in tools.allow().
...
Replaces custom tools.allow_methods which didn't return the Allow: header.
2013-03-04 14:08:37 -05:00
f260f2c83d
Remove unnecessary layout argument to nilmdb.stream_extract
2013-03-04 11:09:54 -05:00
14402005bf
Remove extraneous flush
2013-03-03 21:52:45 -05:00
0d372fb878
Modify old formatter to match rocket's formatting style
2013-03-03 21:50:29 -05:00
5eac924118
Ignore built modules
2013-03-03 21:44:08 -05:00
0b75da7a8f
Normalize the floating point formats to %.6e and %.16e
...
This is mostly a matter of taste, but it matches more closely with the
old way that prep did it, and it's more consistent. It should roughly
match the available precision of floats and doubles.
2013-03-03 21:43:04 -05:00
2dfc94b566
Remove old code
2013-03-03 21:40:48 -05:00
e318888a06
Finish Rocket.extract_string; clean up code for other functions too
...
This is maybe 2.5-3 times faster than the list-based code, which
still isn't amazing, but is decent.
2013-03-03 21:25:00 -05:00
7c95934cc2
Add rocket.extract_list; still not as complete as pyrocket
2013-03-03 19:04:26 -05:00
96df9d8323
Starting the C version of rocket
...
Currently, only append_list is written (and hardly tested)
2013-03-03 16:54:11 -05:00
31e2c7c8b4
Add some notes about rocket interface to design.md
2013-03-03 14:43:16 -05:00
2a725ee13f
Add version 1 database format backwards compatibility
2013-03-03 14:37:58 -05:00
eb8037ee3c
Add a description for the rocket interface
2013-03-03 14:13:26 -05:00
fadb84d703
Move ascii formatting into nilmdb thread via rocket interface
2013-03-03 14:12:01 -05:00
9d0d2415be
Test bulkdata a little more carefully
2013-03-03 14:00:00 -05:00
130dae0734
Add extract_string to pyrocket
2013-03-03 13:59:47 -05:00
402234dfc3
Better layout handling in pyrocket
2013-03-03 13:37:02 -05:00
4406d51a98
First pass at Python implementation of rocket
2013-03-03 13:37:02 -05:00
9b6de6ecb7
Replace old layout strings everywhere
2013-03-03 13:37:02 -05:00
c512631184
bulkdata: Build up rows and write to disk all at once
2013-03-03 12:03:44 -05:00
19d27c31bc
Fix streaming requests like stream_extract
2013-03-03 11:37:47 -05:00
28310fe886
Add test for extents
2013-03-02 15:19:25 -05:00
1ccc2bce7e
Add commandline support for listing extents
2013-03-02 15:19:19 -05:00
00237e30b2
Add "extent" option to stream_list in client, server, and nilmdb
2013-03-02 15:18:54 -05:00
521ff88f7c
Support 'nilmtool help command' just like 'nilmtool command --help'
2013-03-02 13:56:03 -05:00
64897a1dd1
Change port from 12380 -> 32180 when running tests
...
This is so tests can be run without interfering with a normal server.
2013-03-02 13:19:44 -05:00
41ce8480bb
cmdline: Support NILMDB_URL environment variable for default URL
2013-03-02 13:18:33 -05:00