Skip to content

Commit bdf7c57

Browse files
committed
refactor: migrate previous batching/aggregate work to current development
feat: use the aggregate/prefetch logic with VolatileReadData. By default, `VolatileReadData.from` now uses AggregatingSliceTrackingLazyRead. This is useful to ensure the default VolatileReadData behaves reasonably even for reading many chunks from the same shard.
1 parent 232846c commit bdf7c57

19 files changed

Lines changed: 156 additions & 341 deletions

src/main/java/org/janelia/saalfeldlab/n5/readdata/VolatileReadData.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.janelia.saalfeldlab.n5.readdata;
22

3-
import java.io.InputStream;
43
import org.janelia.saalfeldlab.n5.N5Exception.N5IOException;
4+
import org.janelia.saalfeldlab.n5.readdata.slices.AggregatingSliceTrackingLazyRead;
55

66
/**
77
* During its life-time, the content of a {@code VolatileReadData} should not be
@@ -29,7 +29,8 @@ public interface VolatileReadData extends ReadData, AutoCloseable {
2929
* @return a new VolatileReadData
3030
*/
3131
static VolatileReadData from(final LazyRead lazyRead) {
32-
return new LazyReadData(lazyRead);
32+
final LazyRead aggregatingLazyRead = new AggregatingSliceTrackingLazyRead(lazyRead);
33+
return new LazyReadData(aggregatingLazyRead);
3334
}
3435

3536
}

src/main/java/org/janelia/saalfeldlab/n5/readdata/kva/KvaPlayground.java

Lines changed: 0 additions & 69 deletions
This file was deleted.

src/main/java/org/janelia/saalfeldlab/n5/readdata/kva/LazyRead.java

Lines changed: 0 additions & 64 deletions
This file was deleted.

src/main/java/org/janelia/saalfeldlab/n5/readdata/kva/LazyReadData.java

Lines changed: 0 additions & 136 deletions
This file was deleted.

src/main/java/org/janelia/saalfeldlab/n5/readdata/kva/VolatileReadData.java

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/main/java/org/janelia/saalfeldlab/n5/readdata/segment/DefaultSegmentedReadData.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,17 @@
2828
*/
2929
package org.janelia.saalfeldlab.n5.readdata.segment;
3030

31+
import org.janelia.saalfeldlab.n5.N5Exception.N5IOException;
32+
import org.janelia.saalfeldlab.n5.readdata.Range;
33+
import org.janelia.saalfeldlab.n5.readdata.ReadData;
34+
3135
import java.io.InputStream;
3236
import java.io.OutputStream;
3337
import java.nio.ByteBuffer;
3438
import java.util.ArrayList;
3539
import java.util.Collection;
3640
import java.util.Collections;
3741
import java.util.List;
38-
import org.janelia.saalfeldlab.n5.N5Exception.N5IOException;
39-
import org.janelia.saalfeldlab.n5.readdata.Range;
40-
import org.janelia.saalfeldlab.n5.readdata.ReadData;
4142

4243
/**
4344
* Implementation of a {@link SegmentedReadData} wrapper around an existing {@code ReadData} delegate.

src/main/java/org/janelia/saalfeldlab/n5/readdata/kva/AggregatingSliceTrackingLazyRead.java renamed to src/main/java/org/janelia/saalfeldlab/n5/readdata/slices/AggregatingSliceTrackingLazyRead.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
package org.janelia.saalfeldlab.n5.readdata.kva;
2-
3-
import java.util.Collection;
1+
package org.janelia.saalfeldlab.n5.readdata.slices;
42

53
import org.janelia.saalfeldlab.n5.N5Exception.N5IOException;
4+
import org.janelia.saalfeldlab.n5.readdata.LazyRead;
65
import org.janelia.saalfeldlab.n5.readdata.Range;
76

7+
import java.util.Collection;
8+
89
public class AggregatingSliceTrackingLazyRead extends SliceTrackingLazyRead {
910

1011
public AggregatingSliceTrackingLazyRead(final LazyRead delegate) {

src/main/java/org/janelia/saalfeldlab/n5/readdata/kva/DefaultSliceTrackingLazyRead.java renamed to src/main/java/org/janelia/saalfeldlab/n5/readdata/slices/DefaultSliceTrackingLazyRead.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
package org.janelia.saalfeldlab.n5.readdata.kva;
1+
package org.janelia.saalfeldlab.n5.readdata.slices;
22

3-
import java.util.Collection;
43
import org.janelia.saalfeldlab.n5.N5Exception.N5IOException;
4+
import org.janelia.saalfeldlab.n5.readdata.LazyRead;
55
import org.janelia.saalfeldlab.n5.readdata.Range;
66

7+
import java.util.Collection;
8+
79
public class DefaultSliceTrackingLazyRead extends SliceTrackingLazyRead {
810

911
public DefaultSliceTrackingLazyRead(final LazyRead delegate) {

src/main/java/org/janelia/saalfeldlab/n5/readdata/kva/SliceTrackingLazyRead.java renamed to src/main/java/org/janelia/saalfeldlab/n5/readdata/slices/SliceTrackingLazyRead.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
package org.janelia.saalfeldlab.n5.readdata.kva;
1+
package org.janelia.saalfeldlab.n5.readdata.slices;
2+
3+
import org.janelia.saalfeldlab.n5.N5Exception.N5IOException;
4+
import org.janelia.saalfeldlab.n5.readdata.LazyRead;
5+
import org.janelia.saalfeldlab.n5.readdata.Range;
6+
import org.janelia.saalfeldlab.n5.readdata.ReadData;
27

38
import java.io.IOException;
49
import java.util.ArrayList;
510
import java.util.Collection;
611
import java.util.List;
7-
import org.janelia.saalfeldlab.n5.N5Exception.N5IOException;
8-
import org.janelia.saalfeldlab.n5.readdata.Range;
9-
import org.janelia.saalfeldlab.n5.readdata.ReadData;
1012

1113
public abstract class SliceTrackingLazyRead implements LazyRead {
1214

src/main/java/org/janelia/saalfeldlab/n5/readdata/kva/Slices.java renamed to src/main/java/org/janelia/saalfeldlab/n5/readdata/slices/Slices.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
package org.janelia.saalfeldlab.n5.readdata.kva;
1+
package org.janelia.saalfeldlab.n5.readdata.slices;
2+
3+
import org.janelia.saalfeldlab.n5.readdata.Range;
24

35
import java.util.Collections;
46
import java.util.Comparator;
57
import java.util.List;
6-
import org.janelia.saalfeldlab.n5.readdata.Range;
78

89
class Slices {
910

0 commit comments

Comments
 (0)