An embeded RDB that runs too slow? I would do a little profiling on the
app to see if there's anything to fix before starting to throttle messages.
If the messages are bursty perhaps adding a insert queue to the DB i'face
would even things out. Depending on the DB you might be able to do multiple
inserts in one statement, that could speed things up too.
Otherwise running the ACK mechanism through the basestation to the host
and doing some kind of request-retry thing should work. You want to avoid
the "flooding with retries" scenario that kills e'nets though.
An occasional bad crc is to be expected, I'm not sure that it's a symptom
of message overflow. But missing sequence numbers certainly is...
MS
Steve McKown wrote:
Hi,
I have a current wireless star network: ARM gateway connected to a Xbow mote
running BaseStation and several wireless motes that send unicast packets to
the gateway/BaseStation. The wireless motes request acks and will initiate a
resend of any message whose ack is not seen in sendDone(). The gateway uses
the c-sdk to retrieve messages from the BaseStation, processes them and
stores the results in a local embedded database. The gateway allows query of
the RDBMS and presentation of its contents via a simple HTTP-base app it also
runs.
This setup works great until the receive rate of wireless messages exceeds the
rate at which the gateway can insert them into the database. I tested this
scenario by using only 1 wireless node and having it send messages to the
gateway as fast as it can (still with ack/resend logic). In this test, the
gateway will frequently show a bad_crc message from the c-sdk. At the same
time, the gateway loses visibility to dozens of messages, based on message
sequence #s.
Here's what I think I need to do to extend BaseStation to get better message
delivery reliability. Any comments or pointers to related information would
be helpful.
1. BaseStation should elect to send acks for received messages based upon the
filled state of the appropriate message queue (readioQueue, uartQueue) in
addition to the crc check.
2. BaseStation should use a back-off/resend strategy for any message sent over
uart or radio for which an ack is not received in a timely fashion.
Am I on the right track? Is BaseStation a good place to start?
Sorry for the long post, and thanks for your consideration.
Steve
_______________________________________________
Tinyos-help mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
_______________________________________________
Tinyos-help mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help