Reduce converter max batch size

Some popular hosters have quite low memory limits.. Fixes #730
This commit is contained in:
Brokkonaut
2018-11-27 06:15:36 +01:00
parent d5ee15ebba
commit 71527530f2

View File

@@ -32,7 +32,8 @@ import java.util.regex.Pattern;
class Updater {
private final LogBlock logblock;
final int UUID_CONVERT_BATCH_SIZE = 100;
final int BLOCKS_CONVERT_BATCH_SIZE = 200000;
final int BLOCKS_CONVERT_BATCH_SIZE = 100000;
final int OTHER_CONVERT_BATCH_SIZE = 20000;
Updater(LogBlock logblock) {
this.logblock = logblock;
@@ -524,7 +525,7 @@ class Updater {
PreparedStatement insertChestData = conn.prepareStatement("INSERT INTO `" + wcfg.table + "-chestdata` (id, item, itemremove, itemtype) VALUES (?, ?, ?, ?)");
PreparedStatement deleteChest = conn.prepareStatement("DELETE FROM `" + wcfg.table + "-chest` WHERE id = ?");
while (true) {
rs = st.executeQuery("SELECT id, itemtype, itemamount, itemdata FROM `" + wcfg.table + "-chest` ORDER BY id ASC LIMIT " + BLOCKS_CONVERT_BATCH_SIZE);
rs = st.executeQuery("SELECT id, itemtype, itemamount, itemdata FROM `" + wcfg.table + "-chest` ORDER BY id ASC LIMIT " + OTHER_CONVERT_BATCH_SIZE);
boolean anyRow = false;
while (rs.next()) {
anyRow = true;
@@ -585,8 +586,8 @@ class Updater {
rs.close();
PreparedStatement updateWeaponStatement = conn.prepareStatement("UPDATE `" + wcfg.table + "-kills` SET weapon = ? WHERE id = ?");
for (int start = 0;; start += BLOCKS_CONVERT_BATCH_SIZE) {
rs = st.executeQuery("SELECT id, weapon FROM `" + wcfg.table + "-kills` ORDER BY id ASC LIMIT " + start + "," + BLOCKS_CONVERT_BATCH_SIZE);
for (int start = 0;; start += OTHER_CONVERT_BATCH_SIZE) {
rs = st.executeQuery("SELECT id, weapon FROM `" + wcfg.table + "-kills` ORDER BY id ASC LIMIT " + start + "," + OTHER_CONVERT_BATCH_SIZE);
boolean anyUpdate = false;
boolean anyRow = false;
while (rs.next()) {
@@ -669,7 +670,7 @@ class Updater {
PreparedStatement insertSignState = conn.prepareStatement("INSERT INTO `" + wcfg.table + "-state` (id, replacedState, typeState) VALUES (?, ?, ?)");
PreparedStatement deleteSign = conn.prepareStatement("DELETE FROM `" + wcfg.table + "-sign` WHERE id = ?");
while (true) {
rs = st.executeQuery("SELECT id, signtext, replaced, type FROM `" + wcfg.table + "-sign` LEFT JOIN `" + wcfg.table + "-blocks` USING (id) ORDER BY id ASC LIMIT " + BLOCKS_CONVERT_BATCH_SIZE);
rs = st.executeQuery("SELECT id, signtext, replaced, type FROM `" + wcfg.table + "-sign` LEFT JOIN `" + wcfg.table + "-blocks` USING (id) ORDER BY id ASC LIMIT " + OTHER_CONVERT_BATCH_SIZE);
boolean anyRow = false;
while (rs.next()) {
anyRow = true;