Commit Graph

774 Commits

Author SHA1 Message Date
Ray Greenwell 981deb3b6b Fixed two bugs with delta calculation:
- if a pong response took more than 5 seconds to receive, another ping
  would be sent. When the pong finally arrived the delta would be
  calculated using the most recently sent ping.
  Fix: don't send more pings while waiting on a pong.
- After a pong is received, the _deltas array is mangled while
  calculating the server delta, making subsequent pongs possibly
  overwrite earlier calculated deltas.
  Fix: calculate using a copy.

Also, changed the delta calculation to be the mean of the deltas rather
than the median. Left code in to do it both ways if this change was not
kosher...


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3990 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-30 01:08:32 +00:00
Ray Greenwell 07bc269f59 Bugfix for something that may never be needed in the wild: when an
AuthingConnection is replaced by a RunningConnection we need to transfer
over any associated overflow queue to the new connection object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3989 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-30 00:09:55 +00:00
Michael Bayne 23f531fa42 Removed overflow queue logging as this has all been running happily for almost
a year since the refactor that inspired leaving this logging in.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3961 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-18 00:41:53 +00:00
Ray Greenwell 333d476a4a Use array cloning rather than creating a new one and copying into it.
(It may be the same thing under the hood, but our pal Occam would approve.)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3958 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-17 22:29:00 +00:00
Ray Greenwell 7336f11d6f Shrink capacity in DSets upon element removal if the capacity is 8x larger
than it needs to be.
Broke streaming compatibility in order to be much more efficient over the wire.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3938 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-11 02:43:32 +00:00
Ray Greenwell 5f6152230a Tiny optimization.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3920 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-08 00:49:04 +00:00
Michael Bayne 18418122ea More fixy fixy with the commas.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3916 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-06 22:10:05 +00:00
Michael Bayne 1effaf4ad9 No comma if we have no args.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3915 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-06 22:01:31 +00:00
Michael Bayne 17fdaa7c0d Rewrote the InvocationReceiver generation process in Java as an Ant task. I had
previously redone the InvocationService and DObject generation tools but not
the InvocationReceiver tool.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3913 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-06 21:50:23 +00:00
Ray Greenwell 17987537f4 Provide a convenient method for indicating that a listener does not
need to be responded to. It turns out that a listener may not be
a marshaller if a server entity is calling a service request method
directly.  The convenience method handles this and is also cleaner looking
for callers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3832 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-02-04 03:49:53 +00:00
Michael Bayne 73e0a05b5f An internal error should always be accompanied by a log message. We could rely
on the adpater user to sort that out, but it's easier to just log things here
and save everyone time and effort.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3814 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-01-19 22:45:11 +00:00
Ray Greenwell 78f7b7f3e0 Avoid logging spurious warnings about ignored listeners that weren't
really ignored, but just never got responded to due to a bigger problem.
(The bigger problems are already logged.)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3810 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-01-19 01:40:05 +00:00
Ray Greenwell 60c204a93a Added a method that can be called to indicate that a response will
intentionally not be sent to the listener.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3809 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-01-19 00:53:35 +00:00
Michael Bayne 4324149cdb We queue ourselves up every time an event comes in, so we should only process
one event when our run() method is called and then let other (non-distributed
object) things get their chance to run in proper order.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3795 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-21 19:30:39 +00:00
Ray Greenwell 852620bea4 Regenerated marshallers with new response-tracking code.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3793 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-21 02:12:57 +00:00
Ray Greenwell 4cb18bd5ab Wrote code to help automatically detect bugs.
Have invocation marshallers track whether someone ever ended up responding
to the client: if they get garbage collected without ever doing so
(and they're not the base class InvocationMarshaller, which can only report
errors), log an informative error message.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3792 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-21 02:10:38 +00:00
Ray Greenwell 7a64be94f2 Goodbye, NestableIOException.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3788 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-20 02:09:18 +00:00
Michael Bayne 51d349295e Codified a common pattern into a helper class.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3784 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-15 04:20:22 +00:00
Ray Greenwell 0e60a76e2b Interval.Runnable -> Interval.RunBuddy
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3775 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-12-05 19:41:44 +00:00
Ray Greenwell 1673cf0865 Changed some things around so that we can do operations that may require
a round trip to the database after a user has changed user objects:
the ClientResolutionListener will get a ResultListener that it should
call when its all done.

Hopefully this doesn't break anything in bang or gardens...


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3766 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-11-18 02:32:26 +00:00
Michael Bayne 596d2a4708 blank() -> isBlank().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3749 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-11-09 04:00:16 +00:00
Ray Greenwell bd7c2caab9 Use new Interval.Runnable interface name.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3728 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-10-12 21:02:18 +00:00
Ray Greenwell 5bd90aa797 Stop using TrackedObjects.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3726 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-10-11 19:17:43 +00:00
Michael Bayne dd2468b140 Javadoc tidying up.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3725 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-10-08 22:21:19 +00:00
Michael Bayne e52758ef2c Allow the specification of legacy services for which provider interfaces should
not be generated. Cleaned up the generated provider interface formatting a bit.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3715 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-09-27 23:05:40 +00:00
Michael Bayne 2d9dffc7ec Automatically generate the provider interface when generating the FooMarshaller
and FooDispatcher. This means we will no longer be able to make FooProvider a
class that directly handles FooService methods, but the savings in confusion
for first time users of the framework will more than make up for the minor
inconvenience.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3714 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-09-27 22:27:04 +00:00
Michael Bayne 7fb4eafbf8 How have we not previously been screwed by the fact that an Error (like
NoSuchMethodError) sticks a fork in the event dispatcher thread?


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3712 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-09-27 04:38:33 +00:00
Michael Bayne dd44bb4f69 Removed unneeded and improper Runnable check.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3696 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-09-06 18:32:37 +00:00
Michael Bayne 5502936535 Instead of relying on toString() returning something sensible, we go back
to using the class name but get the appropriate class in the case of
RunQueue queued intervals.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3695 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-09-06 18:20:22 +00:00
Ray Greenwell 92e4e9cfaf There are zillions of invocation dispatchers registered with a multitude
of codes. Currently the unit dump that is done once every 15 minutes is
chock-full of one-off units. Let us report the short class name of
the dispatcher, rather than the code with which an instance is registered.

Also: Thou shalt always iterate over the entrySet of a Map if thou planneth
to utilize both the key and the value.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3694 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-09-05 05:38:58 +00:00
Michael Bayne 18fa50cb78 Temporarily use renamed constant.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3689 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-08-24 18:47:21 +00:00
Michael Bayne b7f02502aa Track max queue size and total events dispatched in an extensible stats
object that can be (and is) provided to external callers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3688 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-08-24 18:28:36 +00:00
Michael Bayne 5fbb02bc34 Decode InvocationRequestEvent information as well.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3676 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-08-08 23:59:27 +00:00
Michael Bayne d30119eb65 Do some jiggery pokery to better classify the zillions of Interval$Unit$1
runnables that get added to the dobjmgr queue.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3675 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-08-08 23:54:41 +00:00
Ray Greenwell dc202b3e8a Let's find out what that invalid argument exception is, should it recur.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3665 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-08-01 18:11:33 +00:00
Michael Bayne 301c1cbe4d Dispatch the notification that the client failed to logon after we are
completely cleaned up so that an immediate attempt to logon using a
different configuration will not fail due to the client thinking it's
still logged on from the previous failed attempt.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3658 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-21 20:23:37 +00:00
Michael Bayne 15528d9055 Multiple ports!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3657 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-21 19:34:26 +00:00
Michael Bayne eba31091bb Switch the default port for the Presents system to the DirectPlay port.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3656 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-21 19:26:05 +00:00
Michael Bayne 8c94273b69 Allow the connection manager to listen for incoming connections on
multiple ports.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3655 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-21 19:21:33 +00:00
Ray Greenwell b1ec3ab5b5 Comment fixups.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3646 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-07 18:51:35 +00:00
Ray Greenwell fa8ee9f8f8 Added finishResolution(), which is called on the dobj thread to finish up
population of the client object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3645 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-07 18:46:38 +00:00
Michael Bayne 9f470a4205 If we end up with a selectable channel in our selection set that we no
longer know about, request that it be given the boot when it rears its
ugly head.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3643 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-07-06 01:00:19 +00:00
Michael Bayne 2c17f3612e Track the number of seconds for which the client is connected at the
presents level as it is of interest in pretty much any system. This allows
us to do away with one of the time stamps as well.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3624 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-06-24 22:10:19 +00:00
Michael Bayne a940d490a8 Switch to filterable log format.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3622 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-06-24 20:36:53 +00:00
Ray Greenwell f9f1307884 Count how many client resolutions are currently being processed at any time.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3599 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-06-15 20:46:36 +00:00
Michael Bayne eec8a2ceb9 Record our queue size once every five minutes, and do it using a nice
happy constant.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3595 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-06-13 18:42:29 +00:00
Michael Bayne 457729fdcb Record the maximum distributed object and invoker queue size every minute
to a specific stats log.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3594 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-06-13 18:16:56 +00:00
Michael Bayne 74b44bc21c Added setUsername().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3591 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-06-08 23:36:27 +00:00
Ray Greenwell 7233c34e0f Call userObjectWillChange prior to informing the caller that the
change has been reported.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3578 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-05-27 01:01:26 +00:00
Ray Greenwell ae0547a0ff Cope with the bug we observed this morning as best we can, shut down
the conmgr (and in so doing, the entire server).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3534 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-05-02 18:52:20 +00:00