micro-canal Enterprise optimisation simultanée des idées de la structure organisationnelle et le fonctionnement pratique de forage

Auteur | Hutten

Modifier | Ash

En tant qu'entreprise de classe micro-canal, dans le contexte du développement rapide de l'entreprise, les exigences d'optimisation itératifs sont également de plus en plus urgent. montant total de l'entreprise micro-canal de la première édition du système de synchronisation a été étirée en face de la croissance rapide des affaires pour ses problèmes rencontrés, comment faire l'optimisation simultanée de la structure organisationnelle? Ceci est une autre pratique d'une équipe de micro-lettre technique.

EDITORIAL

micro-canal l'entreprise dans le processus de développement rapide, après une autre grandes entreprises utilisent première édition micro-lettre de l'entreprise avec une quantité totale de système de synchronisation, deux problèmes de trafic et de la performance du programme existe dans les grandes entreprises, chaque synchronisation consomment de grandes quantités de trafic, et sur les 5s iPhone traction 10W + avertissement de mémoire sera invité à déballer lorsque les membres des accidents d'architecture et d'application.

Le montant total du système de synchronisation est difficile de soutenir le développement rapide du programme d'affaires, optimiser la synchronisation de plus en plus nécessaire. Dans cet article, le problème pour le montant total du programme synchrone analyse rencontré, la structure organisationnelle des programmes de synchronisation supplémentaires, et le terminal mobile et lourd et difficile à mettre en uvre des idées système de synchronisation incrémentale ont été expliqués.

fond entreprise commerciale micro-canal

Dans la lettre, la micro-entreprise, la structure organisationnelle est le module très important, l'utilisateur peut sélectionner la page « Contacts » onglet sur la page d'accueil pour afficher la structure organisationnelle de l'entreprise, et peut être trouvé par tous les membres du « carnet d'adresses » de la société, et son lancement les appels vocaux ou des sessions vidéo.

L'organisation est très importante et des informations sensibles, des entreprises comme des produits de classe entreprise de micro-canaux, la confidentialité des utilisateurs toujours mettre la sécurité et dans une position importante. Pour l'organisation de l'information, les administrateurs d'entreprise ont haute granularité de l'autorité d'exploitation de la vie privée, prend en charge non seulement cacher des renseignements personnels, soutiennent également le fonctionnement des contacts avec des autorisations d'affichage.

Dans la lettre, la micro-entreprise, les caractéristiques de la structure organisationnelle sont:

1, la structure multi-arbre. nuds feuilles représentent les membres, les noeuds non-feuilles représentent des secteurs. Département au plus un département parent, mais les membres peuvent appartenir à plusieurs départements.

2, opération cachée architecture. Les administrateurs d'entreprise peuvent définir la liste blanche et liste noire, fond de gestion de liste blanche vous pouvez voir une structure organisationnelle complète, les autres membres ne peuvent pas les voir dans la structure organisationnelle. Les membres de la liste noire ne voient que lorsque leur groupe et tous son service parent, l'autre personne peut voir les membres de la liste noire.

3, l'organisation d'exploitation. Les administrateurs d'entreprise peuvent ajouter la fin de l'application web et de fin / départements supprimer, ajouter / supprimer / déplacer / modifier les membres et d'autres opérations, et l'opération se synchroniser rapidement tous les membres des résultats de l'entreprise.

Le montant total du système de synchronisation d'émission

Cette section explique à peu près le montant dans le schéma complet de synchronisation pour atteindre et les problèmes rencontrés.

Le système de synchronisation de principe du montant intégral

Enterprise micro-canal ère 1.0, du point de vue de la stabilité et de l'itération rapide de considération, l'extension de l'adresse e-mail d'entreprise système de synchronisation de livres, a pris le plein montant du système de synchronisation d'architecture.

L'idée de base de la totalité du montant est émis sous le nud de service, le noeud client comparant les données locales pour identifier les changements. Ici nud peut être un utilisateur, peut aussi être un département, l'organisation considérée comme une structure arborescente binaire, les utilisateurs et les départements sous ce sont des nuds, s'il y a plusieurs services sous le même utilisateur, est considéré comme une pluralité de noeuds.

Le montant total de la première technique de synchronisation est divisée en première fois synchrone et non synchrone:

  • Pour la première fois serveur de synchronisation sera émis la totalité des archives d'information de nud, décompressez le client pour obtenir le plein montant de l'arborescence du schéma et du présent.

  • Pas la première synchronisation temporelle en deux étapes:

  • valeur de hachage des cheveux de la totalité du nud du serveur. Comparer les données locales pour trouver des noeuds supprimés clients stockés dans la mémoire, par rapport à trouver un nouveau nud à une demande d'information spécifique.

  • Le client demande des informations spécifiques du nouveau nud. Après le succès de la demande d'information spécifique, puis dans la base de données locale / mise à jour / processus de suppression, le processus de synchronisation pour assurer atomicité.

  • Les commentaires des utilisateurs

    Après la première édition sur la ligne, a reçu un grand nombre de plaintes de bugs liés à la structure organisationnelle, axée sur:

    • Circulation consommation excessive.

    • Architecture et architecture côté client web incompatible.

    • Organisation n'est pas synchronisé dans le temps.

    Le problème est plus prononcé dans les grandes entreprises.

    L'analyse des problèmes

    Allez dans le montant total du système de synchronisation est difficile à supporter les raisons de la synchronisation des grandes entreprises, sont toutes les causes de cheveux pris parce que la valeur de hachage du programme au serveur complet de volume, programmer les problèmes suivants:

  • Tirez beaucoup d'informations redondantes. Même si le changement, une seule information de serveur membre sera émis la totalité des noeuds de hachage. Pour des centaines de milliers de grandes entreprises, telles l'utilisation des données est assez grande, si les grandes entreprises dans la mesure du possible de réduire la fréquence des mises à jour, mais il se traduira par l'architecture n'est pas mises à jour de données en temps opportun.

  • Les grandes entreprises tirent des informations sujettes à l'échec. Le montant total du système de synchronisation pour la première architecture de synchronisation temporelle va tirer un arbre archive plein volume un temps schéma, et un grand paquet de données d'entreprise de dizaines de méga-octets, quelques méga-octets déballés, pour les appareils bas de gamme de mémoire, la première architecture de charge pourrait faible sur la mémoire et l'accident. Pas la première fois synchronisé lorsque l'on compare le nouveau nud, demander des informations spécifiques, vous pouvez rencontrer une surcharge de données et demander une situation d'attente.

  • Le client ne peut pas filtrer les données non valides. Le client ne comprend pas le sens spécifique de la valeur de hachage, ce qui entraîne un contraste local ne peut pas être filtré de la valeur de hachage de hachage non valide, les erreurs d'affichage de la structure d'organisation peuvent se produire.

  • Améliorer la structure des systèmes de synchronisation de plus en plus nécessaires.

    Vous cherchez des idées d'optimisation

    Rechercher des solutions à point de synchronisation optimize, nous devons identifier les points de douleur du programme original et déraisonnable, grâce à des programmes d'ajustement pour éviter ce problème.

    difficultés de synchronisation de la structure organisationnelle

    la synchronisation des ressources précise et moins coûteuse structure organisationnelle est une chose très difficile, la principale difficulté:

    • Architecture Organisation grands volumes de données. Nouvelles / synchronisation une fois que la quantité de données en général ne communiquera pas avec plus d'une centaine, et les micro-canaux d'entreprise entreprises actives, il y a plusieurs milliers, voire des centaines voire de milliers de nuds d'entreprise, ce qui signifie la dernière architecture de synchronisation de la quantité de données sera très facile, des milliers . Trafic consommation mobile de l'utilisateur final est extrêmement préoccupé, et la mémoire est limitée, ce qui réduit le flux de la consommation et de réduire la consommation de mémoire et d'assurer l'intégrité de l'architecture de l'arbre sont synchronisés objectif d'affaires micro-canal.

    • Architecture des règles complexes. La structure organisationnelle doit être synchronisé pour compléter l'arborescence du schéma à l'affichage et les micro-entreprises dans la lettre implique des règles cachées complexes, pour des raisons de sécurité, le client ne doit pas se membres cachés.

    • Modifier des changements fréquents et grands. Ajuster la structure organisationnelle du nouveau ministère et il y a plusieurs membres déplacés à la nouvelle situation du secteur, il y a des cas où la dissolution d'un ministère. Le chiffre d'affaires des employés sera par la synchronisation de la structure organisationnelle, les grandes entreprises signifiera essentiellement des changements tous les jours.

    Sélection de la technologie - proposer le programme de mise à jour incrémentale

    Les problèmes mentionnés ci-dessus, dans les grandes entreprises deviendront plus apparents. Après plusieurs séries de programmes de discussion, nous donnons le programme original ajoute deux fonctionnalités pour obtenir des mises à jour supplémentaires:

  • Incréments. Le serveur enregistre l'histoire de modifier la structure organisationnelle, l'architecture client synchronisation incrémentielle par numéro de version.

  • Fragmentation. Interface supporte l'architecture tissulaire de seuil de retransmission synchrone à tranche de traction.

  • Dans le nouveau scénario, la structure de stockage du serveur pour un nud peut être simplifiée comme:

    vid se réfère à l'identifiant de noeud identifie de manière unique l'utilisateur, DepartmentID se réfère à l'identifiant de service de noeud, indiquant is_delete si le noeud a été supprimé.

    • Si le nud est supprimé, le serveur ne supprime pas le nud, tandis que le is_delete marqué comme vrai.

    • Si le nud est mis à jour, le serveur augmentera le dossier suivants, le prochain client sera en mesure de synchroniser les synchroniser.

    Lorsque, seq est la valeur d'incrément peut être comprise comme le numéro de version. Chaque organisation dispose d'une mise à jour de noeud, le serveur Seq augmenter la valeur du noeud correspondant. Le client demande au serveur via un vieux suivants, renvoyés du serveur au client tous les changements entre cela et les derniers seq suivants, pour compléter la mise à jour incrémentale.

    Montré comme:

    En proposant un système de synchronisation supplémentaire, on résout le problème des aspects techniques de la sélection, mais affronterons de nombreux problèmes dans la pratique, nous allons vous expliquer les principes et les programmes pour les problèmes pratiques rencontrés ci-dessous.

    système de synchronisation incrémentale

    Cette section explique les principes et la mise en uvre du client du programme d'architecture de synchronisation incrémentale, ainsi que pour expliquer les concepts de base.

    Principe de système de synchronisation incrémentale

    Microentreprise lettre, idée de base du programme de synchronisation incrémentale est:

    Publié noeud de serveur supplémentaire, et pour supporter une tranche seuil de retransmission incrément noeud de traction, le serveur ne peut pas être calculée si la différence entre le client, le montant total émis par le noeud client de comparer les différences.

    système de synchronisation supplémentaire peut être résumé en quatre étapes:

  • Le client a passé un numéro de version locale, le nud de traction change.

  • Le nud client et trouver les pull changement des noeuds d'information spécifique.

  • Le client traite les données et stocke le numéro de version.

  • architecture jugement de synchronisation complète est terminée, sinon terminée, répétez l'étape 1, si la réalisation d'une synchronisation de la structure organisationnelle complète, claire sur l'état de la synchronisation locale.

  • Ignorer les différentes conditions aux limites et des conditions anormales, un organigramme d'un schéma de synchronisation incrémentale peut être résumé comme suit:

    Ensuite, nous examinons les concepts clés, ainsi que le processus complet du système de synchronisation incrémentale est.

    Le numéro de version

    Le numéro de version est épissé par une pluralité de numéros de version synchronisés à des chaînes, le numéro de version spécifique du sens du client transparent, mais très important pour le serveur.

    Une partie du numéro de version est:

    rollback version

    Synchronisation incrémentale rencontre quelques problèmes lors de la pratique:

  • Le serveur ne peut pas être stocké de façon permanente les enregistrements supprimés, supprimer des enregistrements sur le serveur est dénué de sens et de stockage permanent prendra beaucoup d'espace disque. Et trop de données non valides vitesse de lecture sera également une incidence sur l'architecture. Lorsque le nombre de noeud is_delete dépasse un certain seuil, le serveur supprime physiquement tous les noeuds is_delete à true. A ce moment, le client re-tirer le montant total de la comparaison des données locales.

  • Une fois les modifications des règles de masquage de l'architecture, le serveur est difficile de calculer le noeud incrémental, le noeud sera émis la totalité du montant des différences de contraste par le client.

  • Idéalement, si la pleine quantité de graisse sous le serveur de noeud, pelle client les anciennes données et de tirer la totalité du montant des noeuds d'information, et peut être couvert de nouvelles données. Mais le terminal mobile pour le faire consommerait une grande quantité de trafic utilisateur, cette approche est inacceptable. Par conséquent, si la pleine quantité de graisse sous le serveur de noeud, le client a besoin de comparer les ajouts et les suppressions au nud local, des informations spécifiques au nud pour aller les changements de traction.

    cas synchrone supplémentaire, si la totalité de la graisse sous le nud du serveur, dans cet article, nous dit que ce cas est le numéro de version rollback, l'effet est similaire à la version client de synchronisation avec un cadre vide. A partir des résultats statistiques, la version en ligne de synchronisation dans 4% des cas se produisent rollback version.

    seuil de fragmentation tirant

    Si le client passe seq est trop vieux, les données supplémentaires peuvent être importantes. A ce stade, si une seule fois retourner toutes les données mises à jour demandées par le client aura une quantité importante de données, le temps sera très long, très faible taux de réussite. Compte tenu de ce scénario, le seuil de besoin convenu client et le serveur, mettez à jour les données si le nombre total de demandes dépasse ce seuil, le serveur ne dépasse pas les données de retour maximum de ce seuil. Si le client a constaté que la quantité de données renvoyées par le serveur égal au seuil, encore une fois les données de demande au serveur, la quantité de données envoyée jusqu'à la fin du service est inférieure à la valeur seuil.

    optimisation de la structure noeud

    Dans le mode de réalisation synchrone la quantité totale, par hachage identifie de manière unique le noeud. Le montant total envoyé par la liste de hachage du serveur, le client compare le montant de la liste de hachage stockée localement, si la nouvelle valeur de hachage des informations spécifiques au nud est demandé, si les valeurs de hachage sont supprimées supprimer les informations du poste client.

    Dans la totalité des systèmes de synchronisation, le client ne comprend pas le sens de spécifique la valeur de hachage, et la collision de hachage peut rencontrer ce fil de cas extrême à une liste de hachage envoyé par le client ne peut pas traiter correctement.

    Le schéma de synchronisation incrémentale, une structure de valeur de hachage de protobuf en place, le noeud de proto de mise à jour incrémentale est défini comme:

    Dans le schéma de synchronisation incrémentale, avec vid et PartyId pour identifier le nud, la valeur de hachage est complètement abandonnée. De sorte que lorsque la synchronisation incrémentale, le client comprendre la signification spécifique des nuds, mais aussi pour éviter la valeur de hachage une fois que la totalité des schémas de synchronisation rencontrés anomalies répétées du programme.

    Seq et le noeud apporter dans la structure. suivants sur le noeud indique la version du nud, des informations spécifiques sur chaque nud est mis à jour, le serveur augmentera nud suivants, le client a découvert émis par le noeud serveur suivants grand seq local que le client, vous devez demander des informations spécifiques sur les noeuds éviter la demande d'informations de nud non valide.

    Jugement synchronisation complète est l'architecture complète

    En raison des quantités de seuil de transfert de supports d'interface SVR tirer le changement d'un nud, les opérations de réseau ne l'architecture de synchronisation ne moyenne a été terminée. Alors, comment déterminer la synchronisation est une architecture complète de celui-ci? Ici, la solution de client et le serveur est convenu:

    Si les cheveux (+ suppression de nouveaux nuds Node) est inférieure à la valeur seuil du passage client sous le côté service, l'architecture est considérée comme la fin de la synchronisation.

    Lorsque la synchronisation de l'architecture complète est terminée, le client doit effacer le cache, et certaines opérations supplémentaires, telles que le nombre de calcul, de calcul et d'autres membres d'intérêt de recherche.

    schémas de synchronisation supplémentaires - organigramme complet

    Compte tenu des conditions aux limites et exceptions, système de synchronisation complète est un incrément d'organigramme:

    Difficultés schéma de synchronisation incrémentale

    Après l'ajout de caractéristiques supplémentaires et la fragmentation des centaines de milliers de grandes entreprises, dans le numéro de version scénarios de repli, comment assurer l'intégrité de la synchronisation de l'architecture et les options du programme est devenu difficile.

    Comme mentionné précédemment, les règles changent et les coulisses cachées après la suppression de nud physique non valide, si le client avec une version très ancienne de la synchronisation, le nud serveur comptage incrément pas, la totalité du montant sous le nud de serveur, le client a besoin Comparez localement tous identifier les changements de nud de données, le numéro de version de la scène peut être comprise comme une solution de repli. Dans ce scénario, pour les très grandes entreprises des centaines de milliers de nuds, si un incrément de nud fait trop de demandes de clients très longtemps, le taux de réussite sera faible au niveau du serveur, ce qui nécessite une augmentation de la fragmentation traction la quantité de nuds. Et tirant vers le bas le montant total des noeuds, le client ne peut pas demander un noeud spécifique dans la quantité totale d'informations pour remplacer les anciennes données, de sorte que chaque rollback version flux de consommation excessive scène.

    Par conséquent, des centaines de milliers de nuds pour la synchronisation incrémentale de très grandes entreprises, le client La difficulté est:

  • HTTP. processus de synchronisation incrémentale, si l'application cliente des problèmes de réseau rencontrés ou suspendu, la prochaine fois que la reprise du réseau ou de l'application, la synchronisation peut alors poursuivre la progression de la dernière synchronisation.

  • Le processus de synchronisation ne modifie pas l'affichage normal. Les grandes entreprises peuvent prendre pour synchroniser plus de temps, la synchronisation temporelle ne devrait pas affecter l'architecture exposition des tissus normaux.

  • Contrôler le temps de synchronisation. Grande synchronisation de scénario de repli numéro de version entreprise est très beaucoup de temps, mais nous avons besoin de trouver des moyens pour accélérer le processus, réduire la consommation de synchronisation temporelle.

  • pensée

  • la synchronisation démarre l'architecture, l'arborescence du schéma mis en cache en mémoire, accélérer le traitement.

  • Si le service exige bout à bout, ils ont fait un numéro de version drapeau de secours, les informations de nud local dans la base de faire une opération de sauvegarde.

  • Tous les nuds mise à jour sera publiée sous la fin de service à la fin, dans la requête arborescence du schéma, se trouve, les données de sauvegarde sur les données officielles. Si non, pour le nouveau nud, nous devons extraire des informations spécifiques et l'enregistrer dans l'arborescence du schéma.

  • Lorsque la synchronisation de l'architecture complète, les localiser et supprimer tous les nuds du db de sauvegarde, effacer l'état du cache et de synchronisation.

  • Si le nud de serveur a émis le montant, le chronogramme de traitement du client:

    Envoyer un numéro de version fallback marque suivante serveur

    Comme on peut le constater sur le tableau de distribution, délivré par la version du serveur signal indicateur de baisse de prix est très important.

    Le numéro de version du rollback cette marque, seulement pour la première fois avec le nouveau numéro de version sera émis et la synchronisation. Au cours d'une architecture de synchronisation complète, le client doit marquer le cache, et suivre ainsi que le numéro de version existe dans la base de données. Après une synchronisation d'architecture de fin complète, vous devez décider nud supprimé à supprimer dans la base de données, selon que le numéro de version de rollback.

    programme d'arbre d'architecture de sauvegarde

    La solution la plus simple consiste à arbre de schéma de sauvegarde db dans une copie des données, et il y a une nouvelle table. Si la quantité de données est faible, faire est donc pas de problème, mais souvent beaucoup d'architecture de nud de l'arbre, prenez cette solution simple et brut dans le terminal mobile est tout à fait indésirable, des centaines de milliers d'entreprises, Ce faisant causera d'importants problèmes de performance.

    Après examen, le programme de micro-entreprise est de prendre la lettre:

  • Si l'architecture de synchronisation, fait un drapeau à l'arrière-plan nécessaire rollback version, le client marquera tous les noeuds dans le cache et db pour la suppression (8,9 étape chronogramme).

  • Pour les mises à jour envoyées par le nud de serveur, désactivez la case à supprimer sur le noeud (10, 11 étape chronogramme) dans l'arborescence du schéma.

  • Trouvé après la fin de l'architecture de synchronisation complète db et des noeuds de suppression (diagramme de synchronisation 13 étapes) tous marqués pour l'effacement, et supprimer toutes les données mises en cache.

  • De plus, le processus de synchronisation incrémentale ne devrait pas affecter l'architecture normale de l'affichage de l'arborescence. Ainsi, dans le processus de synchronisation de schéma, si la couche supérieure aux données de demande dans la db, vous avez besoin de filtrer les noeuds à marquer pour la suppression.

    arbre architecture cache

    Le programme client ne peut pas déterminer le montant à éviter le contraste des noeuds, des informations importantes mises en mémoire cache permettra d'accélérer considérablement le processus. noeud de l'arbre de schéma corps est défini dans la mémoire:

    Ici, nous utilisons l'arbre std :: carte à l'architecture de cache avec std :: paire comme la clé. Lorsque l'on compare le nud, il implique un grand nombre d'opérations de requête, l'utilisation de la complexité des cartes de temps de requête est O (log n).

    points clés du système de synchronisation incrémentale

    Cette section seule optimisera système de synchronisation d'écrire les points clés, les points clés non seulement appropriés pour une utilisation architecture de synchronisation ici, mais aussi pour la plupart de la logique de synchronisation.

    Après la fin du traitement pour que les données, puis stocker le numéro de version

    Dans la quasi-totalité de la synchronisation, le numéro de version est le plus important, une fois que le numéro de version du désordre, les conséquences sont très graves.

    Dans l'architecture synchrone, le point le plus important est le suivant:

    Après la fin du traitement pour que les données, puis stocker le numéro de version .

    Dans le scénario de synchronisation de la structure organisationnelle, pourquoi ne pas la version pré-existante, les données qui y sont stockées?

    Cette organisation implique une caractéristique importante des données de synchronisation: schéma de données de noeud est répété en tirant et de la couverture.

    Compte tenu de la scène réelle rencontrée dans la pratique:

  • Si le client a demandé une nouvelle information de noeud sur le serveur, le client venait d'insérer un nouveau nud, le numéro de version n'a pas été enregistré, l'application cliente suspendue.

  • Dans ce cas, le client est redémarré, il suffit de tirer le nud qui a été traité avec le même numéro de version, mais après ces noeuds avec comparaison de données locale, vous trouverez nud suivants ne sont pas mis à jour et ne va pas à extraire des informations de noeud, ni il se traduira par des nuds en double.

  • Si une fois que la version pré-existante et enregistrer des données spécifiques, il y aura probabilité de perte de données de mise à jour du schéma.

    synchronisation atomique

    Dans des circonstances normales, une logique de synchronisation peut être simplifiée:

    opération asynchrone en présence de la synchronisation entreprise organisation micro-canal, le processus de synchronisation est effectuée en l'absence de l'atomicité de garantie, le cas représenté sur la figure maximale peuvent se produire:

    La figure, insérer une autre synchronisation temporelle de synchronisation bidirectionnelle, il est susceptible de causer des problèmes:

  • La sortie est instable. Si deux synchronisation a commencé presque simultanément, mais à cause de la présence de fluctuations du réseau, renvoie le résultat peut être différent, ce qui provoque une grande détresse au débogueur.

  • trouble de l'état intermédiaire. Si le résultat du traitement de synchronisation renvoyé par le serveur à la demande dépend d'un état intermédiaire dans la synchronisation, et ce nouvel état se réinitialise l'initiation de la synchronisation, il peut provoquer bizarre anormale.

  • trouble de synchronisation. L'ensemble du processus devrait être synchronisé atomes, si d'autres processus intervenant processus de synchronisation de synchronisation causeront tout ce gâchis, jeter une exception.

  • Comment assurer atomicité le synchroniser?

    Souvenons-nous au début d'un drapeau de synchronisation dit qu'il est synchronisé, à la fin de la synchronisation, enlevé le drapeau. Si le temps supplémentaire que vous synchronisez l'arrivée et a constaté que synchronisé, vous pouvez directement éliminer cette synchronisation ou la synchronisation, etc. Le succès une nouvelle fois synchronisé.

    En sérialisation d'addition peuvent également être synchronisés pour assurer que la synchronisation temporelle, la synchronisation de synchronisation doit être FIFO répétée.

    la cohérence des données cache

    Procédé de synchronisation d'extrémité mobile cache multiple est divisé en deux:

  • mémoire cache. Le but d'ajouter de la mémoire cache est de réduire les opérations sur les fichiers IO pour accélérer la vitesse de traitement du programme.

  • cache disque. Ajout de cache de disque afin d'éviter la perte de l'état de synchronisation lorsque le programme est arrêté.

  • Et la synchronisation des données d'état intermédiaire lorsque le cache de la mémoire de synchronisation multi-cache, la mémoire cache de disque est utilisé pour mettre en cache la synchronisation d'état intermédiaire à prévenir l'état de tampon est perdu.

    Tout au long du processus de synchronisation, nous devons nous assurer que les modifications apportées aux données dans les données du cache et les bases de données ont besoin d'une correspondance. Dans le cas de la synchronisation incrémentale, nous avons tous besoin de mise à jour / suppression des noeuds dans la base de données, vous devez mettre à jour les informations du cache afin d'assurer la cohérence des données.

    Optimisation comparaison des données

    Utilisation de la mémoire

    Méthode d'essai: en utilisant des outils Instrument, utiliser le même compte pour surveiller le montant total de la synchronisation et la synchronisation incrémentale respectivement de pointe App lors de sa première charge de l'architecture mémoire.

    Pic résultats des tests de mémoire

    analyse

    Avec l'augmentation de l'architecture des noeuds, le pic de mémoire pleine quantité de système de synchronisation se lèvera toujours, dans les cas extrêmes, la situation est hors de la mémoire les apparaît de plantage de l'application (le test réel, sous le nud 30w, montant total iPhone 6 du programme synchrone se bloque). Le système de synchronisation incrémentale, le nombre total de nuds n'affecte pas quantité de mémoire, ne fera qu'augmenter le nombre de fragmentation synchrone.

    Après optimisation, dans le domaine Tencent, l'utilisation de la mémoire totale App système de synchronisation supplémentaire est que 53,1% du montant total du système de synchronisation, et plus l'entreprise est l'effet d'optimisation plus évidente. Quelle que soit l'architecture et le nombre total de noeuds, le programme de synchronisation incrémentielle sera en mesure de l'architecture de synchronisation complète vers le bas pour obtenir les résultats souhaités.

    l'utilisation des données

    Méthode d'essai: dans la gestion des membres de bout en faire le quintuple exploitation, les flux de consommation, la valeur moyenne par client d'analyse du journal. Imprimez l'en-tête du journal et la taille du corps de la demande et utilisée pour estimer la valeur de débit.

    Résultats des tests

    analyse

    L'augmentation de la composition de l'opération, il ne tirer de nouvelles informations pour les membres individuels du programme de synchronisation incrémentielle, donc peu importe combien de personnes dans l'architecture, l'utilisation des données sont similaires. La même opération pour le montant des systèmes de synchronisation, chaque demande de modification de la quantité totale de matières grasses dans la liste de hachage de volonté serveur, plus d'affaires plus la consommation du trafic. On peut voir, lorsque le nombre de nuds atteint 20w niveau de l'entreprise, la quantité de trafic toute la consommation de système de synchronisation est presque 500 fois le système de synchronisation incrémentale.

    Après l'optimisation, le domaine Tencent à chaque utilisation des données de synchronisation incrémentale est seulement 0,4% du montant total système de synchronisation, et augmente plus l'effet d'optimisation est plus évidente.

    Écrit dans la dernière

    système de synchronisation supplémentaire pour éviter l'architecture de synchronisation est pas en temps opportun et les problèmes de circulation de la consommation excessive du programme. Et l'analyse des données par les commentaires des utilisateurs, cadre stable synchronisation incrémentale sur la ligne, pour atteindre sur les résultats d'optimisation.

    Les auteurs introduisent

    Hutten ingénieurs Tencent, le processus impliqué dans la lettre micro-entreprise à partir de zéro, principalement responsable du développement des micro-entreprises croient organisation terminal mobile et les contacts externes et d'autres modules.

    texte recommandé aujourd'hui

    Cliquez ci-dessous pour lire l'image

    Discussion technique: Pourquoi KPI ruinés Sony et OKR mais les réalisations de Google?

    IFA 2018 Shu Lenovo YOGA 7 débuts Pro: premier Dolby Vision du monde / son panoramique
    Précédent
    « Connaissant Non » dans les quatre méchants qui signifie le plus impitoyable? Les amis ont dit qu'ils ont perdu à Zhao Liying
    Prochain
    concert Andy Lau a soudainement annoncé que annulé, il a présenté ses excuses au public aux larmes: Je ne pouvais vraiment pas supporter
    Une couche « anneau » un coeur orange pour devenir des gardiens de la belle ligne de paysages à Chenzhou Hanyu
    Meizu 16 profondeur de l'expérience: la sincérité, se rencontrent au plus tard
    Amir Khan Pékin est l'incarnation Wang Baoqiang du Père Noël pour aider un ami, première « la foule indienne »
    « Son appel fou » est appelé « pierre de touche émotionnelle, » Tong Dawei Mary hilarante révèlent un secret le téléphone
    "Extreme prolapsus," une collection des deux premiers atterrissage HD PS4 / PSV / PC
    la technologie App de l'avenir, la pratique actuelle de la grande extrémité avant, une fois que vous a donné
    Zhang Yuqi cravate balle tête promenade bébé heureux, elle a ouvert ses bras très proche avec son fils, ex-mari a disparu
    IFA 2018 Shu Razer publication de jeu « Les Trois Mousquetaires »: monstre géant, araignées et Mamba viennent
    Et ses camarades de classe Zhu Yilong, et Wu Xiubo joué un merveilleux jeu de match, il est plus que l'amour bien connu de l'apprentissage
    Gal Gadot "Wonder Woman 1984" crank un nouveau annoncé en studio tir Shots a pris six mois
    Ou plus que le nouvel iPhone, Apple automne Conférence Aperçu