Discussion:
streaming a file into the repository - how to make faster
mjcowley
2013-09-27 22:13:56 UTC
Permalink
I am using SVNKit 1.3.5 and Subversion 1.6.15.
I stream files into the repository using the sendDelta method below. I am
trying to improve the streaming speed.
Is there a different method that is faster or a way to set a larger buffer
size?
What if any is the pickup in speed if I install Subversion 1.7 with SVNKit
relatively?
Any ideas would be appreciated.

Thanks
MJ





public void streamIn(final InputStream anInputStream) throws
EmsRepositoryIOException {

// stream content into the configuration file at relative path
final SVNDeltaGenerator deltaGenerator = new SVNDeltaGenerator();
final String relativePath = relativePath(getConfigurationFile());
try {

// stream the differences to the repository calculating new
// checksum
final String md5CheckSum = deltaGenerator.sendDelta(
relativePath, anInputStream,
getCommitEditor(), true);

getConfigurationFile().setCheckSum(md5CheckSum);

} catch (final Exception e) {

throw new EmsRepositoryIOException(
"Exception thrown while trying to stream file content deltas into
repository for "
+ relativePath,
e);
} finally {

try {
if (anInputStream != null) {
anInputStream.close();
}
} catch (final IOException e2) {
LOG.warn(
"IOException thrown while trying to close input stream. exception
ignored and processing continues.",
e2);
}

}
}



--
View this message in context: http://subversion.1072662.n5.nabble.com/streaming-a-file-into-the-repository-how-to-make-faster-tp185037.html
Sent from the SVNKit - Users mailing list archive at Nabble.com.
Alexander Kitaev
2013-10-07 17:06:49 UTC
Permalink
Hello,

I think your approach is the fastest - you may set larger "window" size for
generated delta when constructing SVNDeltaGenerator (default is 100K), but
I tod not think it would affect performance. You may skip checksum
computation if possible. Using latest version of SVNKit (1.7.11 or
1.8.0-beta) may improve performance as a lot of fixes and improvements has
been made since version 1.3.5 of SVNKit.

Alexander Kitaev,
TMate Software,
http://subgit.com/ - Svn to Git Migration!
http://svnkit.com/ - Java [Sub]Versioning Library!
http://hg4j.com/ - Java Mercurial Library!
http://sqljet.com/ - Java SQLite Library!
Post by mjcowley
I am using SVNKit 1.3.5 and Subversion 1.6.15.
I stream files into the repository using the sendDelta method below. I am
trying to improve the streaming speed.
Is there a different method that is faster or a way to set a larger buffer
size?
What if any is the pickup in speed if I install Subversion 1.7 with SVNKit
relatively?
Any ideas would be appreciated.
Thanks
MJ
public void streamIn(final InputStream anInputStream) throws
EmsRepositoryIOException {
// stream content into the configuration file at relative path
final SVNDeltaGenerator deltaGenerator = new SVNDeltaGenerator();
final String relativePath =
relativePath(getConfigurationFile());
try {
// stream the differences to the repository calculating new
// checksum
final String md5CheckSum =
deltaGenerator.sendDelta(
relativePath, anInputStream,
getCommitEditor(), true);
getConfigurationFile().setCheckSum(md5CheckSum);
} catch (final Exception e) {
throw new EmsRepositoryIOException(
"Exception thrown while trying to
stream file content deltas into
repository for "
+ relativePath,
e);
} finally {
try {
if (anInputStream != null) {
anInputStream.close();
}
} catch (final IOException e2) {
LOG.warn(
"IOException thrown while
trying to close input stream. exception
ignored and processing continues.",
e2);
}
}
}
--
http://subversion.1072662.n5.nabble.com/streaming-a-file-into-the-repository-how-to-make-faster-tp185037.html
Sent from the SVNKit - Users mailing list archive at Nabble.com.
Continue reading on narkive:
Loading...