2010-04-17 3 views
1

Comment construire/concevoir/programmer une file d'attente Terabyte ou Petabyte en mémoire? (Imaginez un service comme Twitter avec un grand nombre d'utilisateurs.)Comment créer une file d'attente Terabyte?

+0

Veuillez fournir plus d'informations. Parlons-nous la file d'attente, comme dans la structure de données? Qu'est-ce qui sera stocké dans cette file d'attente? – echo

+0

La prononciation correcte est tera, pas terra. – SurvivalMachine

+0

oui exactement mais la taille de la file d'attente est de l'ordre de téraoctets/pétaoctets? La file d'attente – user319280

Répondre

1

Pourquoi ne pas utiliser le service de mise en file d'attente de Twitter? Ça s'appelle kestrel et c'est open source.

+0

Avez-vous une idée de la taille de la file d'attente que Twitter a à traiter? – user319280

+0

Comme le dit leur fichier readme, Kestrel est évolutif "à l'infini et au-delà". – echo

+0

c'est une bonne référence! – user319280

0

Cela dépendra beaucoup du système de fichiers que vous utilisez et des éléments qui sont stockés dans la file d'attente. Les éléments de la file d'attente devront être adressables d'une manière ou d'une autre. Peut-être en tant que noms de fichiers, ou adresses de bloc de disque, ou ... quelque chose. Vous aurez besoin de stocker les adresses de ces éléments dans la file d'attente. En fonction du nombre d'éléments avec lesquels vous travaillez, vous devrez peut-être même le décomposer encore plus et diviser votre file d'attente en blocs, où des blocs entiers d'éléments sont considérés comme un élément de la file d'attente. sous-file d'attente.

+0

cette méthode sera-t-elle assez rapide pour avoir un bon service? – user319280

+0

bien, tant que vous faites une lecture anticipée adéquate. Vous disposez d'une certaine quantité de mémoire pour travailler, aussi longtemps que vous gardez suffisamment de données en file d'attente dans la mémoire principale pour servir les clients, cela devrait fonctionner correctement. Si vos clients consomment les données plus rapidement que vous ne pouvez les récupérer sur le disque, vous aurez un goulot d'étranglement. Le seul moyen de contourner cela est de faire ce que Robert Davis a suggéré dans un commentaire précédent: l'étaler sur plusieurs serveurs. – echo

Questions connexes