> On Nov. 21, 2014, 1:09 a.m., Maxim Khutornenko wrote: > > src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java, > > line 92 > > <https://reviews.apache.org/r/28306/diff/1/?file=771713#file771713line92> > > > > Mind commenting on the algorithm here? Why the magic "-2"? > > Kevin Sweeney wrote: > Not sure what I'd say there that doesn't risk contradicting the code > below - we don't usually comment loop variables and the old version had the > same amount of commenting. > > Maxim Khutornenko wrote: > I just find it harder to follow when I see anything less than -1 as the > initial condition. Why not starting with -1 (to account for the header) and > then increment i at the end of computeNext()? > > Kevin Sweeney wrote: > Each branch short-circuits so I'd have to have a result intermediate > value. I don't find that more readable > > ```java > byte[] result; > if (i == -1) { > result = header; > } else if (...) { > result = encode(...); > } else { > return endOfFile(); > } > > i++; > return result; > ```
I actually find it more readable as your if-else-if-else eliminates the need to short-circuit. Anyway, just a nit that forced me to pause for awhile. - Maxim ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/28306/#review62481 ----------------------------------------------------------- On Nov. 21, 2014, 1:10 a.m., Kevin Sweeney wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/28306/ > ----------------------------------------------------------- > > (Updated Nov. 21, 2014, 1:10 a.m.) > > > Review request for Aurora, David McLaughlin and Bill Farner. > > > Bugs: AURORA-930 > https://issues.apache.org/jira/browse/AURORA-930 > > > Repository: aurora > > > Description > ------- > > Stream frame chunks instead of preallocating them. > > This avoids allocating an entire additional snapshot worth of heap during > entry serialization, reducing overall heap impact of the serializer from > 2*sizeof(serialized-entry) to sizeof(serialized-entry)+chunkSize. > > Further optimizations out-of-scope for this change: > > * Make the returned iterator mutate a fixed-size buffer (for GC pressure > avoidance). > * Change the log format so that FrameHeader doesn't need to know the size and > checksum of the serialized data ahead-of-time (maybe write it as a trailer). > > > Diffs > ----- > > src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java > f4fa1cb740633ced529c1b5fd9f18abba8944571 > > src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java > cb95d8996a934751745f423b79279266d73b7722 > src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java > c90389433d81dd72756c659736e38fd9f66fcb35 > > Diff: https://reviews.apache.org/r/28306/diff/ > > > Testing > ------- > > ./gradlew -Pq build > > > Thanks, > > Kevin Sweeney > >