The document discusses various strategies for designing row keys in HBase. It covers techniques for avoiding hotspotting like salting, hashing, or reversing keys. It also discusses refining IDs by using shorter hashed values. Other sections provide examples for row keys that enable authentication with access tokens, comments linked to posts in a tree structure, access control lists for controlling data visibility, and organizing statistical data by time period and user. The overall goal of the document is to provide best practices for row key design in HBase to optimize performance and functionality.
Speaker:Drew DiPalma
Learn more about MongoDB Stitch, our new Backend as a Service (BaaS) that makes it easy for developers to create and launch applications across mobile and web platforms. Stitch provides a REST API on top of MongoDB with read, write, and validation rules built-in and full integration with the services you love. This talk will cover the what, why, and how of MongoDB Stitch. We'll discuss everything from features to the architecture. You'll walk away knowing how Stitch can kickstart your new project or take your existing application to the next level.
"The crimes are tough too, so the heroes have attitude, don’t sugar-coat the truth and never play it cute."
General presentation to my colleagues at #Liones on what\'s new in HTML5 and CSS3, how we can use it today, and what we must mind to do so.
Speaker:Drew DiPalma
Learn more about MongoDB Stitch, our new Backend as a Service (BaaS) that makes it easy for developers to create and launch applications across mobile and web platforms. Stitch provides a REST API on top of MongoDB with read, write, and validation rules built-in and full integration with the services you love. This talk will cover the what, why, and how of MongoDB Stitch. We'll discuss everything from features to the architecture. You'll walk away knowing how Stitch can kickstart your new project or take your existing application to the next level.
"The crimes are tough too, so the heroes have attitude, don’t sugar-coat the truth and never play it cute."
General presentation to my colleagues at #Liones on what\'s new in HTML5 and CSS3, how we can use it today, and what we must mind to do so.
The slower the stronger a story of password hash migrationOWASP
Did you know that a single modern GPU is able to compute almost 20 billion MD5 hashes in a second? That’s why we need SLOW hashing algorithms!
This talk is a case study of a successful migration of www.ocado.com customer password hashes. I will not only show you the “why”, “what” and “how”, but also what was problematic, what went wrong and how we dealt with it.
I will talk about slow hashing algorithms - such as Argon2, PBKDF2, BCrypt or SCrypt - and compare them to other popular hashing algorithms - like MD5 or SHA1. Next, I will tell you a story of hashes which took about 80 ms to compute - not slow enough, fairly easy to crack. I will show you what our password hashing code looks like and I will guide you through our migration plan, describing in detail how we executed it, and what problems we encountered on the way.
A Glide, Skip or a Jump: Efficiently Stream Data into Your Medallion Architec...HostedbyConfluent
"The medallion architecture graduates raw data sitting in operational systems into a set of refined tables in a series of stages, ultimately processing data to serve analytics from gold tables. While there is a deep desire to build this architecture incrementally from streaming data sources like Kafka, it is very challenging with current technologies available on lakehouses; a lot of technologies can’t efficiently update records or efficiently process incremental data without recomputing all the data to serve low-latency tables. Apache Hudi is a transactional data lake platform with full mutability support, including streaming upserts, and provides a powerful incremental processing framework. Apache Hudi powers the largest transactional data lakes in the industry, differentiating on fast upserts and change streams to only process and serve the change records.
To further improve the upsert performance, Hudi now supports a new record-level index that deterministically maps the record key to the file location orders of magnitude faster. As a result, Hudi speeds up computationally expensive MERGE operations even more by avoiding full table scans. On the query side, Hudi now supports database-style change data capture with before, and after images to chain flow of inserts, updates and deletes change records from bronze to silver to gold tables.
In this talk, attendees will walk away with:
- The current challenges of building a medallion architecture at low-latency
- How the record index and incremental updates work with Apache Hudi
- How the new Hudi CDC feature unlocks incremental processing on the lake
- How you can efficiently build a medallion architecture by avoiding expensive operations"
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBMongoDB
Watch this webinar to learn about our new Backend as a Service (BaaS) – MongoDB Stitch.
MongoDB Stitch lets developers focus on building applications rather than on managing data manipulation code, service integration, or backend infrastructure. Whether you’re just starting up and want a fully managed backend as a service, or you’re part of an enterprise and want to expose existing MongoDB data to new applications, Stitch lets you focus on building the app users want, not on writing boilerplate backend logic.
This webinar will cover the what, why, and how of MongoDB Stitch. We’ll cover everything from the features it provides to the architecture that makes it possible. By the end of the session, you should understand how Stitch can kickstart your new project or take your existing application to the next level.
Attendees will learn:
- The basics of MongoDB Stitch and how to use it for new projects or to expose existing data to new applications
- How to control what data and services individual users can access
- How to integrate your favorite services with your MongoDB application without writing extra code
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr MalykFwdays
The way Architecture is done in BigTech, top-down “rules” and technology choices.
We will talk about freedom in making architecture decisions for Product and Core teams.
We'll go deeper into Fintech solution, built as a crucial component of global SaaS: Microservices, APIs and Queues, Event Sourcing, Feature Toggles, SDLC, CI/CD, DevOps, Monitoring, Analytics and more.
This is achieved thanks to its generic architecture and the definition of a custom SQL-like language. Our language augments the classical SQL data manipulation language in order to add support for streaming queries. From the point of view of the user, a common logical view of the existing catalogs and datastores is presented independently of which cluster or technology stores a particular table.
Supporting multiple architectures imposes two main challenges: how to normalize the access to the datastores, and how to cope with datastore limitations. In order to be able to access multiple datastore technologies Crossdata defines a common unifying interface containing a basic set of operations that a datastore may support. New connectors can be easily added to Crossdata to increase its connectivity
Beyond php - it's not (just) about the codeWim Godden
Most PHP developers focus on writing code. But creating Web applications is about much more than just wrting PHP. Take a step outside the PHP cocoon and into the big PHP ecosphere to find out how small code changes can make a world of difference on servers and network. This talk is an eye-opener for developers who spend over 80% of their time coding, debugging and testing.
This talk covers how to use PostgreSQL together with the Golang (Go) programming language. I will describe what drivers and tools are available and which to use nowadays.
In this talk I will cover what design choices of Go can help you to build robust programs. But also, we will reveal some parts of the language and drivers that can cause obstacles and what routines to apply to avoid risks.
We will try to build the simplest cross-platform application in Go fully covered by tests and ready for CI/CD using GitHub Actions as an example.
Keeping track of your messaging infrastructure is essential to be able to rapidly respond to your changing business demands whilst complying with your constantly changing audit demands. This session will provide illustrations and insight on the techniques and capabilities available in IBM MQ to help you meet these monitoring and auditing demands.
Beyond PHP - it's not (just) about the codeWim Godden
Most PHP developers focus on writing code. But creating Web applications is about much more than just writing PHP. Take a step outside the PHP cocoon and into the big PHP ecosphere to find out how small code changes can make a world of difference on servers and network. This talk is an eye-opener for developers who spend over 80% of their time coding, debugging and testing.
The slower the stronger a story of password hash migrationOWASP
Did you know that a single modern GPU is able to compute almost 20 billion MD5 hashes in a second? That’s why we need SLOW hashing algorithms!
This talk is a case study of a successful migration of www.ocado.com customer password hashes. I will not only show you the “why”, “what” and “how”, but also what was problematic, what went wrong and how we dealt with it.
I will talk about slow hashing algorithms - such as Argon2, PBKDF2, BCrypt or SCrypt - and compare them to other popular hashing algorithms - like MD5 or SHA1. Next, I will tell you a story of hashes which took about 80 ms to compute - not slow enough, fairly easy to crack. I will show you what our password hashing code looks like and I will guide you through our migration plan, describing in detail how we executed it, and what problems we encountered on the way.
A Glide, Skip or a Jump: Efficiently Stream Data into Your Medallion Architec...HostedbyConfluent
"The medallion architecture graduates raw data sitting in operational systems into a set of refined tables in a series of stages, ultimately processing data to serve analytics from gold tables. While there is a deep desire to build this architecture incrementally from streaming data sources like Kafka, it is very challenging with current technologies available on lakehouses; a lot of technologies can’t efficiently update records or efficiently process incremental data without recomputing all the data to serve low-latency tables. Apache Hudi is a transactional data lake platform with full mutability support, including streaming upserts, and provides a powerful incremental processing framework. Apache Hudi powers the largest transactional data lakes in the industry, differentiating on fast upserts and change streams to only process and serve the change records.
To further improve the upsert performance, Hudi now supports a new record-level index that deterministically maps the record key to the file location orders of magnitude faster. As a result, Hudi speeds up computationally expensive MERGE operations even more by avoiding full table scans. On the query side, Hudi now supports database-style change data capture with before, and after images to chain flow of inserts, updates and deletes change records from bronze to silver to gold tables.
In this talk, attendees will walk away with:
- The current challenges of building a medallion architecture at low-latency
- How the record index and incremental updates work with Apache Hudi
- How the new Hudi CDC feature unlocks incremental processing on the lake
- How you can efficiently build a medallion architecture by avoiding expensive operations"
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBMongoDB
Watch this webinar to learn about our new Backend as a Service (BaaS) – MongoDB Stitch.
MongoDB Stitch lets developers focus on building applications rather than on managing data manipulation code, service integration, or backend infrastructure. Whether you’re just starting up and want a fully managed backend as a service, or you’re part of an enterprise and want to expose existing MongoDB data to new applications, Stitch lets you focus on building the app users want, not on writing boilerplate backend logic.
This webinar will cover the what, why, and how of MongoDB Stitch. We’ll cover everything from the features it provides to the architecture that makes it possible. By the end of the session, you should understand how Stitch can kickstart your new project or take your existing application to the next level.
Attendees will learn:
- The basics of MongoDB Stitch and how to use it for new projects or to expose existing data to new applications
- How to control what data and services individual users can access
- How to integrate your favorite services with your MongoDB application without writing extra code
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr MalykFwdays
The way Architecture is done in BigTech, top-down “rules” and technology choices.
We will talk about freedom in making architecture decisions for Product and Core teams.
We'll go deeper into Fintech solution, built as a crucial component of global SaaS: Microservices, APIs and Queues, Event Sourcing, Feature Toggles, SDLC, CI/CD, DevOps, Monitoring, Analytics and more.
This is achieved thanks to its generic architecture and the definition of a custom SQL-like language. Our language augments the classical SQL data manipulation language in order to add support for streaming queries. From the point of view of the user, a common logical view of the existing catalogs and datastores is presented independently of which cluster or technology stores a particular table.
Supporting multiple architectures imposes two main challenges: how to normalize the access to the datastores, and how to cope with datastore limitations. In order to be able to access multiple datastore technologies Crossdata defines a common unifying interface containing a basic set of operations that a datastore may support. New connectors can be easily added to Crossdata to increase its connectivity
Beyond php - it's not (just) about the codeWim Godden
Most PHP developers focus on writing code. But creating Web applications is about much more than just wrting PHP. Take a step outside the PHP cocoon and into the big PHP ecosphere to find out how small code changes can make a world of difference on servers and network. This talk is an eye-opener for developers who spend over 80% of their time coding, debugging and testing.
This talk covers how to use PostgreSQL together with the Golang (Go) programming language. I will describe what drivers and tools are available and which to use nowadays.
In this talk I will cover what design choices of Go can help you to build robust programs. But also, we will reveal some parts of the language and drivers that can cause obstacles and what routines to apply to avoid risks.
We will try to build the simplest cross-platform application in Go fully covered by tests and ready for CI/CD using GitHub Actions as an example.
Keeping track of your messaging infrastructure is essential to be able to rapidly respond to your changing business demands whilst complying with your constantly changing audit demands. This session will provide illustrations and insight on the techniques and capabilities available in IBM MQ to help you meet these monitoring and auditing demands.
Beyond PHP - it's not (just) about the codeWim Godden
Most PHP developers focus on writing code. But creating Web applications is about much more than just writing PHP. Take a step outside the PHP cocoon and into the big PHP ecosphere to find out how small code changes can make a world of difference on servers and network. This talk is an eye-opener for developers who spend over 80% of their time coding, debugging and testing.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
55. 55
Rowkey design - Rice dumpling
Id ME00000024AC
Title Announce
Content We are hiring
56. 56
Rowkey design - Rice dumpling
Id ME00000024AC
Title Announce
Content We are hiring
Id ME00000024AC.ME00000037ZZ
Title (n/a)
Content I want to join your team !!!
57. 57
Rowkey design - Rice dumpling
Id ME00000024AC
Title Announce
Content We are hiring
Id ME00000024AC.ME00000037ZZ
Title (n/a)
Content I want to join your team !!!
63. 63
Rowkey design - Access controlling
● When post a message (Write)
– Generate ACL Id
64. 64
Rowkey design - Access controlling
● When post a message (Write)
– Generate ACL Id
– Put ACL Id to message, and reader's ACLs
65. 65
Rowkey design - Access controlling
● When post a message (Write)
– Generate ACL Id
– Put ACL Id to message, and reader's ACLs
● When read my messages (Read)
66. 66
Rowkey design - Access controlling
● When post a message (Write)
– Generate ACL Id
– Put ACL Id to message, and reader's ACLs
● When read my messages (Read)
– Scan my ACLs, and all messages
67. 67
Rowkey design - Access controlling
● When post a message (Write)
– Generate ACL Id
– Put ACL Id to message, and reader's ACLs
● When read my messages (Read)
– Scan my ACLs, and all messages
– If my ACLs contains message's ACL Id, can SHOW it
70. 70
Rowkey design - Access controlling
ACL hash hash(A, B, K)+C+R
ACL Id AI0070AD
Message Id ME00000024AC
Title Announce
Content We are hiring
ACL Id AI0070AD
Write
79. 79
Rowkey design - Statistics
● Variety of types
– e.g., Likes, Comments, Registrations
● By unit
– i.e., hourly,daily,weekly,monthly,yearly
80. 80
Rowkey design - Statistics
● Variety of types
– e.g., Likes, Comments, Registrations
● By unit
– i.e., hourly,daily,weekly,monthly,yearly
● By user
82. 82
Rowkey design - Statistics
● Sum counts from 2014/9/7 to 2014/9/20 group by
user or counting type
Unit+Time Base+User Id+Type D+201409+AAA+Like
02 20
08 52
09 41
... ...
20 55
83. 83
Rowkey design - Statistics
● Sum counts from 2014/9/7 to 2014/9/20 group by
user or counting type
Unit+Time Base+User Id+Type D+201409+AAA+Like
02 20
08 52
09 41
... ...
20 55
84. 84
Rowkey design - Statistics
● Sum AAA's counts from 2014/9/7 to 2014/9/20
group by counting type
Unit+Time Base+User Id+Type D+201409+AAA+Like
02 20
08 52
09 41
... ...
20 55
85. 85
Rowkey design - Statistics
● Sum AAA's like counts from 2014/9/7 to 2014/9/20
Unit+Time Base+User Id+Type D+201409+AAA+Like
02 20
08 52
09 41
... ...
20 55
102. 102
No. 2 ONE table, MULTI domains
● In RDBMS
–
–
–
● In NoSQL
–
–
–
103. 103
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
–
–
–
● In NoSQL
–
–
–
104. 104
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
–
–
–
● In NoSQL (at runtime)
–
–
–
105. 105
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
– Primary key affects only one column
–
–
● In NoSQL (at runtime)
–
–
–
106. 106
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
– Primary key affects only one column
–
–
● In NoSQL (at runtime)
– Rowkey always changes
–
–
107. 107
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
– Primary key affects only one column
– Schema is fixed
–
● In NoSQL (at runtime)
– Rowkey always changes
–
–
108. 108
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
– Primary key affects only one column
– Schema is fixed
–
● In NoSQL (at runtime)
– Rowkey always changes
– Schema always changes
–
109. 109
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
– Primary key affects only one column
– Schema is fixed
– DAO serves one domain
● In NoSQL (at runtime)
– Rowkey always changes
– Schema always changes
–
110. 110
No. 2 ONE table, MULTI domains
● In RDBMS (at design time)
– Primary key affects only one column
– Schema is fixed
– DAO serves one domain
● In NoSQL (at runtime)
– Rowkey always changes
– Schema always changes
– DAO serves many domains
111. 111
No. 2 ONE table, MULTI domains
User Id ID0000001A3B
Access Token d66e3b70-3666-11e4-8c21-0800200c9a66
Expired Time 1410077636
112. 112
No. 2 ONE table, MULTI domains
User Id ID0000001A3B
Access Token d66e3b70-3666-11e4-8c21-0800200c9a66
Expired Time 1410077636
User Id+ACL Id ID0000001A3B+AI0070AD
Create 1
Read 1
Update 0
Delete 0
113. 113
No. 2 ONE table, MULTI domains
User Id ID0000001A3B
Access Token d66e3b70-3666-11e4-8c21-0800200c9a66
Expired Time 1410077636
User Id+ACL Id ID0000001A3B+AI0070AD
Create 1
Read 1
Update 0
Delete 0
114. 114
No. 2 ONE table, MULTI domains
● A DAO maps to a domain in RDBMS
115. 115
No. 2 ONE table, MULTI domains
● A DAO maps to a domain in RDBMS
DB DAO Domain A
116. 116
No. 2 ONE table, MULTI domains
● A DAO maps to multiple domains in NoSQL
117. 117
No. 2 ONE table, MULTI domains
● A DAO maps to multiple domains in NoSQL
DB DAO
Domain A1
Domain A2
Domain A3
118. 118
No. 2 ONE table, MULTI domains
● A DAO maps to multiple domains in NoSQL
● Build a middle layer to translate multiple domains
DB DAO
Domain A1
Domain A2
Domain A3
119. 119
No. 2 ONE table, MULTI domains
● A DAO maps to multiple domains in NoSQL
● Build a middle layer to translate multiple domains
DB DAO
Domain A1
Domain A2
Domain A3
Schema
120. 120
No. 2 ONE table, MULTI domains
● A DAO maps to multiple domains in NoSQL
● Build a middle layer to translate multiple domains
DB DAO
Domain A1
Domain A2
Domain A3
Schema
121. 121
No. 2 ONE table, MULTI domains
private String checkDomainType(Result result) {
if (result.isEmpty()) {
return null;
} else {
String rowkey = Bytes.toString(result.getRow());
String[] splitKey = rowkey.split(DIVIDER);
if (splitKey.length == 1) {
}
}
}
122. 122
No. 2 ONE table, MULTI domains
private String checkDomainType(Result result) {
if (result.isEmpty()) {
return null;
} else {
String rowkey = Bytes.toString(result.getRow());
String[] splitKey = rowkey.split(DIVIDER);
if (splitKey.length == 1) {
return DOMAIN_TYPE_VALIDATION1;
}
}
}
123. 123
No. 2 ONE table, MULTI domains
private String checkDomainType(Result result) {
if (result.isEmpty()) {
return null;
} else {
String rowkey = Bytes.toString(result.getRow());
String[] splitKey = rowkey.split(DIVIDER);
if (splitKey.length == 1) {
return DOMAIN_TYPE_VALIDATION1;
} else if (splitKey.length == 2) {
return DOMAIN_TYPE_VALIDATION2;
}
}
}
134. 134
API Blueprint - Introduction
● Web API Language
● Pure Markdown
● Design for Humans
135. 135
API Blueprint - Introduction
● Web API Language
● Pure Markdown
● Design for Humans
● Understandable by Machines
136. 136
API Blueprint - Introduction
● Web API Language
● Pure Markdown
● Design for Humans
● Understandable by Machines
● Powerful Tooling
137. 137
API Blueprint - Introduction
● Web API Language
● Pure Markdown
● Design for Humans
● Understandable by Machines
● Powerful Tooling
● Easy Lifecycle