SlideShare a Scribd company logo
1 of 15
Name Zahid Hussain
Roll no. 16717
Subject DBMS
Topic Concurrency & Distributed DBMS
Overview
1. Transaction
2. Concurrency
3. Resource locking
4. Deadlock
5. Types of Distributed DBMS
1.1 Transaction
logical unit of work it consist of one or more operations that must be completed
together.It either be successfully complete or fail.
1.1.1 Commit
A transaction is committed if it is completely successful and makes changes in
data.
1.1.2 Rollback
if transaction failed and leave the data unchanged it is said the data has rolled
back.
1.2 Transaction properties(ACID properties)
1.2.1 Atomicity
A transaction must completely succeed or completely fail. If any statement fail
the entire transaction fails completely.
1.2.2 Consistency
After completion the transaction leaves the data in a consistent state. For example
money should never be “created “ or “deleted” without an deposit or withdrawal.
1.2.3 Isolation
All transactions that modify the data are isolated from each other. A modifying
transaction can access the data only after the completion of other transaction
1.2.4 Durability
Durability means that the modifications made by a transaction are permanent
and persistent.
1.3 Concurrency
Concurrency is a situation in which two users access the same piece of data at
the same time. It occurs very commonly but sometimes create some problems.
1.3.1 Lost update problem
Problem arises when two or more transactions update the same data. Each
transaction unaware of other transactions . The last update overwrites.
TIME TEAM A STOCK TABLE TEAM B
9:00 Qty=100
10:30 Retrieve Qty
Qty=100
Retrieve Qty
Qty=100
10:31 Update=Qty-90
10:32 Qty=10
10:33 Update=Qty+30
Qty=130
1.3.2. Uncommitted Dependency Problem
In above example team B update the quantity 100 to 150
at time T1 and team A retrieve this update value at t2.Team
B rollbacks the action while making quantity 100 again .So,
the value of Team A becomes wrong at T3.
TIME TEAM A TEAM B
T1 - Update qty
T2 Retrieve qty -
T3 - Rollback
1.3.3 Inconsistent Analysis Problems
problem occurs when one transaction reading the several values from the
DB but another transaction update these some of them during the executing
of the first transaction.
TIME TEAM A TEAM B
T1 Retrieve acc-1:Sum=40 -
T2 Retrieve acc-2:Sum=90 -
T3 Retrieve acc-3
T4 Update acc-3=0
T5 Retrieve acc-1
T6 Update acc-1=50
T7 Commit
T8 Retrieve acc-3:Sum=90
Three accounts Acc-1:40 Acc-2: 50 Acc-3: 30
1.4 Resource locking
When a user access the data the second user has to wait until the first user
has finishes his work.
For example
USER 1 USER 2
1 Lock the item
2 retrieve the item
3 reduce item by 10
4 update the item
5 unlock the item
1 Lock the item
2 retrieve the item
3 reduce item by 10
4 update the item
5 unlock the item
Sequence of processing commands
by CPU
1 Lock the item user 1
2 retrieve the item user 1
3 lock the item for user 2.
already locked so user 2 has to wait
until user 1 unlock
4 reduce item by 10 for user 1
5 update the item for user 1
6 unlock the item for user 1
7 lock the item for user 2
8 retrieve item for user 2
9 reduce item by 20 for user 2
10 update the item for user 2
11 Unlock the item for user 2
1.4.1 Lock terminology
1. Implicit lock
Type of lock placed automatically by DBMS.
2. Explicit lock
Placed by application program by issuing a command.
3. Exclusive lock
Type of lock that locks item for any type of access no other can read or update.
4. Shared lock
Locks an item from change but not from read is called share lock.
5. Lock Granularity
The level of lock applied on an item is known as lock granularity
Levels
a. Row level(smallest lock granularity)
b. Page level
c. Table level
d. Database level(largest lock granularity)
5. Deadlock
Deadlock is a situation in which two transaction wait for completion of each
other.
USER 1 USER 2
1 Lock item A
2 Retrieve item A
3 Lock the item B
1 Lock item B
2 Retrieve item B
3 Lock the item A
Sequence processing by command in CPU
1 Lock the item A for user 1.
2 Lock the item B for user 2.
3 Retrieve A for user 1.
4 Retrieve item B for user 2.
5 Put user 1 in wait for user 2.
6 Put user 2 in wait for user 1
5.1 Solution of deadlock
1 Deadlock prevention
In this type users allow to issue only one lock request at a time.If user A and B
at once in the first line deadlock will not occurs.
2 Deadlock detection & recovery
If one transaction of user 2 is aborted then the item will be released from the lock
and the user 1 will be able to complete his work.
When a transaction is aborted then all changes made by that transaction should
be undone.
6. Types of Distributed DBMS
6.1 Homogeneous DDBMS
Means that the DB technology is the same or at least compatible to each .
It simplify the data sharing among different users.
Characteristics of Homogeneous DDBMS
i. Data distributed across all the nodes.
ii. The same DBMS used.
iii. All date manage by the DDBMS there is no exclusively local data.
iv. All users access the DB through database definition.
v. The global schema is the union of local DB schemas.
6.2 Heterogeneous DDBMS
Different DBMS used at each node. Much more difficult to manage.
Characteristics of Heterogeneous DDBMS
i. Data distributed across all the nodes.
ii. Different DBMS used at each location.
iii. A global schema exist which allow local user to access the data
iv. Some users require only local access to databases which cab be accomplished
using only local data DBMS and schema.
Any Question?
Thank you

More Related Content

Similar to transaction ,concurrency , and DDBMS

Chapter 5 Database Transaction Management
Chapter 5 Database Transaction ManagementChapter 5 Database Transaction Management
Chapter 5 Database Transaction ManagementEddyzulham Mahluzydde
 
Welcome to the nightmare of locking, blocking and isolation levels!
Welcome to the nightmare of locking, blocking and isolation levels!Welcome to the nightmare of locking, blocking and isolation levels!
Welcome to the nightmare of locking, blocking and isolation levels!Boris Hristov
 
Dartabase Transaction.pptx
Dartabase Transaction.pptxDartabase Transaction.pptx
Dartabase Transaction.pptxBibus Poudel
 
DBMS Transaction course
DBMS Transaction courseDBMS Transaction course
DBMS Transaction courseGermainSIGETY1
 
The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!Boris Hristov
 
Multi version Concurrency Control and its applications in Advanced database s...
Multi version Concurrency Control and its applications in Advanced database s...Multi version Concurrency Control and its applications in Advanced database s...
Multi version Concurrency Control and its applications in Advanced database s...GauthamSK4
 
Managing Memory & Locks - Series 2 Transactions & Lock management
Managing  Memory & Locks - Series 2 Transactions & Lock managementManaging  Memory & Locks - Series 2 Transactions & Lock management
Managing Memory & Locks - Series 2 Transactions & Lock managementDAGEOP LTD
 
Locking unit 1 topic 3
Locking unit 1 topic 3Locking unit 1 topic 3
Locking unit 1 topic 3avniS
 
Transactions
TransactionsTransactions
Transactionskalyan_bu
 
17855584.ppt
17855584.ppt17855584.ppt
17855584.pptNoorEjaz1
 
7. transaction mang
7. transaction mang7. transaction mang
7. transaction mangkhoahuy82
 
concurrency control.ppt
concurrency control.pptconcurrency control.ppt
concurrency control.pptBikalAdhikari4
 

Similar to transaction ,concurrency , and DDBMS (20)

Chapter 5 Database Transaction Management
Chapter 5 Database Transaction ManagementChapter 5 Database Transaction Management
Chapter 5 Database Transaction Management
 
DBMS UNIT IV.pptx
DBMS UNIT IV.pptxDBMS UNIT IV.pptx
DBMS UNIT IV.pptx
 
Welcome to the nightmare of locking, blocking and isolation levels!
Welcome to the nightmare of locking, blocking and isolation levels!Welcome to the nightmare of locking, blocking and isolation levels!
Welcome to the nightmare of locking, blocking and isolation levels!
 
Tybsc cs dbms2 notes
Tybsc cs dbms2 notesTybsc cs dbms2 notes
Tybsc cs dbms2 notes
 
Transaction management transparencies
Transaction management transparenciesTransaction management transparencies
Transaction management transparencies
 
Dartabase Transaction.pptx
Dartabase Transaction.pptxDartabase Transaction.pptx
Dartabase Transaction.pptx
 
Advanced DBMS presentation
Advanced DBMS presentationAdvanced DBMS presentation
Advanced DBMS presentation
 
Lec08
Lec08Lec08
Lec08
 
DBMS Transaction course
DBMS Transaction courseDBMS Transaction course
DBMS Transaction course
 
The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!The Nightmare of Locking, Blocking and Isolation Levels!
The Nightmare of Locking, Blocking and Isolation Levels!
 
Multi version Concurrency Control and its applications in Advanced database s...
Multi version Concurrency Control and its applications in Advanced database s...Multi version Concurrency Control and its applications in Advanced database s...
Multi version Concurrency Control and its applications in Advanced database s...
 
CH09.ppt
CH09.pptCH09.ppt
CH09.ppt
 
Managing Memory & Locks - Series 2 Transactions & Lock management
Managing  Memory & Locks - Series 2 Transactions & Lock managementManaging  Memory & Locks - Series 2 Transactions & Lock management
Managing Memory & Locks - Series 2 Transactions & Lock management
 
Locking unit 1 topic 3
Locking unit 1 topic 3Locking unit 1 topic 3
Locking unit 1 topic 3
 
Transactions
TransactionsTransactions
Transactions
 
17855584.ppt
17855584.ppt17855584.ppt
17855584.ppt
 
7. transaction mang
7. transaction mang7. transaction mang
7. transaction mang
 
Transaction
TransactionTransaction
Transaction
 
Chapter 13
Chapter 13Chapter 13
Chapter 13
 
concurrency control.ppt
concurrency control.pptconcurrency control.ppt
concurrency control.ppt
 

Recently uploaded

Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 

Recently uploaded (20)

Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 

transaction ,concurrency , and DDBMS

  • 1. Name Zahid Hussain Roll no. 16717 Subject DBMS Topic Concurrency & Distributed DBMS
  • 2. Overview 1. Transaction 2. Concurrency 3. Resource locking 4. Deadlock 5. Types of Distributed DBMS
  • 3. 1.1 Transaction logical unit of work it consist of one or more operations that must be completed together.It either be successfully complete or fail. 1.1.1 Commit A transaction is committed if it is completely successful and makes changes in data. 1.1.2 Rollback if transaction failed and leave the data unchanged it is said the data has rolled back. 1.2 Transaction properties(ACID properties) 1.2.1 Atomicity A transaction must completely succeed or completely fail. If any statement fail the entire transaction fails completely. 1.2.2 Consistency After completion the transaction leaves the data in a consistent state. For example money should never be “created “ or “deleted” without an deposit or withdrawal.
  • 4. 1.2.3 Isolation All transactions that modify the data are isolated from each other. A modifying transaction can access the data only after the completion of other transaction 1.2.4 Durability Durability means that the modifications made by a transaction are permanent and persistent.
  • 5. 1.3 Concurrency Concurrency is a situation in which two users access the same piece of data at the same time. It occurs very commonly but sometimes create some problems. 1.3.1 Lost update problem Problem arises when two or more transactions update the same data. Each transaction unaware of other transactions . The last update overwrites. TIME TEAM A STOCK TABLE TEAM B 9:00 Qty=100 10:30 Retrieve Qty Qty=100 Retrieve Qty Qty=100 10:31 Update=Qty-90 10:32 Qty=10 10:33 Update=Qty+30 Qty=130
  • 6. 1.3.2. Uncommitted Dependency Problem In above example team B update the quantity 100 to 150 at time T1 and team A retrieve this update value at t2.Team B rollbacks the action while making quantity 100 again .So, the value of Team A becomes wrong at T3. TIME TEAM A TEAM B T1 - Update qty T2 Retrieve qty - T3 - Rollback
  • 7. 1.3.3 Inconsistent Analysis Problems problem occurs when one transaction reading the several values from the DB but another transaction update these some of them during the executing of the first transaction. TIME TEAM A TEAM B T1 Retrieve acc-1:Sum=40 - T2 Retrieve acc-2:Sum=90 - T3 Retrieve acc-3 T4 Update acc-3=0 T5 Retrieve acc-1 T6 Update acc-1=50 T7 Commit T8 Retrieve acc-3:Sum=90 Three accounts Acc-1:40 Acc-2: 50 Acc-3: 30
  • 8. 1.4 Resource locking When a user access the data the second user has to wait until the first user has finishes his work. For example USER 1 USER 2 1 Lock the item 2 retrieve the item 3 reduce item by 10 4 update the item 5 unlock the item 1 Lock the item 2 retrieve the item 3 reduce item by 10 4 update the item 5 unlock the item Sequence of processing commands by CPU 1 Lock the item user 1 2 retrieve the item user 1 3 lock the item for user 2. already locked so user 2 has to wait until user 1 unlock 4 reduce item by 10 for user 1 5 update the item for user 1 6 unlock the item for user 1 7 lock the item for user 2 8 retrieve item for user 2 9 reduce item by 20 for user 2 10 update the item for user 2 11 Unlock the item for user 2
  • 9. 1.4.1 Lock terminology 1. Implicit lock Type of lock placed automatically by DBMS. 2. Explicit lock Placed by application program by issuing a command. 3. Exclusive lock Type of lock that locks item for any type of access no other can read or update. 4. Shared lock Locks an item from change but not from read is called share lock. 5. Lock Granularity The level of lock applied on an item is known as lock granularity Levels a. Row level(smallest lock granularity) b. Page level c. Table level d. Database level(largest lock granularity)
  • 10. 5. Deadlock Deadlock is a situation in which two transaction wait for completion of each other. USER 1 USER 2 1 Lock item A 2 Retrieve item A 3 Lock the item B 1 Lock item B 2 Retrieve item B 3 Lock the item A Sequence processing by command in CPU 1 Lock the item A for user 1. 2 Lock the item B for user 2. 3 Retrieve A for user 1. 4 Retrieve item B for user 2. 5 Put user 1 in wait for user 2. 6 Put user 2 in wait for user 1
  • 11. 5.1 Solution of deadlock 1 Deadlock prevention In this type users allow to issue only one lock request at a time.If user A and B at once in the first line deadlock will not occurs. 2 Deadlock detection & recovery If one transaction of user 2 is aborted then the item will be released from the lock and the user 1 will be able to complete his work. When a transaction is aborted then all changes made by that transaction should be undone.
  • 12. 6. Types of Distributed DBMS 6.1 Homogeneous DDBMS Means that the DB technology is the same or at least compatible to each . It simplify the data sharing among different users. Characteristics of Homogeneous DDBMS i. Data distributed across all the nodes. ii. The same DBMS used. iii. All date manage by the DDBMS there is no exclusively local data. iv. All users access the DB through database definition. v. The global schema is the union of local DB schemas.
  • 13. 6.2 Heterogeneous DDBMS Different DBMS used at each node. Much more difficult to manage. Characteristics of Heterogeneous DDBMS i. Data distributed across all the nodes. ii. Different DBMS used at each location. iii. A global schema exist which allow local user to access the data iv. Some users require only local access to databases which cab be accomplished using only local data DBMS and schema.

Editor's Notes

  1. Name Zahid Hussain Roll no. 16717 Subject DBMS
  2. Main heading
  3. Subject
  4. Subject
  5. Subject
  6. Subject
  7. Subject
  8. Subject
  9. Subject
  10. Subject
  11. Subject
  12. Main heading
  13. Main heading
  14. Any Question
  15. Say thanks to me to make your time valuable