jamesesilvia / cs542 Goto Github PK
View Code? Open in Web Editor NEWDatabase Management Systems
Database Management Systems
On the client side, you enter a string instead of a number when prompted for a key. This works for all command types. Server accepts this and interprets string as the number 0, unless the string begins with a series of numbers, in which case that is the index used.
Steps to reproduce, with a few different scenarios:
Spawn server
Spawn client
On client, use put command
When prompted for key, type "test"
Continue entering parameters as normal
Note that data is put at index 0 (if empty)
On client, use get command
When prompted for key, type "foo"
Note that you actually get index 0
On client, use remove command
When prompted for key, type "bar"
Note that you actually remove index 0
On client, use put command
When prompted for key, type "22fast2furious"
Continue entering parameters as normal
Note that data is put at index 22 (if empty)
On client, use put command
When prompted for key, type "9 9999999"
When prompted for file, type "n"
When prompted for data, type "test"
Note that "9999999 test" is put at index 9 (if empty)
Looks like we just need to do some validation on the client side.
If multiple client actions are performed in quick succession then sometimes one client will get the results back from another client and vice versa. For example:
A performs REMOVE
B performs GET
A gets failed GET
B gets successful REMOVE
For example, if you have no cities with a population of 50000 in the DB, then a "Get_Index_By_Population 50000" is going to return READ FAILED instead of something like "No records found."
Very long strings are not stored in full, only the beginning is stored.
Steps to reproduce:
This may have something to do with a maximum buffer length specified by the client/server communication
If two clients are active, quitting with one of them causes problems when another client tries to access the server.
Steps to reproduce:
The client disconnected!
Received: put 8 hi
Unable to send the data!
-bash-3.2$
We may not be handling a disconnect properly in the event that many clients are connected to the server.
If a server receives two commands at about the same time, the commands are correctly processed. However, the server responds to the clients with the wrong message. Instead of the first client getting the message that corresponds with its command, it gets the message that corresponds with the second client's command.
Steps to reproduce:
James said that tracking the clients would solve this issue and he knows how to fix it.
-> get
Please enter key to retrieve data: 3
Getting key: 3 with data...testtestøÔ
update to use MAX_STRING_LENGTH+1 in memory manager to protect against overflow.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.