data = new HiveLockObjectData(new String(curatorFramework.getData().watched().forPath(curChild))); data.setClientIp(clientIp); } catch (Exception e) {
data = new HiveLockObjectData(new String(curatorFramework.getData().watched().forPath(curChild))); data.setClientIp(clientIp); } catch (Exception e) {
private HiveLockObject lockObj(String path, String query) { HiveLockObjectData data = new HiveLockObjectData(String.valueOf(++counter), null, null, query, conf); return new HiveLockObject(path.split("/"), data); } }
new HiveLockObjectData(plan.getQueryId(), String.valueOf(System.currentTimeMillis()), "IMPLICIT");
new HiveLockObjectData(lockTbl.getQueryId(), String.valueOf(System.currentTimeMillis()), "EXPLICIT",
new HiveLockObjectData(lockTbl.getQueryId(), String.valueOf(System.currentTimeMillis()), "EXPLICIT");
new HiveLockObjectData(lockDb.getQueryId(), String.valueOf(System.currentTimeMillis()), "EXPLICIT", lockDb.getQueryStr());
private void printConflictingLocks(HiveLockObject key, HiveLockMode mode, Set<String> conflictingLocks) { if (!conflictingLocks.isEmpty()) { HiveLockObjectData requestedLock = new HiveLockObjectData(key.getData().toString()); LOG.debug("Requested lock " + key.getDisplayName() + ":: mode:" + requestedLock.getLockMode() + "," + mode + "; query:" + requestedLock.getQueryStr()); for (String conflictingLock : conflictingLocks) { HiveLockObjectData conflictingLockData = new HiveLockObjectData(conflictingLock); LOG.debug("Conflicting lock to " + key.getDisplayName() + ":: mode:" + conflictingLockData.getLockMode() + ";query:" + conflictingLockData.getQueryStr() + ";queryId:" + conflictingLockData.getQueryId() + ";clientIp:" + conflictingLockData.getClientIp()); } } }
new HiveLockObject.HiveLockObjectData(plan.getQueryId(), String.valueOf(System.currentTimeMillis()), "IMPLICIT",
new HiveLockObject.HiveLockObjectData(plan.getQueryId(), String.valueOf(System.currentTimeMillis()), "IMPLICIT",
new HiveLockObjectData(lockTbl.getQueryId(), String.valueOf(System.currentTimeMillis()), "EXPLICIT",
String path1 = "path1"; String path2 = "path2"; HiveLockObjectData lockData1 = new HiveLockObjectData( "query1", "1", "IMPLICIT", "drop table table1", conf); HiveLockObjectData lockData2 = new HiveLockObjectData( "query1", "1", "IMPLICIT", "drop table table1", conf);
new HiveLockObjectData(lockTbl.getQueryId(), String.valueOf(System.currentTimeMillis()), "EXPLICIT",
@Override public int lockDatabase(Hive hiveDB, LockDatabaseDesc lockDb) throws HiveException { HiveLockManager lockMgr = getAndCheckLockManager(); HiveLockMode mode = HiveLockMode.valueOf(lockDb.getMode()); String dbName = lockDb.getDatabaseName(); Database dbObj = hiveDB.getDatabase(dbName); if (dbObj == null) { throw new HiveException("Database " + dbName + " does not exist "); } HiveLockObjectData lockData = new HiveLockObjectData(lockDb.getQueryId(), String.valueOf(System.currentTimeMillis()), "EXPLICIT", lockDb.getQueryStr()); HiveLock lck = lockMgr.lock(new HiveLockObject(dbObj.getName(), lockData), mode, true); if (lck == null) { return 1; } return 0; }
@Test public void testTruncate() { conf.setIntVar(HiveConf.ConfVars.HIVE_LOCK_QUERY_STRING_MAX_LENGTH, 1000000); HiveLockObjectData data0 = new HiveLockObjectData("ID1", "SHARED", "1997-07-01", "01234567890", conf); Assert.assertEquals("With default settings query string should not be truncated", data0.getQueryStr().length(), 11); conf.setIntVar(HiveConf.ConfVars.HIVE_LOCK_QUERY_STRING_MAX_LENGTH, 10); HiveLockObjectData data1 = new HiveLockObjectData("ID1", "SHARED", "1997-07-01", "01234567890", conf); HiveLockObjectData data2 = new HiveLockObjectData("ID1", "SHARED", "1997-07-01", "0123456789", conf); HiveLockObjectData data3 = new HiveLockObjectData("ID1", "SHARED", "1997-07-01", "012345678", conf); HiveLockObjectData data4 = new HiveLockObjectData("ID1", "SHARED", "1997-07-01", null, conf); Assert.assertEquals("Long string truncation failed", data1.getQueryStr().length(), 10); Assert.assertEquals("String truncation failed", data2.getQueryStr().length(), 10); Assert.assertEquals("Short string should not be truncated", data3.getQueryStr().length(), 9); Assert.assertNull("Null query string handling failed", data4.getQueryStr()); } }
private void printConflictingLocks(HiveLockObject key, HiveLockMode mode, Set<String> conflictingLocks) { if (!conflictingLocks.isEmpty()) { HiveLockObjectData requestedLock = new HiveLockObjectData(key.getData().toString()); LOG.debug("Requested lock " + key.getDisplayName() + ":: mode:" + requestedLock.getLockMode() + "," + mode + "; query:" + requestedLock.getQueryStr()); for (String conflictingLock : conflictingLocks) { HiveLockObjectData conflictingLockData = new HiveLockObjectData(conflictingLock); LOG.debug("Conflicting lock to " + key.getDisplayName() + ":: mode:" + conflictingLockData.getLockMode() + ";query:" + conflictingLockData.getQueryStr() + ";queryId:" + conflictingLockData.getQueryId() + ";clientIp:" + conflictingLockData.getClientIp()); } } }
@Override public int lockDatabase(Hive hiveDB, LockDatabaseDesc lockDb) throws HiveException { HiveLockManager lockMgr = getAndCheckLockManager(); HiveLockMode mode = HiveLockMode.valueOf(lockDb.getMode()); String dbName = lockDb.getDatabaseName(); Database dbObj = hiveDB.getDatabase(dbName); if (dbObj == null) { throw new HiveException("Database " + dbName + " does not exist "); } HiveLockObjectData lockData = new HiveLockObjectData(lockDb.getQueryId(), String.valueOf(System.currentTimeMillis()), "EXPLICIT", lockDb.getQueryStr(), conf); HiveLock lck = lockMgr.lock(new HiveLockObject(dbObj.getName(), lockData), mode, true); if (lck == null) { return 1; } return 0; }
@Before public void setup() { conf = new HiveConf(); lockObjData = new HiveLockObjectData("1", "10", "SHARED", "show tables", conf); hiveLock = new HiveLockObject(TABLE, lockObjData); zLock = new ZooKeeperHiveLock(TABLE_LOCK_PATH, hiveLock, HiveLockMode.SHARED); while (server == null) { try { server = new TestingServer(); CuratorFrameworkFactory.Builder builder = CuratorFrameworkFactory.builder(); client = builder.connectString(server.getConnectString()).retryPolicy(new RetryOneTime(1)).build(); client.start(); } catch (Exception e) { System.err.println("Getting bind exception - retrying to allocate server"); server = null; } } }
private void printConflictingLocks(HiveLockObject key, HiveLockMode mode, Set<String> conflictingLocks) { if (!conflictingLocks.isEmpty()) { HiveLockObjectData requestedLock = new HiveLockObjectData(key.getData().toString()); LOG.debug("Requested lock " + key.getDisplayName() + ":: mode:" + requestedLock.getLockMode() + "," + mode + "; query:" + requestedLock.getQueryStr()); for (String conflictingLock : conflictingLocks) { HiveLockObjectData conflictingLockData = new HiveLockObjectData(conflictingLock); LOG.debug("Conflicting lock to " + key.getDisplayName() + ":: mode:" + conflictingLockData.getLockMode() + ";query:" + conflictingLockData.getQueryStr() + ";queryId:" + conflictingLockData.getQueryId() + ";clientIp:" + conflictingLockData.getClientIp()); } } }
@Test public void testEqualsAndHashCode() { HiveLockObjectData data1 = new HiveLockObjectData("ID1", "SHARED", "1997-07-01", "select * from mytable", conf); HiveLockObjectData data2 = new HiveLockObjectData("ID1", "SHARED", "1997-07-01", "select * from mytable", conf); Assert.assertEquals(data1, data2); Assert.assertEquals(data1.hashCode(), data2.hashCode()); HiveLockObject obj1 = new HiveLockObject("mytable", data1); HiveLockObject obj2 = new HiveLockObject("mytable", data2); Assert.assertEquals(obj1, obj2); Assert.assertEquals(obj1.hashCode(), obj2.hashCode()); }