A critic of Guido's blog on Python's lambda

Martin P. Hellwig mhellwig at xs4all.nl
Sat May 6 07:27:02 EDT 2006


Bill Atkins wrote:
> "Martin P. Hellwig" <mhellwig at xs4all.nl> writes:
> 
>> Bill Atkins wrote:
>> <cut>
>>> How do you define scalability?
>>>
>> http://www.google.com/search?hl=en&q=define%3Ascalability&btnG=Google+Search
>>
>> ;-)
>>
>> -- 
>> mph
> 
> OK, my real question is: what features of Python make it "scalable"?
> 
Well I'm no expert, but I guess the ease of creating network services 
and clients make it quite scalable. For example, I'm creating a 
xmlrpcserver that returns a randomized cardlist, but I because of 
fail-over I needed some form of scalability , my solution was to first 
randomize the deck then marshal it and dump the file on a ZFS partition, 
giving back the client a ticket number, the client can then connect with 
the ticket number to receive the cardlist (read the file - unmarshal it).

While this is overkill for 1 server, I needed multiple because of 
fail-over and load-balancing, in this case I have 3 'crypto' boxes (with 
hardware crypto engines using OpenBSD) doing only the randomizing and 4 
solaris machines doing the zfs and distribution of the list.

By using xmlrpc and DNS round-robin, I can just add boxes and it scales 
without any problem, The ZFS boxes are the front-end listening to the 
name 'shuffle' and are connecting to a private network to my crypto 
boxes listening to the name 'crypto'.

So as long as I make DNS aliases (I have a little script that hearbeats 
the boxes and when not responding within 10 seconds removes it alias) 
and install the right scripts on the box I can scale till I'm round the 
earth. Of course when the machine amount gets over a certain degree I 
have to add some management functionality.

Now I don't say that I handle this situation well and that its the right 
solution, but it worked for me and it was easy and fun to do with 
python, but I guess that any language in this sence should be 'scalable' 
and perhaps other languages have even better built-in networking 
libraries but I'm not a professional programmer and until I learn other 
languages (and are comfortable enough to use it) I'll keep on using 
python for my projects.

For me python is easy, scalable, fun and by this the 'best' but that is 
personal and I simply don't know whether my opinion will change in the 
future or not.

-- 
mph



More information about the Python-list mailing list