Aracılığıyla paylaş


MongoDB için Azure Cosmos DB sanal çekirdeğindeki işlemlerde birden çok işlemi gruplandırma

ŞUNLAR IÇIN GEÇERLIDIR: MongoDB sanal çekirdeği

Birden çok işlemi birlikte işlemek veya geri almak için tek bir işlem halinde gruplandırmak yaygın bir durumdır. Veritabanı ilkelerinde işlemler genellikle dört temel ACID ilkesi uygular. ACID şu ifadeyi ifade eden:

  • Bölünmezlik: İşlemler tamamen tamamlar veya hiç tamamlanmaz.
  • Tutarlılık: Veritabanları tutarlı bir durumdan diğerine geçiş sağlar.
  • Yalıtım: Tek tek işlemler aynı anda yapılan işlemlerden korunuyor.
  • Dayanıklılık: Tamamlanmış işlemler kalıcıdır ve sistem hataları sırasında bile verilerin tutarlı kalmasını sağlar.

Veritabanı yönetimindeki ACID ilkeleri, işlemlerin güvenilir bir şekilde işlenmesini sağlar. MongoDB için Azure Cosmos DB sanal çekirdeği bu ilkeleri uygulayarak birden çok işlem için işlem oluşturmanıza olanak tanır.

Önkoşullar

İşlem oluşturma

Seçtiğiniz geliştirici dilinden uygun yöntemleri kullanarak yeni bir işlem oluşturun. Bu yöntemler genellikle birden çok işlemi birlikte gruplandırmak için bazı sarmalama mekanizmasını ve işlemi işlemek için bir yöntemi içerir.

Not

Bu bölümdeki örneklerde adlı collectionbir koleksiyon değişkeniniz olduğu varsayılır.

  1. İşlem işlemi için bir istemci oturumu oluşturmak için kullanın startSession() .

    const transactionSession = client.startSession();
    
  2. kullanarak withTransaction() bir işlem oluşturun ve tüm ilgili işlem işlemlerini geri çağırmaya yerleştirin.

    await transactionSession.withTransaction(async () => {
        await collection.insertOne({ name: "Coolarn shirt", price: 38.00 }, transactionSession);
        await collection.insertOne({ name: "Coolarn shirt button", price: 1.50 }, transactionSession);
    });
    
  3. kullanarak commitTransaction()işlemi işleyin.

    transactionSession.commitTransaction();
    
  4. İşlem oturumunu sonlandırmak için kullanın endSession() .

    transactionSession.endSession();
    

İşlemi geri alma

Bazen, işlem tamamlanmadan önce işlemi geri almak zorunda olabilirsiniz.

  1. Mevcut bir işlem oturumunu kullanarak ile abortTransaction()işlemi durdurun.

    transactionSession.abortTransaction();
    
  2. İşlem oturumunu sonlandırın.

    transactionSession.endSession();
    

Sonraki adım