{"action":"created","issue":{"url":"https://api.github.com/repos/cockroachdb/cockroach/issues/6400","repository_url":"https://api.github.com/repos/cockroachdb/cockroach","labels_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/6400/labels{/name}","comments_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/6400/comments","events_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/6400/events","html_url":"https://github.com/cockroachdb/cockroach/issues/6400","id":151707219,"number":6400,"title":"storage: Enforce range size limit more strictly","user":{"login":"bdarnell","id":160562,"avatar_url":"https://avatars.githubusercontent.com/u/160562?v=3","gravatar_id":"","url":"https://api.github.com/users/bdarnell","html_url":"https://github.com/bdarnell","followers_url":"https://api.github.com/users/bdarnell/followers","following_url":"https://api.github.com/users/bdarnell/following{/other_user}","gists_url":"https://api.github.com/users/bdarnell/gists{/gist_id}","starred_url":"https://api.github.com/users/bdarnell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdarnell/subscriptions","organizations_url":"https://api.github.com/users/bdarnell/orgs","repos_url":"https://api.github.com/users/bdarnell/repos","events_url":"https://api.github.com/users/bdarnell/events{/privacy}","received_events_url":"https://api.github.com/users/bdarnell/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-04-28T18:08:09Z","updated_at":"2016-04-28T18:13:12Z","closed_at":null,"body":"On the beta cluster, we have a range that for some reason failed to split for a long time (for reasons that are still unclear). This cluster is currently configured to split at 6MB; this range had managed to grow to 6GB. Attempting to split such a huge range can cause other problems (such as blocking for a long time while it recomputes range stats). We should impose some sort of limit to ensure that if we do have trouble splitting a range, it won't continue growing without bound. For example, we could block all writes to a range that is more than 2x or 3x the configured split limit (except those writes necessary to perform a split)."},"comment":{"url":"https://api.github.com/repos/cockroachdb/cockroach/issues/comments/215515067","html_url":"https://github.com/cockroachdb/cockroach/issues/6400#issuecomment-215515067","issue_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/6400","id":215515067,"user":{"login":"tschottdorf","id":5076964,"avatar_url":"https://avatars.githubusercontent.com/u/5076964?v=3","gravatar_id":"","url":"https://api.github.com/users/tschottdorf","html_url":"https://github.com/tschottdorf","followers_url":"https://api.github.com/users/tschottdorf/followers","following_url":"https://api.github.com/users/tschottdorf/following{/other_user}","gists_url":"https://api.github.com/users/tschottdorf/gists{/gist_id}","starred_url":"https://api.github.com/users/tschottdorf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tschottdorf/subscriptions","organizations_url":"https://api.github.com/users/tschottdorf/orgs","repos_url":"https://api.github.com/users/tschottdorf/repos","events_url":"https://api.github.com/users/tschottdorf/events{/privacy}","received_events_url":"https://api.github.com/users/tschottdorf/received_events","type":"User","site_admin":false},"created_at":"2016-04-28T18:13:12Z","updated_at":"2016-04-28T18:13:12Z","body":"In your opinion, what are the primary reasons for such a range split to be problematic? If we split chunks off on the right side, the recomputation should be ok (since we recompute only one half - if that's always the small one, seems fine).\r\n\r\nThe reason I'm asking is because preventing huge ranges also means losing service, which is bad. Also, there may be use cases for huge ranges, for example bulk loading a large initial data set which is only slowed down by the presence of multiple ranges on the system, and which would benefit from setting an infinite max range size.\r\n\r\nWe could invest that energy in writing a test that lets the SplitQueue loose on a ~10gb range and making sure that it works instead."}}