Twitter’s one-to-many scaling impossible?

Twitter has been having all kinds of scaling challenges. There have been hundreds, if not thousands, of posts on the subject. Dave Winer pushed an idea for a decentralized Twitter (and has since admitted the power of Twitter is in its centrality). There is a single, simple, reason for Twitter’s challenges – Math is against them.

The facility of communication on the Twitter service is absolutely outstanding. I’ve written extensively about using it to receive an amazing amount of quality information in my series on flow.

I originally questioned the scaling ability of the service prior to SXSW, but when the service held up I went back to the drawing board to make sure my numbers were correct.

Before continuing, let’s establish the basics about the service so the math will make sense…

  • Each Twitter account can follow any other Twitter account (bear with me and forget those accounts with private updates).
  • Messages travel in one direction, from the updater to the follower.
  • Each account has updates from other accounts it follows placed in its timeline.
  • A Twitter account can selectively receive pushed updates immediately via instant messenger and SMS in addition to having an update added to its timeline.
  • An update added to an account’s timeline may or may not be push based (lets assume it’s demand driven, or pull based).
  • An update sent to an account from an account denoted as SMS or IM announcement is push based (there is no other way to send an update – it must be actively pushed from the server).
  • The mere possibility of an update needing to be pushed requires the system to check with each follower’s settings, thus requiring analysis of each follower for each update.

A warm-up equation

If there are one hundred (100) users and each user follows ten (10) fellow users, and each user sends ten (10) updates per day, assuming all updates are push-based, how many updates are sent?

Continue Reading

The problem with instantaneous time travel – relative versus absolute paths

I don’t usually get in to philosophical scientific stuff here, but this was just too fun to write about…

Flux Capacitor

image of flux capacitor intended as a joke – time dilation not included

There is a certain problem with time travel that a software engineer or sys admin will automatically understand. It has to do with relative versus absolute paths. As mentioned in the title, this applies to instantaneous time travel (time travel via time dilation does not experience this problem).

This realization came up while having an aviation discussion with AgentM regarding GPS. Somehow the idea of flying a small aircraft from today, 1,000 years in the future without GPS for navigation, came up. That led to time travel…

The problem is that the universe and everything in it is moving. A point along the equator moves, relative to the center of the earth, at 1,040 miles per hour. This means traveling 30 seconds backwards or forwards in time, to the same absolute path in space, would result in a spacial jump relative to the starting point of 8.67 miles (1,040 mph / 60 minutes in an hour / 60 seconds in a minute x 30 seconds).

All values for speeds acquired from RASC Calgary Centre. Their page on ‘how fast?’ is an awesome resource.

That’s only relative to the earth – The earth is moving through space relative to the Big Bang’s origin at 1,342,000 miles per hour. A jump in time of only a single second, with a constant absolute spacial path, puts you off course by 372.8 miles (probably miles above or below the earths surface in the process).

Let’s go back to calculus for a moment. Remember limits of functions at infinity? This is how one solves the spacial challenge of instantaneous time travel. For those who left their calculus books at home, this limit describes change as a function approaches an instant (usually as time or speed approach infinity or zero).

This becomes challenging to apply to instantaneous time travel because all physical movements known to man result in an instantaneous speed of zero. As proof, take the earths movement of 1,342,000 mph (a pretty high velocity) and divide it by infinity (what would happen at an instantaneous point in time). You get a speed of zero. Kind of like taking a picture at 1/5,000 of a second… Most everything stops. Except this is 1/infinity of a second.

This speed of zero is your relative path. A relative path of zero means your absolute path does not change, and therefore you remain in the same location while the rest of universe kept moving. A major problem.

To solve the spacial challenge of instantaneous time travel (and so you can land in the same place you jumped) one must have an instantaneous relative path that equals the function of one’s present location’s relative path to all universal factors.

Such universal factors include, but are not limited to, the earth’s rotation, the earths revolutions in the solar system, the solar systems rotation in the galaxy, and the galaxies movement in universe. Additionally, forces like black holes, comets, gravitational forces of satellites, and wind direction need to be considered.

This function becomes incredibly complicated, but let’s assume we will be capable of such calculations at or before we’re capable of making a human’s instantaneous velocity 1,342,000 mph. Manipulation of such a relative path would allow one to come out of instantaneous time travel in a completely different location, effectively teleporting.

Put simply, for successful time travel and/or teleportation, calculating the instantaneous velocity will be necessary.