Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/17/09 13:49:05 (15 years ago)
Author:
gkronber
Message:

Removed lazy loading of problem data and made adds of datasets and models atomic. #656 (CEDMA server should handle only one data set (problem) at a time)

Location:
trunk/sources/HeuristicLab.CEDMA.Core/3.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.CEDMA.Core/3.3/DataSet.cs

    r2047 r2053  
    4747    public Problem Problem {
    4848      get {
    49         // lazy loading of problem from DB
    50         if (problem == null) {
    51           var persistedData = Store.Query(
    52             "<" + Ontology.CedmaNameSpace + Guid + "> <" + Ontology.SerializedData.Uri + "> ?SerializedData .", 0, 10);
    53           if (persistedData.Count() == 1) {
    54             Literal persistedLiteral = (Literal)persistedData.First().Get("SerializedData");
    55             this.problem = (Problem)PersistenceManager.RestoreFromGZip(Convert.FromBase64String((string)persistedLiteral.Value));
    56           } else
    57             this.problem = new Problem(); // no entry in the DB => create a new problem
    58         }
    5949        return problem;
    6050      }
     
    7161      name = "Data set";
    7262      activated = false;
     63      problem = new Problem();
    7364    }
    7465
     
    7869      guid = new Guid(dataSetEntity.Uri.Remove(0, Ontology.CedmaNameSpace.Length));
    7970      name = guid.ToString();
     71      var persistedData = Store.Query(
     72        "<" + Ontology.CedmaNameSpace + Guid + "> <" + Ontology.SerializedData.Uri + "> ?SerializedData .", 0, 10);
     73      if (persistedData.Count() == 1) {
     74        Literal persistedLiteral = (Literal)persistedData.First().Get("SerializedData");
     75        problem = (Problem)PersistenceManager.RestoreFromGZip(Convert.FromBase64String((string)persistedLiteral.Value));
     76      } else problem = new Problem();
    8077      activated = true;
    8178    }
     
    8380    public void Activate() {
    8481      Entity myEntity = new Entity(Ontology.CedmaNameSpace + Guid);
    85       Store.Add(new Statement(myEntity, Ontology.InstanceOf, Ontology.TypeDataSet));
    86       Store.Add(new Statement(myEntity, Ontology.SerializedData, new Literal(Convert.ToBase64String(PersistenceManager.SaveToGZip(problem)))));
    87       Store.Add(new Statement(myEntity, Ontology.Name, new Literal(name)));
     82      Store.AddRange(
     83        new Statement[] {
     84          new Statement(myEntity, Ontology.InstanceOf, Ontology.TypeDataSet),
     85          new Statement(myEntity, Ontology.SerializedData, new Literal(Convert.ToBase64String(PersistenceManager.SaveToGZip(problem)))),
     86          new Statement(myEntity, Ontology.Name, new Literal(name))
     87        });
    8888      activated = true;
    8989    }
  • trunk/sources/HeuristicLab.CEDMA.Core/3.3/StoreProxy.cs

    r1858 r2053  
    7676    }
    7777
     78    public void AddRange(ICollection<Statement> statements) {
     79      ExecuteSavely(() => { store.AddRange(statements); return 1.0; });
     80    }
     81
    7882    public ICollection<VariableBindings> Query(ICollection<Statement> query, int page, int pageSize) {
    7983      return ExecuteSavely(() => store.Query(query, page, pageSize));
Note: See TracChangeset for help on using the changeset viewer.