About a month ago I published a major upgrade of my app "Radar Now!" that
included load balancing to prevent the one server it had been using from
being swamped. The app used to suffer when a storm would go over
a metropolitan area like Chicago or Dallas and a quarter of a million people
would all press the button at the same time.
Curiously, only about 500,000 people (about half) ever upgraded the app, the
rest continued to use the old version. My thought was this is just another
quirk of the market and they must have never received the update
notification.
Yesterday, a particularly nasty storm went through the Chicago area and the
old server got hit hard. I saw usage rates (/proc/loadavg file) soar into
the 20's. That caused the server to lock up.
About 20 minutes into the episode, I forced a message to pop up that told
users they had to update the app in order for them to continue using it. I
thought the language was clear and precise, it went like this:
"The version of this app you are currently running is too old. Please
upgrade from the Android market before using this app again. Upgrading
allows the app to use load balancing, this version does not."
Immediately, I got a flood of e-mails telling me I had to update the app.
The only conclusion I can draw from this: There is a percentage of users who
don't know what updating an app means or even that there's this little bar
at the top of their phone that shows notifications.
I'm constantly surprised by the ignorance and stupidity of the average human
being. How can they get dressed, find their car and drive to work without
killing themselves? These people also breed. That's the scariest thing about
this.
-John Coryat
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-discuss/-/CZgfqFgulfwJ.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
FWIW, John, I updated to the L&G version of the Market when it was first
announced not all that long ago, and since then it has been erratic as hell.
Sometimes it says I have about 50 installed apps, other times about 90
(accurate). When it's "low" and I've spotchecked some not on the list,
sometimes some of them flag as having an update I wasn't aware of. And then
there are some that DO flag w/updates, INaccuratelty. PITA.
Dunno if this is your problem, but FYI. And yes *I* have updated RN :)
Elaine
Ivy, VA
(Sent from my cell phone-pardon my brevity and/or tpyos :)
"Android Discuss" group.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
Welcome to the world outside of your computer room where the "biological
androids" or "biobots" rule. They just follow patterns and don't
think. Kind of like living in a science fiction movie, isn't it? Have
I mentioned lately how many users don't seem to know that buttons on the
phone may also work with apps? I get asked for features all the time
that are available in the app but they need to select them in Settings.
The tablet version about to release of one of my apps has some nice
interface features they probably won't figure out so put a pop-up dialog
at the beginning with a "Don't show again" checkbox explaining them but
also made them accessible from the menu which is of course MUCH more
obvious in Honeycomb.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
Users don't update their Apps, I have an app which went from version 1 to
2+. about 90% of my active users are bellow the current version. But my
app doesn't use any servers, for an app like yours its probably important to
be able to force updates i.e turn the old Apps off.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-discuss/-/m6ZrLZFWJjUJ.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
Does it have a hard-coded IP address? If not, then why not load balance
at the DNS level?
Tim
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
Here's one for you. Last month I updated a feature in my app to use a new
service to provide real-time train predictions instead of stale scheduled
data. This required users to update their saved data to reset some IDs. I
explained this, quite clearly (I thought) in the "What's New" that I popup
on each update.
After a one-star rating and a few emails that "Predictions don't load", I
threw in a hack that detected the old, invalid ID and presented a message
EXACTLY where they would otherwise be looking for train arrival information.
This message explained that their data was invalid and gave step-by-step
instructions on how to reset the data.
That was a month ago. I expected a downhill trend and for it to taper off,
but to this day I detect about 100 instances of people hitting this error
every day.
To get to this error the user has to make the conscious decision to go
looking for the intended information so they're actively using the app, it's
not some fluke. This means that despite the app not working until they
update their data, and despite having a blatant, clear message on how to fix
it in their face every time they try to use the feature, there are people
that still don't follow simple instructions to get the app they paid for to
work.
I, too, can only assume this is due to extreme laziness or stupidity. It's
fascinating, really.
-------------------------------------------------------------------------------------------------
TreKing < http://sites.google.com/site/rezmobileapps/treking> > - Chicago
transit tracking app for Android-powered devices
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
John I think the solution is to nag users at regular intervals (like
on startup) that a new version is available. I do it (and get good
roll forward rates).
TreKing probably does it better than I since he provides an RSS feed
of what's new.
That's the kind of thing that should be baked into most apps IMHO.
Simple stuff that reduces the cost of development by taking away some
of the maintenance pain.
William
--
You received this message because you are subscribed to the Google Groups Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/androd-discuss?hl=en.
I guess the lesson to be learned here is to not rely on the market to get
your users to update. I changed the message to only pop up when the server
gets near capacity, there by punishing those that didn't update while
rewarding those that did. I should put the message as a non-terminal pop-up
for those that are on the old version along with a warning that the app will
be shut off soon.
-John Coryat
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-discuss/-/yW8rML01A4YJ.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
From version 1 we force them to update to the latest release. It's so
terrible that all the things you guys are saying here are so true..
"Android Discuss" group.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
DNS is best (dnsmadeeasy do it cheap) but you could do it with a load
balancing proxy at the ip level such as with relayd on OpenBSD. Nginx, varnish
and others may do it too.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
I'd prefer users update the app. I could have used a server solution like
Nginx but they require the server to manage the traffic, which sort of
defeats the purpose. Having the load balancing done at the app level is more
efficient.
Then again, what do I know?
-John Coryat
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-discuss/-/HYrE0STKExkJ.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
Just making a suggestion that may prevent one of your app servers from
going down. Nginx can handle 50,000+ concurrent connections, 10,000+ on
an inexpensive Linode VPS [1], so if you want a solution, there are ways
of getting there without forcing users to do something that this
discussion shows they're unlikely to do.
Tim
[1]
http://markmaunder.com/2009/how-to-handle-1000s-of-concurren[..]
-- note that the $20/month VPS has 512Mb of RAM now.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
Tim,
I guess my reluctance to use Nginx or other solutions as have been proposed
is a lack of familiarity. I generally go with what I know and will do things
I don't know cautiously. SInce I am totally ignorant about those products
and they most likely are tricky to setup correctly, I am a bit fearful of
that type of solution. It's probably a lot better than what I'm currently
doing though.
-John Coryat
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-discuss/-/Y6KsuOWIO30J.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
What just poping up a dialog box saying " a new version is available, press
ok to upgrade or cancel to use the app as is" ??
Em 15/08/2011 13:34, "John Coryat" <coryat*******> escreveu:
"Android Discuss" group.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
version is available" and "upgrade" mean. A bit hard to understand but then
Letting them continue without updating the app is out of the question. They
are overloading my server with their ignorance so have to pay the price. Why
penalize those people who managed to figure it out?
-John
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-discuss/-/5__S9Bbw2GsJ.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
People don't know how to update.
Last week, I met with my Congress person. There was a collection of
small business leaders, plus me. One person there was a customer.
Think of the thrill of meeting a real live customer in person. But
then looking at his screen, the UI looked so last year. As in, not
updated since
One suggestion: when they click 'OK' on the message to update,
redirect them directly to the Market listing, telling them to push the
Update button and then the OK button. This still won't catch
everybody.
Every week that I send a newsletter out mentioning new features for an
update, people write back asking how they can get that update. Some of
them don't remember that they got their product from the Amazon store,
etc, until I have gone back and forth with them a few times.
Nathan
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
Nathan,
them directly to the Market listing...
That's an excellent idea.
-John Coryat
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-discuss/-/FGQJROU9x78J.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
Two months ago I'd never used Nginx. Now I have a server that can handle
at least 1800 connections per second (as much as my other VPS could
query). The only thing that was tricky was setting it up to use a
slightly less secure https mode so that my secure connections would take
less CPU time. Well, and the fact that I'm using a slightly non-standard
package of it that includes a bundled LuaJIT 2.0 and a bunch of other
plug-ins.
On any recent Ubuntu install, getting the standard version on your
system is as easy as:
apt-get install nginx
isn't an nginx forum, and so if you want to move forward with that, I'm
happy to answer questions about what I've learned off-list, though the
Nginx forums are pretty friendly and helpful as well. And keep in mind
that I've only been using it for a couple of months, so I'm far from an
expert.
Tim
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
Tim,
Thanks for the tips.
Actually, it doesn't really matter as the app does a pretty good job by
itself. Also, the old app is life limited and will be replaced in about a
week with a new app that uses a fraction of the server resources of the old
one, rendering the problem of an overloaded server moot.
We're looking for beta testers of the new app, so if anyone who reads this
wants to be a tester and is located in the US, please submit a request to
join our beta Google group:
https://groups.google.com/group/android-app-radar-now-29-beta
Beta users will get a free year's use of the premium features...
-John Coryat
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-discuss/-/-jtG6SkuxYUJ.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
True, you want to keep it as close to the source but of course no app
has a complete picture and you could still get spikes. Sustained
traffic is usually the problem though. All three can be used depending
on required scale, which comes first is an interesting question and
the answer will vary. Anyway your working solution shouldn't be
hindered by the app infrastructure.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
My question is why would the app use the load balancing, that should be
happening at the server end, not on the app side.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
I'm no expert in the art of load balancing, that's for sure. I chose to use
the client side as it seemed to require less resources than the server side,
plus technically it's easy to understand. I've set up my own servers and am
always nervous about doing something potentially dangerous and new so that's
another reason I used the client side.
Essentially, what I do for load balancing is to randomly select a server to
use for the client session. That will guarantee (or just about) an even
distribution of requests to the servers. It seems to work and I've used this
method for years on web apps successfully.
After we release the next version of our major app (coming in a week or so)
and start earning some actual cash on the project, I may get a professional
involved who knows all about that stuff and can setup a server side load
balancing system that is bullet proof and hacker resistant. The next version
sips at the server unlike the current version which gulps at it, so the
problem will pretty much be solved with that release. We should be able to
handle over 2,000,000 uses per day with the new version vs. about 500,000
with the current app without upgrading the infrastructure.
-John Coryat
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-discuss/-/OHHbue-EkUkJ.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
That should be fine as long as your server can take a large spike
(doesn't crash, mem, process, fw limits etc) and your app retries a new
random server in case of a short timeout. Even if it does crash under
load, an occasional server auto-reboot or process restart may be
acceptable to you?. You see random means you should be just as likely
to get 10 1s in a row as 1 to 10. It also means that at any moment all
your apps may connect to one server and load is unlikely to be evenly
distributed. The more apps you have the higher the chance of one server
being overloaded.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
With the old version, the server never actually crashed, but did go above
loadavg of around 4 (max acceptable) on occasion. We're talking 250,000 to
500,000 hits per day with peaks in the 1000's per minute. With the newer
version, the servers are in good shape and everything flows quite well. With
so many users, random seems to distribute the load evenly.
If the server is actually out of commission, the app gives up on that one
and tries the next in the series. Again, it seems to work well enough.
Once the next version is out, we'll see how much better the loadavg is under
similar loads to the current version. We're going to force an upgrade on
most users, except for the old 1.5 and 1.6 people who will be basically
unable to upgrade so we'll leave them alone for now.
-John Coryat
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-discuss/-/H64IiJW5aJsJ.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
This is water-cooler discussion, right? So it's OK we've gone off-topic? ;)
The reason you want server-side load balancing is that you can scale
dynamically, without updating your app. The easiest (though not best) is
to use load balancing DNS. Say your server is at
"android.johncoryat.com". The DNS can be set up to return one of a dozen
IP addresses when that address is queried.
A much better way to go, if your servers are on Linode, is to use their
new "NodeBalancer" service:
http://blog.linode.com/2011/07/13/introducing-nodebalancer/
It looks like you can use it to take servers out of rotation for
upgrades without affecting users. I haven't used it, but everything I've
heard and experienced relating to Linode has been awesome. And no I'm
not getting anything from recommending them.
Tim
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
I've noticed an interesting pattern from the users who haven't figured out
how to update from the market.
A good 60% have *******
addresses. The rest are *******. So far, not one single gmail address has
asked or complained about the update requirement.
What does that say? I think the conclusions are pretty obvious.
-John Coryat
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-discuss/-/jq8KiTfAeVQJ.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
Sad but true, this points to a pretty serious condition:
http://www.satirewire.com/features/siliconpines/10.shtml
Look at number 3.
Nathan
--
You received this message because you are subscribed to the Google Groups Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/androd-discuss?hl=en.
I don't recall anyone else making this point but users are often
confused with the term "update" and "upgrade". The get them confused
and think that they may get charged for an "update". So sometimes
telling them the update is "free" may be needed even if it is obvious to
the rest of us.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
Again it seems to be the @aol phenomenon. If they go to the Android Market
and click "install update" the app will alert them if they are imposing
charges on their account. Yes "Free Upgrade" may help, but any knowledgeable
person should know how to tell the difference between a paid and free
upgrade.
Just accept the fact that there are a lot of people with smartphones or
iphones that dont know what to do with them. Same people who own a pc but
use it only as a typewriter. Met some guy who thought it was very very
expensive to send a email to someone in thailand (from the EU) because it is
so far away (in geo distance). I would trust this guy with a
smartphone/iphone (especially my phone)
"Android Discuss" group.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
*would not
On Aug 19, 2011 7:48 PM, "Christiaan Schoenaker" <
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.
Looks like we’re back in the days of Pony Mail where it really was very expensive to send (a real written letter on paper) to someone far away. Maybe it isn’t the World Wide Web after all.
"Knowledgeable person" is quite a stretch when we're speaking of the
general public. Believe me I've been dealing with software and the
"general public" since the 1980s and it hasn't gotten any better and
maybe worse.
--
You received this message because you are subscribed to the Google Groups "Android Discuss" group.
To post to this group, send email to android-discuss*******.
To unsubscribe from this group, send email to android-discuss+unsubscribe*******.
For more options, visit this group at http://groups.google.com/group/android-discuss?hl=en.