Tasks #1480
Change default record ordering from create timestamp to send timestamp
Status: | Resolved | Start date: | 04/29/2013 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | J. Moringen | % Done: | 100% | |
Category: | - | |||
Target version: | Robotics Service Bus - rsb-0.9 |
Description
To my mind the default behavior of the bag toolchain should be to reproduce the network traffic as closely as possible (i.e. the timing of the events on the network). Right now the create timestamp is the default timestamp to record and therefore sort events for replay. This timestamp is defined by the client and can hence be affected in any possible way. As a consequence, what is replayed by bag-play is usually not what was actually received by bag-record. This is especially true for systems where the create time is modified to reflect the underlying data.
Therefore I propose to change the default timestamp to "send", which is under our control in RSB and where the semantics are a bit clearer.
Along with this change we should think about how users can- Know what data is recorded in which format (e.g. by querying bag-info)
- Migrate their existing data to the new indexing scheme using bag-merge (which should probably be called bag-transform ;))
Related issues
Associated revisions
Added index-timestamp commandline option in bag-record.rst
refs #1480
- bag-record.rst: added explanation of the index-timestamp commandline
option
Fixed timestamp handling in src/transport/inprocess/*-connector.lisp
refs #1480
- src/transport/inprocess/out-connector.lisp (header): updated
copyright
(handle :before out-connector event): set :send timestamp - src/transport/inprocess/in-pull-connector.lisp
(emit in-pull-connector t): set receive timestamp - src/transport/inprocess/in-push-connector.lisp (header): updated
copyright
(handle :before in-push-connector event): likewise
Added index-timestamp to bag-record in bag-record/main.lisp
fixes #1480
- bag-record/main.lisp (header): updated copyright
(update-synopsis): added index-timestamp commandline option which
controls which timestamp is used to index events in the created log
file
(main): pass the value of the index-timestamp option to
`events->bag' - test/send-test-events.lisp: new file; helper script which produces
recordable events for tests of bag-record - CMakeLists.txt: use test/send-test-events.lisp for bag-record tests;
added test for index-timestamp option
Changed default indexing timestamp in src/rsb/construction.lisp
refs #1480
- src/rsb/construction.lisp (events->bag listener bag): changed
default indexing timestamp :create -> :send
Fixed timestamp handling in src/transport/inprocess/*-connector.lisp
refs #1480
- src/transport/inprocess/out-connector.lisp (header): updated
copyright
(handle :before out-connector event): set :send timestamp - src/transport/inprocess/in-pull-connector.lisp
(emit in-pull-connector t): set receive timestamp - src/transport/inprocess/in-push-connector.lisp (header): updated
copyright
(handle :before in-push-connector event): likewise
Added index-timestamp commandline option in bag-record.rst
refs #1480
- bag-record.rst: added explanation of the index-timestamp commandline
option
History
#1 Updated by J. Wienke over 11 years ago
- Description updated (diff)
#2 Updated by J. Wienke over 11 years ago
- Description updated (diff)
#3 Updated by J. Moringen over 11 years ago
- Status changed from New to In Progress
- Assignee set to J. Moringen
#4 Updated by J. Moringen over 11 years ago
- Status changed from In Progress to Resolved
- % Done changed from 0 to 100
Applied in changeset rsbag-tools-cl|commit:5786c21d14929f764b8826753f486fe32d7ca6b5.