سؤال

لدينا مستودع SVN كبير جدًا (50 جيجابايت ، أكثر من 100000 مراجعة). العمل معها بطيء للغاية وأخمن أن السبب في ذلك هو بنية الدليل المسطح في DB/Revs و DB/RevProps (حيث يكون كل مراجعة ملفًا واحدًا).

نستخدم تنسيق FSFS مع SVN 1.5 (على خادم Linux) ولكن تم إنشاء repo مع إصدار SVN أقدم. قرأت الآن أن SVN 1.5 يدعم "Sharding" وفهم أن هذه الميزة توزع المراجعات في أدلة متعددة حتى لا يحتوي دليل واحد على العديد من الملفات. يبدو هذا مفيدًا جدًا ، لكن يبدو أن هذه الميزة تستخدم فقط مع المستودعات التي يتم إنشاؤها حديثًا باستخدام SVN 1.5.

كيف يمكنني تحويل ريبو خطي كبير موجود إلى ريبو متخبط؟ يذكر الدليل أداة "FSFS-Reshard.py" ولكن هذا البرنامج النصي يقول "هذا البرنامج النصي غير مكتمل وليس جاهزًا لاستخدامه في البيانات الحية. ثق بنا.". لذلك أنا بالتأكيد لا أريد استخدام ذلك. هل هناك بديل؟

هل كانت مفيدة؟

المحلول

أفضل طريقة كما ذكر تفريغ/حمولة. لكن يمكنك تجربة تطوير.

svnadmin upgrade

قم بعمل نسخة من الريبو أولاً ، جرب الترقية واختبارها .... (لا تفوت إنشاء نسخة احتياطية).

نصائح أخرى

سوف svnadmin dump و svnadmin load قم بالخدعة؟ http://subversion.apache.org/faq.html#dumpload

نظرًا لأن عملية التفريغ/الاستعادة تتطلب الكثير من مساحة القرص ووقت المعالجة ، فقد نشرت (في عام 2010) نسخة محسنة من fsfs-reshard.py الذي يتضمن دعم Subversion 1.6 FSFS Format 5:https://github.com/ymartin59/svn-fsfs-reshard

وهو يدعم التبديل بين التخطيطات الخطية إلى المخططات ، وتفريغ شظايا عند الحاجة. بفضل حساب SHARD Statistics ، قد تتوقع أحجام المراجعة المعبأة في تحديد حجم Shard المناسب.

بالطبع يجب أن يكون تستخدم بعناية:

  • أول إجراء اختبار على نسخة مستودع إذا أمكن
  • احصل على نسخة احتياطية جاهزة لاستعادتها
  • منع الوصول إلى المستودع عند المعالجة
  • يركض svnadmin verify قبل وضعه على الهواء مباشرة
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top