Suitability of Python for daemon processes

Ben Boeckel MathStuf at gmail.com
Sun Oct 25 22:46:05 UTC 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Mike McGrath wrote:

> On Sun, 25 Oct 2009, Ben Boeckel wrote:
> 
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>>
>> Hi,
>>
>> I am working on a project designed to mirror large, changing archives of
>> software in a manner that ensures data integrity and atomic updates using a
>> peer-to-peer protocol.
>>
>> My team and I would like to design this software such that it provides a
>> suitable replacement for rsync.  As Fedora is among the leading
>> distributions, I would like to solicit your opinions on the implementation.
>> We have designed much of the architecture, but have not implemented anything
>> yet.  One issue we wish to address currently is that of interpreted vs.
>> compiled languages.
>>
>> My team and I would like to know whether the community would be accepting of
>> such a project (which includes a daemon) if it were written in Python rather
>> than C or C++.  If so, it would greatly simplify the implementation and
>> allow it to be more robust.  Python's built-in libraries and facilities
>> provide much of the path and network manipulation that the daemon requires.
>> Using the Python standard libraries allows us to rely upon a well-tested
>> base and focus on higher-level issues.
>>
>> What are your opinions, as system administrators, on using Python for
>> long-running daemon processes when the developers are explicitly mindful of
>> memory considerations?
>>
> 
> I've generally had better luck with C/C++ based daemons from a systems
> admin point of view.  But we've used plenty of python based daemons that
> worked just fine.  I think the problem is the lower barrier to using
> python means it's easier for less experienced developers to create python
> daemons.
> 
> Really though, if it's done right, python daemons can be just as good as C
> daemons.  And extending Python is very easy as you mentioned with using
> pythons built in libraries.  If you're concerned about performance though
> it shouldn't take much to do the basics of what you want and compare C to
> python.  Sometimes they're identical, sometimes C wins but I don't think
> I've seen python win yet (with performance).  But it is much easier to
> work with python :)
> 
> 	-Mike

Thanks for your reply.

Seeing as it is a mirroring daemon, the network is the bottleneck. If it isn't 
then either you're sitting next door, our implementation is bad, or the 
hardware shouldn't be a mirror in the first place.

- --Ben
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQIcBAEBCAAGBQJK5NUuAAoJEKaxavVX4C1XwboQANvsgFvNHSuYUFGNT6Vze/4u
fCxzohcTnM+UosCEKDbSzknVlPhcoRGq71Lm1bju/Spsr8o1VHy18a5+nlEv7FlE
icyo/J1ls7diWDMnA/zkoadQUlzg2nb5qpxV5jZVCrNWf3oDmxGuTLb1f9KlucQV
Z2gROXyJw9ALvZJ+nY3HYE5MEBa/w44RkS/HoE0PDFeToMufnv728JXJ6AE3dTVs
IEIq9EBhFZ/wqvEShdoz/UqmVTx7Y9CfD/31PN5yat9eGPaomXrN9jaG4LB4l2sV
A2TuaV0lC+qy6woScnIC0WMfREc5QHxQLXag9L8DOJN/nnRCV3fKKFxY3zW8xK92
cIDhUqjWWXDBc5kAuxwyId5UpKD3KJmd8ZoyGNwuYGdEff96thiAOurKIYpmKjXK
r8eI5BarfyeELOvMo5sb4vi1WEpzxQN+xjsrUGEM3BtvXy7+rsIwkpUkL20/5gYG
HYDo3xQG0ya1XX27Tm6+pbORoWW6YjhgJ8JN+acNAiopLP2P04/ErLyC4Jvga4+u
G1FSd8hvv9gz3I2uDf98PD/npye2yj/w/gWPwofPI5Ono9mJIPCHPzD89WinFYE8
BARSfJaWhNv1tM6BffpRg51t1w4D82ulVWdPMRs5224HlRSozoaoVLkMYcRWEL+O
q+mTgi/7jKZ31pEjwxqV
=PF8I
-----END PGP SIGNATURE-----





More information about the Fedora-infrastructure-list mailing list