diff options
author | Magnusen, Drew (dm741q) <dm741q@att.com> | 2018-03-21 16:44:45 -0500 |
---|---|---|
committer | Magnusen, Drew (dm741q) <dm741q@att.com> | 2018-04-03 14:05:18 -0500 |
commit | fff9b57f7411deb798431bd625944fcfdbe053ac (patch) | |
tree | c1d7b2d23df54a61a15cd0804f7cce3b42c527f7 /feature-distributed-locking/src/main/feature | |
parent | 54bc3867539264a518c88772e82ea8070ef97c79 (diff) |
Implementation of distributed locking feature
This feature is a very basic implementation of a distributed locking
system.
Issue-ID: POLICY-699
Change-Id: I012fd37926ccbbdd87a3e4acb2788b53680115f0
Signed-off-by: Magnusen, Drew (dm741q) <dm741q@att.com>
Diffstat (limited to 'feature-distributed-locking/src/main/feature')
3 files changed, 77 insertions, 0 deletions
diff --git a/feature-distributed-locking/src/main/feature/config/feature-distributed-locking.properties b/feature-distributed-locking/src/main/feature/config/feature-distributed-locking.properties new file mode 100644 index 00000000..ee4aa474 --- /dev/null +++ b/feature-distributed-locking/src/main/feature/config/feature-distributed-locking.properties @@ -0,0 +1,34 @@ +### +# ============LICENSE_START======================================================= + # feature-distributed-locking +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +### + +#Database properties +#javax.persistence.jdbc.driver= org.mariadb.jdbc.Driver +#javax.persistence.jdbc.url=jdbc:mariadb://${{SQL_HOST}}:3306/locks +#javax.persistence.jdbc.user=${{SQL_USER}} +#javax.persistence.jdbc.password=${{SQL_PASSWORD}} + +#This value is added to System.currentTimeMs to +#set expirationTime when a lock is obtained. +#distributed.locking.lock.aging=1000 + +#The frequency (in milliseconds) that the heartbeat +#thread refreshes locks owned by the current host +#distributed.locking.heartbeat.interval=5000 + diff --git a/feature-distributed-locking/src/main/feature/db/pooling/sql/1804-distributedlocking.downgrade.sql b/feature-distributed-locking/src/main/feature/db/pooling/sql/1804-distributedlocking.downgrade.sql new file mode 100644 index 00000000..cd1b815d --- /dev/null +++ b/feature-distributed-locking/src/main/feature/db/pooling/sql/1804-distributedlocking.downgrade.sql @@ -0,0 +1,20 @@ +# ============LICENSE_START======================================================= +# feature-distributed-locking +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= + +use pooling; +drop table if exists locks;
\ No newline at end of file diff --git a/feature-distributed-locking/src/main/feature/db/pooling/sql/1804-distributedlocking.upgrade.sql b/feature-distributed-locking/src/main/feature/db/pooling/sql/1804-distributedlocking.upgrade.sql new file mode 100644 index 00000000..be56d35e --- /dev/null +++ b/feature-distributed-locking/src/main/feature/db/pooling/sql/1804-distributedlocking.upgrade.sql @@ -0,0 +1,23 @@ +# ============LICENSE_START======================================================= +# feature-distributed-locking +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= + + set foreign_key_checks=0; + + CREATE TABLE if not exists pooling.locks (resourceId VARCHAR(128), host VARCHAR(128), owner VARCHAR(128), expirationTime BIGINT, PRIMARY KEY (resourceId), INDEX idx_expirationTime(expirationTime), INDEX idx_host(host)); + + set foreign_key_checks=1;
\ No newline at end of file |