2016-03-29 16 views
0

10 milyon anahtar değer eklemek için neredeyse 70 dakika süren Aerospike. Ben eklemek için takip adımlar şunlardır:Aerospike 10 milyon anahtar değer eklemek için çok uzun sürüyor

  1. Ben

  2. kayıt

  3. başlangıç ​​java kodu için 10 milyon defa yineleme ve çağrı aerospike UDF aerospike sunucuda UDF aerospike bellekte tüm anahtar değere sahip Her anahtar ve değer için modül.

  4. Udf içinde, anahtarın zaten mevcut olup olmadığını kontrol ediyorum. Eğer evet ise, aksi takdirde güncelleyin.

  5. Ben çoğaltma faktörü ile 2 aerospike sunucusu var 2.

yazma performansını artırmak veya toplu yazma gerçekleştirmek için herhangi bir yolu var mı. Aerospike'ın parti yazmayı desteklemediğini biliyorum. Optimize edilmiş yazma işlemine yönelik herhangi bir öneri. i yürütmek için senkronizasyon Aerospike istemcisi kullanarak yerine

private void put(String namespace, String setName, String binName, String keyVlaue, List<Integer> listIdsToBeAdd, List<Integer> listIdToBeRemoved) { 
    Key key = new Key(namespace, setName, keyVlaue); 
    getAerospikeClient().execute(writePolicy, key, "aerospike_udf", "update_record", Value.get(listIdsToBeAdd), Value.get(listIdToBeRemoved), Value.get(binName)); 
} 

UDF modülünü

function update_record(record, list1, list2, bin_name) 
    local store_list = record[bin_name] 
    -- get a list from database record. Create one if it doesn't exits 
    if store_list == nil then 
    store_list = map() 
    end 

    if list2 then 
    for i=1, #list2 do 
     map.remove(store_list, list2[i]) 
    end 
    end 

    if list1 then 
    for i=1, #list1 do 
     store_list[list1[i]] = 1 
    end 
    end 

    if map.size(store_list) == 0 then 
    record[bin_name] = nil 
    else 
    record[bin_name] = store_list 
    end 

    if not aerospike:exists(record) then 
    aerospike:create(record) 
    else 
    aerospike:update(record) 
    end 
end 
+0

Bunu yeniden üreten kısa bir örnek gönderir misiniz? Yanlış yaptığınız bir şey varsa, kodda görebiliriz. –

+0

Neden biri oy verdi? Bu çok basit, tekrarlanan soru mu, alakasız mı, yoksa o kişi bile çözümü biliyor mu? – visingh

+1

@PeterLawrey Soruyu güncelledim. – visingh

cevap

1

kullanılan

Kod i zaman uyumsuz Aerospike istemcisi kullanıyorsanız başlar. Şimdi ~ 2.6 dk içinde 10 milyon kayıt ekleyebildiğim.

İlgili konular