Lease'ler
Özet
- Bir lease, bulut kaynakları için bir veritabanı-işlemi karşılığıdır. Bir lease açın, oluşturduğunuz her kaynağı
--lease <id>ile damgalayın, ardından lease'i commit (her şeyi tut) veya rollback (her şeyi at) ile kapatın. - Kaynak başına iki durum, hepsi bu: workspace-owned (kalıcı) veya lease-owned (geçici). Workspace-owned satırlar bir lease'e asla yeniden giremez — tek giriş yolu, oluşturma zamanında
--lease <id>'dir. - TTL güvenlik ağıdır. Kapatma çağrısı hiç gerçekleşmezse, platform lease'i sona erme anında otomatik geri alır, böylece terk edilen çalışmalar hesaplama sızdırmaz.
- Lease'ler agent korumalı alanıdır (sandbox): bir LLM (veya bir insan) bir lease içinde özgürce deney yapar — graf şekilleri, parametre değişimleri, deploy ve sökme — bu sırada workspace-owned durum dokunulmamış kalır ve temizlik otomatik gerçekleşir.
- Lease'ler aynı zamanda öngörülebilir bir toplu işleme yüzeyi olarak da hizmet eder: bir veri kümesini işleyen bir backend ayağa kaldırın, üretilen yapıtları yakalayın, tutmaya değer olanları Promote edin, geri kalanını geri alın. Sabitlenmiş girişler, sabitlenmiş runtime ve adreslenebilir çıktılar toplu işlemeyi yeniden üretilebilir kılar.
- Çoğu kullanıcı fiillere asla doğrudan dokunmaz.
ppl lease run --test=<manifest>, yaygın durum (bir manifestten canlı test) için tüm yaşam döngüsünü düzenler.
Bir lease gerçekte nedir
Bir lease, kısa ömürlü bir çalışmanın oluşturduğu kaynakları kapsar — bir aday prerelease, yüklenmiş bir fixture, bunları saran bir backend, bir runtime üzerinde bir deployment — böylece çalışma bittiğinde hepsi birlikte atılabilir, sızdırılmış hesaplama, depolama veya yetim graf satırları olmadan.
Alternatif, oluşturulan her kaynağı izlemek ve sonunda tek tek silmektir; bu durumda temizlik en son çalışır. Çalışma ortasında bir çökme, kapanan bir CI runner'ı veya bu adım yürütülmeden çalışmasını bitiren bir agent, temizliği yarım bırakır ve geride kalan kaynak, hesaplama tüketmeye devam edendir.
Lease, temizlik sınırını birinci sınıf bir nesne yapar. Lease bir kapsamdır: onu açın, kaynakları var oldukları anda oluşturma çağrılarına --lease <id> damgalayarak ekleyin, tek bir kararla kapatın. Commit, lease'teki her şeyi kalıcı ve workspace-owned yapar. Rollback, lease'teki her şeyi tek bir işlem olarak kaldırır. Kapatma hiç gerçekleşmezse, TTL onu sizin için kapatır, varsayılan olarak rollback ile, çünkü bilinmeyen durumu etrafta tutmak tehlikeli seçenektir.
Bir lease, bir veritabanı işlemiyle aynı şekle sahiptir: bir SQL veritabanındaki bağlantı-kopması ABORT'una uyan sona-ermede-ABORT, SQL'deki COMMIT/ROLLBACK'e uyan commit-veya-rollback seçimi, savepoint tarzı kısmi commit'lere uyan satır başına Promotion ve örtük ekleme olmaması, çünkü tek giriş yolu oluşturma zamanında --lease <id>'dir. İşlem anlamları doğrudan bulut kaynaklarına aktarılır.
Zihinsel model
ppl lease create ── BEGIN
│
│ ppl lease run / ppl file link --lease <lid>
│ ── INSERT, lease-owned
│ (version, fixture uploads, ephemeral
│ backend + deployment, all stamped with
│ the lease id at the moment they exist)
│
├── ppl lease commit <lid> ── COMMIT
│ → every owned row becomes workspace-owned,
│ lease closes
│
├── ppl lease rollback <lid> ── ROLLBACK
│ → every owned row deleted, lease closes
│
└── TTL elapses without close ── ABORT-on-disconnect
→ auto-rollback, lease closes
Sözleşme kısadır: bir satır, oluşturulduğu anda lease id ile damgalanır ve bu, bir satırın bir lease'e girmesinin tek yoludur. "Bu mevcut satırı sonradan bir lease'e ekle" işlemi yoktur ve bu yokluk bilinçlidir. Bir satır, var olduğu andan itibaren ya lease içindedir ya da sonsuza dek workspace-owned'dır. Üçüncü durum yoktur, yarış koşulu yoktur ve üzerinde akıl yürütülecek yarı damgalı satır yoktur.
Operasyonel izlenecek yol için Lease yaşam döngüsü ve bir lease'in tipik olarak tuttuğu deployment için Deployment'lar sayfalarına bakın.
Lease'lerin açtığı iki desen
Lease'lerin neden bir CLI temizlik betiği yerine birinci sınıf bir ilkel olarak var olduğunu anlamak için bu çerçeveyi kullanın.
İlk desen, yakalanan çıktılarla öngörülebilir toplu hesaplamadır. Yaygın bir şekil şudur: bir veri kümesini bir backend grafından geçirin, türetilmiş yapıtlar yazmasına izin verin (bir vektör indeksi, bir özellik tablosu, bir kırpılmış görüntü kümesi, bir model checkpoint'i), yapıtları tutun, geri kalan her şeyi atın. Lease'ler olmadan bu akış sızdırır — test backend'i, test deployment'ı ve geçici fixture'ların hepsi geride kalır ve onları daha sonra bulmak, workspace durumunu elle aramak demektir. Lease'lerle tüm düzenek tek bir damgalı kapsamdır: lease içinde deploy edin, toplu işlemeyi çalıştırın, çıktıları ada göre yakalayın, tutulan dosyaları lease'ten Promote edin, geri kalanını geri alın. Girişler sabitlenmişti, runtime sabitlenmişti ve çıktılar adreslenebilir, bu yüzden toplu işleme yeniden üretilebilir çünkü lease sınırı belirsizlikten kurtardı.
İkinci desen, **agent korumalı alanı (sandbox)**dır. CLI agent yüzeyinde yıkıcı işlemler kaldırılmıştır — agent modunda delete-everything fiili yoktur — bu da agent'a somut bir ihtiyaç bırakır: bir graf tasarımı üzerinde yineleme yapmak, parametre kombinasyonları denemek, bir adayı deploy etmek, atmak ve baştan başlamak, geride yetim backend'ler ve deployment'lar bırakmadan. Lease bu ihtiyacı karşılar. Agent bir lease açar, içinde çalışır ve bitirdiğinde geri alır. Agent lease'i kapatmadan çalışmasını bitirirse, TTL onu kapatır. Agent yüzeyinin açığa çıkarmadığı yıkıcı işlem, lease'in güvenli şekilde sağladığıdır, tam olarak agent'ın bu çalışma sırasında oluşturduğu kaynaklara kapsamlandırılmış. Workspace-owned durum lease'in erişiminin dışında kalır; lease, etrafındaki kapsamlandırılmış korumalı alandır.
Lease tasarımı bu iki desen yüzünden var. Test koşum takımı kolaylığı gerçektir ama ikincildir; temeldeki sözleşme, her geçici çalışmaya bir işlem sınırı vermektir, böylece temizlik otomatiktir ve çıktılar birinci sınıftır.
Dört yaşam döngüsü fiili
Bunu "lease'in kendisi ne yapabilir" kataloğu olarak kullanın.
Lease yaşam döngüsünde tam olarak dört fiil vardır ve bunlar doğrudan bir veritabanı işlemine eşlenir.
ppl lease create lease'i açar. Eninde sonunda deployment'ın ineceği runtime'ı, isteğe bağlı bir TTL'yi, isteğe bağlı bir etiketi alır ve lease ID'sini döndürür. Sonraki oluşturma çağrıları içeride binmek için kendilerini --lease <id> ile damgalar.
ppl lease promote <lid> --kind <k> --id <id> savepoint tarzı satır başına commit'tir. Tek bir lease-owned kaynağı alır ve onu hemen workspace-owned yapar, böylece lease'in geri kalanına ne olursa olsun sağ kalır. Bu, geri kalan lease tek kullanımlık kalırken bir yapıtı tutmak için doğru şekildir.
ppl lease commit <lid> lease'i her şeyi tutarak kapatır: hâlâ sahip olunan her satır tek bir atomik işlemde workspace-owned olur.
ppl lease rollback <lid> lease'i her şeyi atarak kapatır: hâlâ sahip olunan her satır tek bir atomik işlemde yok edilir. Daha önce Promote edilen her şey, zaten workspace-owned olduğu için sağ kalır.
Tamamlayıcı operasyonel fiiller sayıca daha azdır. wait, deployment yaşam döngüsünü akıtır ve anlamlı bir kodla çıkar (0 hazır için, 1 başarısız veya zaman aşımı için). debug, lease'in backend, deployment ve konteyner başına durumunun yapılandırılmış bir anlık görüntüsünü döndürür — bir lease başarısız olduğunda yapılacak ilk çağrı. set-result, otopsi için kapanıştan sağ kalan yapılandırılmış bir sonuç yükü kaydeder. collect-outputs, deployment'ı dosya-kaydetme anlamlarıyla söker ve yakalanan file_id'leri döndürür. list ve delete ev işleridir.
Fiil düzeyinde izlenecek yol için Lease yaşam döngüsü sayfasına bakın.
Kaynak başına durumlar
Platformdaki bir kaynağın tam olarak iki sahiplik durumu vardır ve lease tasarımı bu sadeliğe dayanır.
Workspace-owned, kalıcı durumdur. Kaynak --lease olmadan oluşturuldu, --lease ile oluşturulup sonra Promote edildi veya --lease ile oluşturuldu ve lease Commit edildi. Workspace'e sonsuza dek aittir (yıkıcı-işlemler sözleşmesi aracılığıyla bir şey onu açıkça silene kadar).
Lease-owned, geçici durumdur. Kaynak --lease <id> ile oluşturuldu ve hâlâ o açık lease içinde. Lease kapandığında, kaynak ya workspace-owned olur (commit) ya da yok edilir (rollback). TTL, lease-owned durumu sınırlar, böylece süresiz devam edemez; terk edilen lease'ler otomatik olarak geri alınır.
Üçüncü durum yoktur. "Lease'e bağlı ama korunsun" ara durumu yoktur. Workspace-owned satırları sonradan bir lease'e çeken bir adopt fiili yoktur. Minimalizm asıl noktadır — "bu kaynak geçici mi yoksa kalıcı mı" sorusunu her zaman noktasında belirsizlik içermeyen bir cevabı olan tek-bitlik bir soru yapar.
Güvenlik ağı olarak TTL, varsayılan olarak açık kapatma
Bir lease iki yoldan biriyle sona erer. TTL pasif kapatmadır: platform, TTL'si geçmiş herhangi bir lease'i otomatik olarak geri alır. Açık commit veya rollback, aktif kapatmadır: tut-veya-at kararını saati beklemek yerine hemen uygular.
Doğru varsayılan, açık kapatmadır. Kararı bilinçli kılar, lease listesini küçük tutar ve her satırın neden var olduğuna dair doğru bir kayıt tutar. TTL, kapatmadan önce biten çalışmaları kapsar ve bu çalışmalar norm değil, azınlık olmalıdır.
Rollback, commit yerine TTL varsayılanıdır, çünkü tehlikeli hata bilinmeyen durumu tutmaktır. Bir çalışma açık bir kapatma olmadan terk edildiğinde, platform çıktısını tutmaya değer olarak değerlendirmez; tutma kararı operatöre aittir ve onun yokluğu rollback'e çözülür.
Bunun yeri
Lease'ler, "bir çalışma için bazı kaynaklar oluşturdum" ile "hepsi sonradan güvenilir şekilde temizlendi" arasındaki boşluğu ele alır — bir projenin ömrü boyunca yetim durumun biriktiği boşluk. Bu boşluğa bir ad, bir işlem şekli ve bir güvenlik ağı vererek, platform temizliği her çalışmanın hatırlaması gereken bir adım yerine runtime'ın zorladığı bir sözleşme yapar. Maliyet, fazladan bir kavramdır (lease); karşılığında otomasyon, agent'lar, toplu işler ve canlı testlerin hepsi varsayılan olarak aynı temizlik disiplinini paylaşır.
İlgili
- Lease yaşam döngüsü — her fiilin operasyonel izlenecek yolu.
- Canlı backend ile test et — kanonik lease tüketicisi.
- Deployment'lar — bir lease'in deployment'ı neye benzer.
- Runtime'lar ve düğümler — bir lease'in deployment'ının nereye indiği.
- Backend'ler — lease'in inşa edip söktüğü graf.
- Davranışı kanıtla — kanıt döngüleri için izolasyon sınırı olarak lease'ler.