Andrew Bettison
7e3a552011
Issue #69 : refactor all Rhizome SQL queries to use binding
...
Remove all uses of sprintf(3) and its ilk to form SQL query commands.
Use the new sqlite_bind() and sqlite_prepare_bind() functions instead.
2013-10-03 15:15:30 +09:30
Andrew Bettison
8f7d600216
Issue #69 : continue work on multi-bind varargs
...
Revise sqlite_prepare() macro et al and underlying functions to use bind
varargs instead of sprintf(3)-style varargs.
Convert all SQL function calls in rhizome_database.c
2013-10-03 01:16:10 +09:30
Andrew Bettison
772e1bf9d6
Issue #69 : start writing SQLite multi-bind function
2013-10-02 18:19:20 +09:30
Andrew Bettison
162108dd18
Fix duplicate payload logic
...
rhizome_finish_write() was treating a duplicate file hash as an error,
instead of dealing with it sensibly
2013-09-30 16:32:08 +09:30
Andrew Bettison
01216f06c2
Refactor rhizome_cleanup()
...
Compute time horizons once only, not once per query
Factor query that deletes orphan FILEBLOBS rows into its own function
2013-09-30 16:20:50 +09:30
Andrew Bettison
99a0d36812
Improve Rhizome debugging
...
Log the integer result of an int64 query
2013-09-30 16:16:44 +09:30
Andrew Bettison
c91ea7f8ac
Make some Rhizome db functions static
2013-09-30 16:15:59 +09:30
Andrew Bettison
a04fc263f9
Improve comments on Rhizome db functions
2013-09-30 16:15:01 +09:30
Jeremy Lakeman
504aa92711
Send a sync immediately on importing a new bundle
2013-09-20 14:41:50 +09:30
Jeremy Lakeman
b916363b40
Treat empty filehash the same as NULL
2013-08-28 16:15:28 +09:30
Jeremy Lakeman
44ab51e2ab
Don't clean the database for every command line operation by default
2013-08-27 13:44:05 +09:30
Jeremy Lakeman
643b21d6a7
Fetch file payloads if they are missing, even if we already have the manifest
2013-08-22 15:14:21 +09:30
Jeremy Lakeman
f9b828c3dd
Remove payload if hash doesn't match when reading back
2013-08-21 15:45:18 +09:30
Jeremy Lakeman
bf7d0d5b16
Cache rhizome read state when serving content via MDP
2013-08-16 14:57:28 +09:30
Jeremy Lakeman
68bf04f69d
Change manifest service to MeshMS2
2013-08-01 11:37:35 +09:30
Jeremy Lakeman
f9bc9d1913
Add support for encrypted journals with tail>0
2013-07-22 15:04:26 +09:30
Jeremy Lakeman
3855ff35c4
Clean up string formatting for 64bit compilation
2013-07-15 09:59:24 +09:30
Jeremy Lakeman
8ac359e550
Use consistent integer types for 64bit compilation
2013-07-13 14:47:06 +09:30
Jeremy Lakeman
53f3920b90
Move cli global state into a structure and pass it around
2013-07-03 16:51:27 +09:30
Jeremy Lakeman
8249f65f8f
Don't create unused import folder
2013-07-03 10:54:05 +09:30
Jeremy Lakeman
adbbed5275
Add new rhizome sync protocol
2013-06-19 12:05:57 +09:30
Jeremy Lakeman
a18230f591
Reduce latency impact of BAR lookups based on aggregate time
2013-06-14 14:09:58 +09:30
Jeremy Lakeman
b67516558e
Add clean command to verify all bundles
2013-06-14 11:58:19 +09:30
Jeremy Lakeman
96c0889f9a
Don't ask for manifests if we don't have room in transfer queues
2013-04-11 15:24:41 +09:30
Andrew Bettison
65f6e88e67
Add emkdirs() and emkdirsn()
2013-04-04 17:37:49 +10:30
Jeremy Lakeman
90386ce1b1
Merge remote-tracking branch 'origin/development' into serial
...
Conflicts:
rhizome.h
rhizome_database.c
rhizome_fetch.c
rhizome_store.c
2013-02-20 17:23:03 +10:30
Jeremy Lakeman
73786bcb5d
Refactor all rhizome reading and writing
...
- The API in rhizome_store.c is used for all reading and writing
- external storage is now usable for all transport options
2013-02-20 16:18:59 +10:30
gardners
944486c048
simplify external/internal blob storage to a boolean flag instead
...
of a threshold.
2013-02-20 16:18:59 +10:30
gardners
9e9f93b079
make external blob output conditional on debug flag.
2013-02-20 16:18:58 +10:30
gardners
2252fdcaa7
created tool for automatically finding IN()s without matching
...
OUT()s or where return() is used instead of RETURN().
Added OUT() to end of all functions using IN() that lacked it to
make it easier to statically analyse this invariant.
Fixed several return instead of RETURNs detected through use of
this tool. #49
2013-02-20 16:18:56 +10:30
Andrew Bettison
390655580d
Add 'rhizome delete' and 'rhizome clean' commands
...
sqlite_void_exec() and its ilk now return the count of changed rows, not
just zero, on success
sqlite_exec_prepared() and its ilk now return the count of rows (number
of step results SQLITE_ROW), instead of just zero, on success
rhizome_clean() function now produces an optional report of its changes
rhizome_fail_write() and rhizome_finish_write() now log WARNings not
ERRORs if the SQL DELETE FROM FILES or DELETE FROM FILEBLOBS statements
fail
Refactor rhizome_open_read() to use sqlite_exec_int64()
Ensure that 'rhizome extract' and 'rhizome dump' commands return exit
status of 1 in "not found" conditions, not 255, which is reserved for
errors
Test cases for four new commands: 'rhizome delete bundle', 'rhizome
delete manifest', 'rhizome delete payload' and 'rhizome delete file'
(no test case for 'rhizome clean' yet)
2013-02-20 15:37:09 +10:30
gardners
641d749ab4
Create files for large rhizome bundles
...
- configurable size threashold
2013-02-20 15:36:32 +10:30
gardners
f465f3a9ee
Add lots of profiling to assist in debugging
...
- made some debug output conditional.
- make it possible to debug slip decoding without getting swamped by other output.
- Improve reporting of unnamed schedule() calls.
- always collect performance statistics, and report on any excess
use (>1sec in every 3), even if debug.timing is not enabled.
- include file size information in Rhizome transfer messages.
- reduce output when debug.rhizome_rx is set.
2013-02-20 15:36:30 +10:30
gardners
506ceea309
log when BAR lookups are slow.
2013-02-20 15:36:29 +10:30
gardners
83625198cb
tweak BAR lookup filter in light of packets arriving with 20 BARs
...
at a time, which can take 4seconds(!) to process on a WR703N.
2013-02-20 15:36:29 +10:30
gardners
8befcf7c11
create indexes for ID and VERSION on MANIFESTS table to reduce the
...
time it takes to lookup whether BARs are interesting.
2013-02-20 15:36:29 +10:30
gardners
17ea1b69b3
don't look at all BARs if we are too slow.
2013-02-20 15:36:29 +10:30
Jeremy Lakeman
e4d6520c46
Don't request manifests that are already in the fetch queue
2013-02-20 15:36:25 +10:30
Jeremy Lakeman
ba1800012e
Only advertise BAR's on an alarm
...
- we no longer hit the database for every outgoing packet, attempting to announce bundles
- we no longer advertise manifests periodically
- when an interesting bar arrives, we ask for the manifest to be announced, which uses the existing packet format
2013-02-20 15:36:23 +10:30
Andrew Bettison
cf13a4b51e
Add 'rhizome.clean_on_open' config option
2013-02-20 14:43:20 +10:30
Jeremy Lakeman
3a93fee8a5
New JNI interface to better support cursor result sets
2013-01-23 14:43:50 +10:30
Jeremy Lakeman
ad01836d0e
Use database query to respond to rhizome list, add name argument
2013-01-17 11:45:45 +10:30
Jeremy Lakeman
6dcc434541
Add more manifest fields as database columns
2013-01-16 10:56:09 +10:30
Jeremy Lakeman
b25ff45438
Importing the same bundle twice returns duplicate flag
2013-01-15 10:32:48 +10:30
Jeremy Lakeman
09617b9ce0
Set sqlite temp directory explicitly, increase database timeout
2013-01-06 19:43:14 +10:30
Jeremy Lakeman
7978bc0b1a
Add logging for sqlite errors
2013-01-06 14:18:36 +10:30
Jeremy Lakeman
c7cf80b352
Use sqlite user schema version to remember state
2013-01-06 13:04:49 +10:30
Jeremy Lakeman
e26522bdc6
Minor improvements to command line time measurements
2013-01-03 14:16:33 +10:30
Jeremy Lakeman
2e761c17fa
Only consider duplicate manifests that we can re-author
2013-01-03 12:23:50 +10:30
Jeremy Lakeman
2967d1e00f
Don't check for duplicates if an existing id has been supplied
2013-01-03 11:18:30 +10:30