Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

64
LINES

< > BotCompany Repo | #1013307 // ai_compactLiveDB - just store all triples from memory, no attempts at cleaning up the DB

JavaX fragment (include)

static void ai_compactLiveDB(bool withPhase2) {
  new ai_compactLiveDB_Class c;
  c.phase1();
  if (!withPhase2) ret;
  print("PHASE 2 in 5 SECONDS");
  sleepSeconds(5);
  c.phase2();
}

sclass ai_compactLiveDB_Class {
  File mainLog, fTriples, file, file2;

  void phase1() ctex {
    // First, rotate webs-made.txt
    
    mainLog = programFile(#1010745, "webs-made.txt");
    rotateLogFile(mainLog);
    
    File tripelizedDir = programDir(#1010745, "tripelized");
    fTriples = programFile(#1010745, "triples.gz");
  
    // Save triples
    
    file = new File(tripelizedDir, "triples.new.gz");
    OutputStream out = newGZIPOutputStream(file);
    int n = ai_writeTripleFile(ai_allTriples(), out);
    out.close();

    // Save non-triples (don't have any)
    
    file2 = new File(tripelizedDir, "webs-made.new.gz");
    deleteFile(file2);

    print("Stored " + nTriple(n) + " in " + f2s(file) + ", nothing in " + f2s(file2));
  }
 
  void phase2 {
    print("PHASE 2.");
    
    // Move data to backups
    
    File fBackups = programFile(#1010745, "backups");
    for (File f : earlierPartsOfLogFile(mainLog)) {
      int n = 1;
      File p;
      while ((p = newFile(fBackups, dropSuffix(".gz", f.getName()) + ".part" + n + ".gz")).exists()) ++n;
      renameFile_assertTrue(f, p);
    }
    
    // Backup triples.gz
    
    int n = 1;
    File p;
    while ((p = newFile(fBackups, dropSuffix(".gz", fTriples.getName()) + ".part" + n + ".gz")).exists()) ++n;
    renameFile_assertTrue(fTriples, p);
    
    // Rename main files
    renameFile_assertTrue(file, fTriples);
    if (file2.exists())
      renameFile_assertTrue(file2, programFile(#1010745, "webs-made.txt.part1.gz"));
    
    print("DONE.");
  }
}

Author comment

Began life as a copy of #1011778

download  show line numbers  debug dex  old transpilations   

Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1013307
Snippet name: ai_compactLiveDB - just store all triples from memory, no attempts at cleaning up the DB
Eternal ID of this version: #1013307/9
Text MD5: 743dd532dd44f3de97a65e7b3872cdeb
Author: stefan
Category: javax / a.i.
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2017-12-31 20:42:49
Source code size: 1795 bytes / 64 lines
Pitched / IR pitched: No / No
Views / Downloads: 428 / 463
Version history: 8 change(s)
Referenced in: #1006654 - Standard functions list 2 (LIVE, continuation of #761)