Hazırlama ve işleme

DynoTable'daki her düzenleme, DynamoDB'ye dokunmadan önce bir hazırlama alanından geçer. Bunu, bir güvenlik mandalı olan bir git hazırlama alanı gibi düşün: düzenlemeler, oluşturmalar ve silmeler incelenebilir diff'ler olarak birikir, ardından yalnızca sen işlediğinde olarak gönderilir.

Sen söyleyene kadar tablona hiçbir şey yazılmaz.

Nasıl çalışır

Her tablonun kendi hazırlama alanı vardır; o tablonun her görünümünde paylaşılır. Bir öğe düzenlemesi kaydettiğinde, bir satır oluşturduğunda ya da birini sildiğinde, değişiklik panele öznitelik başına bir diff olarak iner — eklenen, kaldırılan ve değiştirilen öznitelikler yan yana gösterilir. Izgaradaki etkilenen satırlar işleme göre renklendirilir:

  • yeşil — yeni bir öğe (oluştur)
  • turuncu — bir güncelleme (değiştirilen hücreler vurgulanır)
  • kırmızı — bir silme (üstü çizili)

Aynı tabloyu iki sekmede aç; ikisi de aynı bekleyen değişiklikleri gösterir; bir sekmeyi kapatıp yeniden aç, stage hâlâ oradadır. Bir sekmeyi kapatmak, hazırlanmış değişikliklerini asla atmaz.

Paneli ⌘⇧D ile aç/kapat. Yeniden boyutlandırmak için kenarını sürükle.

Bekleyen değişiklikleri öznitelik başına diff kartları olarak gösteren hazırlama paneli; satır başına ve toplu işleme seçenekleriyle.
Bekleyen değişiklikleri öznitelik başına diff kartları olarak gösteren hazırlama paneli; satır başına ve toplu işleme seçenekleriyle.

Değişiklikleri inceleme

Her diff kartı tam olarak neyin değişeceğini gösterir:

  • Skalerler, kırmızı/yeşil vurgulamayla eski → yeni olarak render edilir.
  • Uzun string'ler satır içi kelime düzeyinde bir diff gösterir.
  • Map ve List'ler güzelce biçimlendirilmiş JSON olarak render edilir (v1'de tüm öznitelik).

Tek bir özniteliği orijinal değerine geri bırakmak için bir kartın öznitelik başına Reddet'ini kullan. Her özniteliği reddet, tüm değişiklik atılır.

İşleme

Hazırlanmış değişikliklerini DynamoDB'ye yazmak için işle:

  • N'i işle, o tablo için hazırlanmış her değişikliği gönderir — tüm sekmelerinde.
  • Yalnızca bunu işle, kartından tek bir değişikliği gönderir.

İşlemeler, iyimser kilitleme koşullarıyla TransactWriteItems toplu işlemleri olarak gider: bir güncelleme yalnızca öznitelikler başladığın değerleri hâlâ tutuyorsa başarılı olur, bir oluşturma yalnızca öğe henüz mevcut değilse başarılı olur ve bir silme yalnızca öğe hâlâ oradaysa başarılı olur. Büyük hazırlamalar, DynamoDB'nin işlem sınırları içinde kalmak için otomatik olarak parçalanır.

Düzenleyiciden gelen kaydetme tuş bileşimleri burada da geçerlidir:

  • ⌘S — hazırla (işleme yok)
  • ⌘⇧S — kaydet ve işle
  • ⌘⇧X — hazırlanmış tüm değişiklikleri at (onaylamayla)

Bir ızgara seçiminden, düzenleyiciyi açmadan silmeleri hazırlayabilirsin:

  • ⌘⌫ — seçili satırların bir silmesini hazırla
  • ⌘⇧⌫ — seçili satırları sil ve işle

Çakışmalar

İşlemeler iyimser kilitleme kullandığından, sen kendi değişikliğini hazırladıktan sonra başka biri tarafından işlenen bir değişiklik, sessizce üzerine yazılmak yerine algılanır. Kart satır içi bir afiş gösterir:

  • Sapma — uzak öğe altında değişti. Uzağın üzerine yeniden temellendir, yeniden inceleyebilmen için temel çizgiyi yeniler ya da değişikliği İptal et.
  • Uzakta silindi — öğe artık mevcut değil. Değişikliği iptal et.
  • Ağ kullanılamıyor — işleme DynamoDB'ye ulaşamadı. Yeniden dene ya da iptal et.

Bir işleme, ilk başarısız toplu işlemde durur — daha önceki başarılı toplu işlemler yazılı kalır, gerisi denenmez ve başarısızlıklar çözülecek çakışmalar olarak yüzeye çıkar.

İşlemeleri ne engeller

Bazı durumlar salt okunurdur ve hazırlayabilir ama işleyemez — en önemlisi süresi dolmuş ya da salt okunur bir lisans. Hazırlama yine de çalışır; uygulama etkin bir duruma döndüğünde işleme yeniden açılır.

Güncellendi