SuccessChanges

Summary

  1. Reduce memory footprint of OjbectId (details)
  2. Reduce memory footprint of RevTree default implementation (details)
  3. Add methods to RevTree to allow traversing its contents without (details)
  4. Use the new RevTree methods where appropriate (details)
  5. Use ObjectId.readFrom()/writeTo() where appropriate (details)
Commit 0ec6b82b9c8b038358a2622e11baa65a5b0ff1a2 by groldan
Reduce memory footprint of OjbectId
By storing the 20 bytes of the SHA1 hash in an ObjectId as an int and
two longs, instead of a byte[20], the memory footprint of a single
ObjectId is reduced from ~56 bytes to ~32 bytes.
Signed-off-by: Gabriel Roldan <groldan@boundlessgeo.com>
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/ObjectId.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/RevObjects.java
The file was modifiedsrc/api/src/test/java/org/locationtech/geogig/model/ObjectIdTest.java
Commit 0fba8d497a5785de35c62829c4bc6e977b93fff2 by groldan
Reduce memory footprint of RevTree default implementation
Avg size of leaf tree with 512 entries: before 107960 bytes, after 87440
bytes. Avg size of buckets tree with 32 entries: before 4624 bytes,
after 3304 bytes.
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/ObjectId.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/Bucket.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/Node.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/RevObjects.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/model/impl/AbstractRevObject.java
Commit d4d04536c0909f82c42ff583bc11588dd30282c3 by groldan
Add methods to RevTree to allow traversing its contents without
potentially creating defensive copies
Signed-off-by: Gabriel Roldan <groldan@boundlessgeo.com>
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/RevTree.java
Commit d0f18ae93d8745c4591e134b1bc437c728720ece by groldan
Use the new RevTree methods where appropriate
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/model/internal/ClusteringStrategy.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/model/internal/TreeCache.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/model/internal/DAGNode.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/diff/DepthTreeIterator.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/repository/impl/DepthSearch.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/model/internal/QuadTreeClusteringStrategy.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/datastream/v2_3/BucketSet.java
The file was modifiedsrc/web/api/src/main/java/org/locationtech/geogig/web/api/ResponseWriter.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/RevTree.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/datastream/FormatCommonV2.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/model/impl/RevTreeImpl.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/repository/impl/SpatialOps.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/HashObjectFunnels.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/RevObjects.java
The file was modifiedsrc/web/api/src/main/java/org/locationtech/geogig/remote/http/PostOrderIterator.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/datastream/v2_3/RevTreeFormat.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/diff/PreOrderDiffWalk.java
Commit 6d5547b5d9c5fab6cc9821cc8f5dce6c2f46842f by groldan
Use ObjectId.readFrom()/writeTo() where appropriate
Avoid unnecessary heap garbage in creating temporary byte arrays when
ObjectId.readFrom()/writeTo() can be used instead.
Replace calls of deprecated ObjectId.createNoClone() by
ObjectId.create()
Signed-off-by: Gabriel Roldan <groldan@boundlessgeo.com>
The file was modifiedsrc/core/src/test/java/org/locationtech/geogig/model/impl/RevObjectTestSupport.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/RevObjects.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/datastream/FormatCommonV2_2.java
The file was modifiedsrc/storage/rocksdb/src/main/java/org/locationtech/geogig/rocksdb/RocksdbConflictsDatabase.java
The file was modifiedsrc/web/api/src/test/java/org/locationtech/geogig/spring/controller/TaskControllerTest.java
The file was modifiedsrc/api/src/test/java/org/locationtech/geogig/model/HashObjectFunnelsTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/datastream/v2_3/BucketSet.java
The file was modifiedsrc/storage/postgres/src/main/java/org/locationtech/geogig/storage/postgresql/v9/PGObjectStore.java
The file was modifiedsrc/web/api/src/test/java/org/locationtech/geogig/spring/controller/BatchObjectsControllerTest.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/datastream/DataStreamSerializationFactoryV1.java
The file was modifiedsrc/storage/rocksdb/src/main/java/org/locationtech/geogig/rocksdb/RocksdbGraphDatabase.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/HashObjectFunnels.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/model/ObjectId.java
The file was modifiedsrc/api/src/main/java/org/locationtech/geogig/repository/IndexInfo.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/datastream/FormatCommonV1.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/datastream/FormatCommonV2.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/merge/MergeStatusBuilder.java
The file was modifiedsrc/storage/rocksdb/src/main/java/org/locationtech/geogig/rocksdb/RocksdbIndexDatabase.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/plumbing/HashObject.java
The file was modifiedsrc/core/src/main/java/org/locationtech/geogig/storage/datastream/v2_3/DataBuffer.java
The file was modifiedsrc/web/api/src/main/java/org/locationtech/geogig/remote/http/BinaryPackedObjects.java
The file was modifiedsrc/storage/rocksdb/src/main/java/org/locationtech/geogig/rocksdb/RocksdbObjectStore.java
The file was modifiedsrc/web/api/src/main/java/org/locationtech/geogig/spring/service/LegacyApplyChangesService.java