Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding the MBTiles BlobStore #388

Merged
merged 1 commit into from
Jul 8, 2016
Merged

Conversation

nmco
Copy link

@nmco nmco commented Jun 8, 2016

Associated proposal: https://github.com/GeoWebCache/geowebcache/wiki/MBTiles-BlobStore
This pull request incldues the blob store documentation.


MBTiles specification only supports JPEG and PNG formats and projection EPSG:3857 is assumed. The implemented blob store will read and write MBTiles files compliant with the specification but will also be able to write and read MBTiles files that use others formats and projections.

Using the MBTiles blob store will bring several benefits at the cost of some performance loss. We will be able to store our data with a significantly smaller number of files, which will help us avoid file system headaches and help us managing our data. In some cases the stored data will be more compacted reducing the size of the data on disk.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation tries not to use "we" or "you" but use a generic third person, this section should be reworked.
E.g. "The MBTiles storage uses a significantly smaller number of files, which results in easier data handling (e.g., backups, moving tiles between environments)".

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

compacted -> compact

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

@aaime
Copy link
Member

aaime commented Jun 24, 2016

Just measured code coverage with the Eclipse EclEmma plugin, 75%, nicely done, it puts the module above the average code coverage in GWC.


private static Log LOGGER = LogFactory.getLog(Utils.class);

private static final ThreadLocal<String> LOG_ID = new ThreadLocal<>();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see nothing cleaning this thread local at the end of the request, this might cause cross request pollution and will make it harder to cleanly un-deploy the application.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

@nmco
Copy link
Author

nmco commented Jul 7, 2016

I updated the pull request with your suggestions ... thanks for the deep and detailed review !


When performing a truncate of the cache the store will try to remove the whole database file avoiding to create fragmented space. This is not suitable for all the situations and is highly dependent on the database files granularity. The configuration property ``eagerDelete`` allows the user to disable or deactivate this feature which is disabled by default.

When a truncate request by tile range is received all the the databases files that contains tiles that belong to the tile range are identified. If eager delete is set to true those databases files are deleted otherwise we perform a single delete query for each file.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah hem, leftover "we" usage

@aaime
Copy link
Member

aaime commented Jul 8, 2016

Thread local gone, build is green... merging

@aaime aaime merged commit 379bf31 into GeoWebCache:master Jul 8, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants