Big data storage technologies: a survey <s> Distinctions of big data storage technologies <s> In this paper, we examine a number of SQL and socalled "NoSQL" data stores designed to scale simple OLTP-style application loads over many servers. Originally motivated by Web 2.0 applications, these systems are designed to scale to thousands or millions of users doing updates as well as reads, in contrast to traditional DBMSs and data warehouses. We contrast the new systems on their data model, consistency mechanisms, storage mechanisms, durability guarantees, availability, query support, and other dimensions. These systems typically sacrifice some of these dimensions, e.g. database-wide transaction consistency, in order to achieve others, e.g. higher availability and scalability. <s> BIB001 </s> Big data storage technologies: a survey <s> Distinctions of big data storage technologies <s> Abstract The paper covers the main design, management and operational aspects of scalability in manufacturing systems (MS). It promotes scalability as an area of research of MS theory and practice in order to enhance techniques and methodologies in existing MS paradigms using advanced and emerging design and management approaches and ICT, and meet challenges of emerging MS paradigms and support their promotion and effective and efficient deployment in practice. The paper presents an introduction to scalability, state-of-the art in manufacturing and computer science, and related applications including manufacturing and education and a roadmap for future research and developments. <s> BIB002 </s> Big data storage technologies: a survey <s> Distinctions of big data storage technologies <s> The explosive growth in volume, velocity, and diversity of data produced by mobile devices and cloud applications has contributed to the abundance of data or `big data.' Available solutions for efficient data storage and management cannot fulfill the needs of such heterogeneous data where the amount of data is continuously increasing. For efficient retrieval and management, existing indexing solutions become inefficient with the rapidly growing index size and seek time and an optimized index scheme is required for big data. Regarding real-world applications, the indexing issue with big data in cloud computing is widespread in healthcare, enterprises, scientific experiments, and social networks. To date, diverse soft computing, machine learning, and other techniques in terms of artificial intelligence have been utilized to satisfy the indexing requirements, yet in the literature, there is no reported state-of-the-art survey investigating the performance and consequences of techniques for solving indexing in big data issues as they enter cloud computing. The objective of this paper is to investigate and examine the existing indexing techniques for big data. Taxonomy of indexing techniques is developed to provide insight to enable researchers understand and select a technique as a basis to design an indexing mechanism with reduced time and space consumption for BD-MCC. In this study, 48 indexing techniques have been studied and compared based on 60 articles related to the topic. The indexing techniques' performance is analyzed based on their characteristics and big data indexing requirements. The main contribution of this study is taxonomy of categorized indexing techniques based on their method. The categories are non-artificial intelligence, artificial intelligence, and collaborative artificial intelligence indexing methods. In addition, the significance of different procedures and performance is analyzed, besides limitations of each technique. In conclusion, several key future research topics with potential to accelerate the progress and deployment of artificial intelligence-based cooperative indexing in BD-MCC are elaborated on. <s> BIB003 </s> Big data storage technologies: a survey <s> Distinctions of big data storage technologies <s> Large-scale distributed storage systems often replicate data across servers and even geographically-distributed data centers for high availability, while existing theories like CAP and PACELC show that there is a tradeoff between availability and consistency. Thus eventual consistency is proposed to provide highly available storage systems. However, current practice is mainly experience-based and lacks quantitative analysis for identifying a good tradeoff between the two. In this work, we are concerned with providing a quantitative analysis on availability for widely-used quorum systems in data center networks. First, a probabilistic model is proposed to quantify availability for typical data center networks: 2-tier basic tree, 3-tier basic tree, fat tree and folded clos, and even geo-distributed data center networks. Second, we analyze replica placements on network topologies to obtain maximal availability. Third, we build the availability-consistency table and propose a set of rules to quantitatively make tradeoff between availability and consistency. Finally, with Monte Carlo based simulations, we validate our presented quantitative results and show that our approach to make tradeoff between availability and consistency is effective. <s> BIB004
It is very common to consider scalability, reliability, and availability as the design goals for a big data storage technology. However, it is also observed that consistency and availability influence each other in a distributed system, and one of them is compromised  . According to the nature of big data, a single server is not a wise decision for storage, and it is better to configure a cluster of multiple hardware elements as the distributed storage system. To discuss storage technologies for big data, the description of features for distributed NoSQL systems provided in the literature is also significant. For this reason, we explain these features in distinction. Out of them, consistency, availability, and partition resilience are further considered to examine the applicability of Brewer's theorem for current big data storage technologies in Section 4. Scalability refers to support to growing volumes of data in such a manner that a significant increase or optimization in storage resources is possible BIB002 . The paradigm shift from batch processing to streaming data processing shows that the data volume is continuously increasing. Referring to our previous work BIB003 , the volume for future big data will be at zettabyte scale and the storage requirements will increase with such volume. As far as the availability of a system is concerned, it suggests quick access to data storage resources  . For this purpose, data are replicated among different servers, which may be placed on the same location or distant locations to make the data highly available to users at their nearby sites, thus increasing big data retrieval efficiency  BIB004 . In other words, minimum downtime and promptness of a system for ad hoc access requests define its availability (Oracle, 2015a) . Node failure is very common in distributed storage systems. To make it fault-tolerant, multiple copies of data are created and placed on the same node and/or different nodes of the storage cluster. Replication not only makes the system highly available but it is also useful for fault tolerance  . Furthermore, NoSQL databases offer very flexible schema and data relationships and are not as complex as relational databases  . Nowadays, data not only comprise tuples; documents and objects are also part of big data. Therefore, a predefined schema cannot deal with varying data structures BIB001 . Regardless of the distribution, storage systems for big data ensure the data be complete and correct. Changes made by users are committed under defined rules (Oracle, 2015a) . Eventual consistency has become a widely adopted mechanism to implement consistency in NoSQL databases. Changes are propagated eventually, and the system becomes consistent after propagating the changes. However, instantane- ous propagation leads to the development of a strongly consistent system, yet it results in frequent access locks. In addition to fault tolerance and consistency, indexing is worthwhile for big data storage. Indexing is a method that improves the performance of data retrieval. In relational databases, primary keys are sufficient to perform search operations (Oracle Secondary, 2015) . However, with the advent of big data, which comes with new challenges of heterogeneity in data structures, primary key indexing is not the solution. Secondary indexes are mostly created automatically by the system, and keys other than the primary key are produced.