عنوان مقاله

مکانیسم تحمل خطای مبتنی‌ برعامل برای پایگاه‌ داده‌های کلید - مقدار توزیع‌شده



خرید نسخه پاورپوینت این مقاله


خرید نسخه ورد این مقاله



 

فهرست مطالب

مقدمه

پیش زمینه

متدولوژی

ارزیابی

نتیجه گیری





بخشی از مقاله

 روش‌های موجود برای پردازش تراکنش 

دو روش اصلی برای تراکنش‌های توزیع‌ شده وجود دارند. یکی پروتکل تایید دو فازی است. هماهنگ‌ کننده‌ها و شرکت ‌کنندگان در این پروتکل وجود دارند. هماهنگ ‌کننده‌ها هر شرکت‌ کننده را اگر تایید شود، درخواست می‌کنند. تنها زمانی که پاسخ‌های شرکت ‌کنندگان OK  شود، هماهنگ‌ کننده  درخواست می‌کند که همه گره‌ها تایید شوند. یا تراکنش متوقف خواهد شد.






خرید نسخه پاورپوینت این مقاله


خرید نسخه ورد این مقاله



 

کلمات کلیدی: 

Agent-Based Fault-Tolerance Mechanism for Distributed Key-Value Database Wu Hui-jun, Lu Kai, Li Gen, Jiang Jin-fei, Wang Shuang-xi Science and Technology on Parallel and Distributed Processing Laboratory National University of Defense Technology Changsha, PR China (whj_nudt@foxmail.com) Abstract—Distributed key-value database is widely used in Web 2.0 applications and cloud computing environments. It overcomes the weak performance and bad scalability of traditional relational database. But fault in distributed system will lead to errors, then the high performance is useless. So we should build a fault tolerance mechanism. On the other hand, in many application scenarios, transactional operations are inevitable. Some existing key-value databases utilize two-phase commit protocol or optimistic concurrency control in transaction processing. But the problems are sing-node failure and high overhead in protocol processing. Meanwhile, users’ programming becomes more error-prone. This paper designs a fault tolerance and recovery mechanism on DStageDB, which is a distributed key-value database. We design an agent-based transaction processing mechanism. The transaction processing speed is improved and less user intervention is needed. Keywords—fault-tolerance, key-value database, agent, transaction I. INTRODUCTION With the development of Web2.0 applications and cloud computing, the limitations of traditional rational databases appear. Many NoSQL databases are designed to solve the problems of performance, scalability in rational databases. Key-Value database[1] is the most popular one. Due to CAP theory[2], existing key-value databases like Amazon Dynamo[3], Cassandra, etc. sacrifice the strong consistency to get a high performance. But most systems haven’t support transaction. Some systems like Google Cloud Storage have support for single-item consistency, but not for multi-items. Many databases throw this problem to users. It is very error-prone. Existing methods to support transaction can be classified into two main ways. They are supporting transaction processing at server end and using client libraries to support transactions. The typical system for the former type is Spanner, while much more systems belong to the later type. Spanner’s strong transaction mechanism and consistency is based on its precise GPS/atomic clock. FoundationDB [4] is a key-value database which supports transaction mechanism in client-side. It need not to lock the resources before transaction processing. The conflicts among transactions are detected by a cluster before the transactions are sanded to the database servers. When conflicts are detected, the failure will be returned to clients. In conclusion, there are two major deficiencies in existing systems. First, single-node failures are existed in protocols like 2-phase commit. The offline of both coordinator and participants will lead to a wait. Handling this problem properly and assuring the consistency are very complicated. Secondly, sending transaction failures to users is error-prone. Although systems like foundationDB doesn’t need lock support, the behavior that clients continuously try to send transaction is similar to lock too. On the other hand, every node in the databases could be offline at every moment. It is a critical point to backup the data. The recovery of a physical node needs a relatively long time. Before new nodes can provide service, it is unwise to refuse every request from clients. This paper designs a fault-tolerance mechanism for DStageDB, which is a distributed key-value database. We design an agent-based transaction processing. An agent is a combination of a sequence of operations, lock mechanism and conflicts processing mechanism. Once the users send an agent to the DStageDB server, it need not to wait for its completeness. All the operations will be completed in the background. Agents negotiate by messages to assure that all transactions are processed in right order. The contributions in this paper are the following: We propose a fault-tolerance mechanism in distributed key-value database. We present the virtual node-based data recovery in DStageDB which improves the usability of data during the recovery time. We design an agent-based transaction processing mechanism. It reduces the influence of sing-node failure and avoids complex protocol processing. Transaction processing speed has been accelerated. I