-
Notifications
You must be signed in to change notification settings - Fork 580
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Locking issue? #293
Comments
Roaming geofences automatically track moving points. If you're having to continually update the 2600 static geofences to match a position, then roaming geofences are probably what you want. That said, 17 seconds seems pretty slow for the |
Okay I guess we found the issue.. All the webhooks had the same endpoint, but we forgot to provide the specific port each. So it seems to have ran out of handles and only continued when one request timed out. Removing all webhooks and recreating them correctly immediately freed it. |
@tidwall So to continue on this.. If a webhook can't send out its message, due to the endpoint being not reachable, it bricks the entire application. In that time not even a command to remove the faulty webhooks can be run. In this case it's the kafka endpoint. |
Perhaps there's something up with the kafka webhook driver. It's designed to that if an endpoint isn't reachable then the message should be queued, the system will make subsequent attempts, and finally give up after a reasonable amount of time. All of this happens in a background thread so it shouldn't slow down other operations. I'm gonna try to reproduce and I'll let you know what I run into. |
I've been unable to reproduce locally. From the tile38 root directory:
This creates a I'll keep poking around. |
The easiest way I got it locally was to create a couple kafka webhook and use some unreachable broker, but always the same one for each hook. Then trigger them a couple times. |
I found the issue and pushed an update to the master branch. |
We've been testing tile38 as a proof of concept lately and do have a couple hundred SET commands every minute. It's running on a 8 core machine with 32gigs of ram, but a it's a node in Kubernetes and shared. We're trying to set up 2600 static geofences, all single coordinates with a radius of 500 meters. It feels like Tile38 gets stuck while setting them up. We've put a sleep between each command to set up a Geofence, that seems to work with some pauses here and there. Running the
server
command while that is running takes a while to execute:It's close to 0 CPU and around 60megabyte of RAM after an aofshrink. Could there be a locking issue?
Maybe we should consider using a roaming fence instead?
The text was updated successfully, but these errors were encountered: