Bazel sistemi uzun ömürlü bir sunucu işlemi olarak uygulanmıştır. Bu sayede
toplu odaklı bir uygulama ile mümkün olmayan birçok optimizasyon gerçekleştirmeyi,
BUILD dosyalarının önbelleğe alınması, bağımlılık grafikleri ve
yardımcı olur. Bu şekilde artımlı derlemelerin hızı artar ve
aynı önbelleği paylaşmak için build
ve query
gibi farklı komutlar
yaparak sorguların çok hızlı olmasını sağlayabilir. Her sunucu en fazla bir öğeyi işleyebilir
her seferinde çağrı; eşzamanlı başka çağrılarda spam'e yol açan
(bkz. --block_for_lock
)
bazel
çalıştırdığınızda istemciyi çalıştırmış olursunuz. İstemci sunucuyu bulur
temel alınan çıkış tabanı
temel çalışma alanı dizininin yolu ve kullanıcı kimliğinize göre belirlenir. Dolayısıyla,
birden fazla çalışma alanı derlerseniz birden fazla çıktı tabanınız olur ve
birden fazla Bazel sunucusu işlemi olabilir. Aynı iş istasyonundaki birden fazla kullanıcı
çıkış tabanları farklı olacağından aynı çalışma alanında eşzamanlı olarak derleme
(farklı kullanıcı kimlikleri).
İstemci çalışan bir sunucu örneği bulamazsa yeni bir örnek başlatır. Google
bunu, çıktı tabanının mevcut olup olmadığını kontrol ederek ve alev oluştuğunu ima ederek
arşiv zaten açıldı. Aksi takdirde, çıktı tabanı yoksa
istemci arşivin dosyalarını açar ve mtime
öğelerini 9 yıllık bir tarihe ayarlar
daha avantajlı bir konumda olursunuz. Yüklendikten sonra, istemcinin mtime
sıkıştırılmış dosyalar, yüklemede değişiklik olmaması için en uzak tarihe eşittir
olmuştur.
Sunucu işlemi belirli bir süre (varsayılan olarak 3 saat,
Bu boyut, --max_idle_secs
başlangıç seçeneği kullanılarak değiştirilebilir). Çoğunlukla
kısmen, çalışan bir sunucu olduğu gerçeği kullanıcı tarafından görülemez, ancak
bunu göz önünde bulundurmak
faydalı olacaktır. Örneğin, komut dosyalarını çalıştırıyorsanız
başka dizinlerde birçok otomatik derleme gerçekleştiren
çok fazla boşta sunucu biriktirmediğinizden emin olmak için; bu işlemi
söz konusu reklamları açıkça kapatmanızı veya
kısa bir zaman aşımı süresi oluşmuştur.
Bazel sunucu işleminin adı, ps x
veya ps -e f
çıkışında görünür
bazel(dirname)
biçimindedir; burada dirname,
çalışma alanı dizininizin kökünü kapsayan dizin. Örneğin:
ps -e f
16143 ? Sl 3:00 bazel(src-johndoe2) -server -Djava.library.path=...
Bu da hangi sunucu işleminin belirli bir veri kümesine ait
çalışmayacaktır. (ps
için diğer bazı seçeneklerde, Bazel sunucusuna
işlemleri yalnızca java
olarak adlandırılabilir.) Bazel sunucuları
shutdown komutu kullanılır.
bazel
çalışırken istemci öncelikle sunucunun uygun
sürüm; yoksa sunucu durdurulur ve yeni bir sunucu başlatılır. Böylece proje daha
uzun süreli bir sunucu işleminin kullanılması, doğru işleme
sürüm oluşturma.