![]() | ![]() Products ![]() ![]() ![]() ![]() |
Home » Technical Support » ElevateDB Technical Support » Support Forums » ElevateDB General » View Thread |
Messages 1 to 7 of 7 total |
![]() |
Sun, Jan 28 2007 8:13 AM | Permanent Link |
Jose Eduardo Helminsky | Tim
We are already discussed this issue but I think you should think sooner than "ElevateDB C/S only" product be released. If you could put record lock during transactions instead of table lock (restrictive transactions) or database lock in the ElevateDB, the performance for large database x concurrent users will be much better. Eduardo |
Sun, Jan 28 2007 8:36 AM | Permanent Link |
Roy Lambert NLH Associates ![]() | Jose
Check out the thread in elevatesoft,public.discussion from Johnnie Norsworthy titled Locking a Group of Records for Processing (Client/Server) With EDB, you can manually lock as many rows as you would like with these methods: http://www.elevatesoft.com/edb1d5_tedbdataset_lockcurrentrecord.htm http://www.elevatesoft.com/edb1d5_tedbdataset_unlockcurrentrecord.htm http://www.elevatesoft.com/edb1d5_tedbdataset_unlockallrecords.htm Sorry about the lack of docs, they're almost done. Roy Lambert |
Sun, Jan 28 2007 10:23 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. ![]() | Eduardo,
<< We are already discussed this issue but I think you should think sooner than "ElevateDB C/S only" product be released. If you could put record lock during transactions instead of table lock (restrictive transactions) or database lock in the ElevateDB, the performance for large database x concurrent users will be much better. >> It's not as simple as you make it out to be. Only a client-server only (single-user) database engine can perform the type of locking and buffer management necessary to provide the isolation levels so that other users don't see changes by other users within different transactions. It's not just a matter of holding row locks instead of using table-level locks. The reason that table-level locks are necessary is to give a consistent level of isolation between different transactions. The EDB "client-server only engine" will be a completely different engine in a lot of respects. -- Tim Young Elevate Software www.elevatesoft.com |
Sun, Jan 28 2007 10:25 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. ![]() | Roy,
<< Check out the thread in elevatesoft,public.discussion from Johnnie Norsworthy titled Locking a Group of Records for Processing (Client/Server) >> This is true, but it does not provide isolation. IOW, a session could read a value that has been posted by another session, even if the value ends up being reverted back to its original value with another post by the other session. -- Tim Young Elevate Software www.elevatesoft.com |
Mon, Jan 29 2007 3:58 AM | Permanent Link |
"Jose Eduardo Helminsky" | Tim
> It's not as simple as you make it out to be. Only a client-server only > (single-user) database engine can perform the type of locking and buffer > management necessary to provide the isolation levels so that other users > don't see changes by other users within different transactions. It's not > just a matter of holding row locks instead of using table-level locks. > The reason that table-level locks are necessary is to give a consistent > level of isolation between different transactions. My simple approach will be hold SessionID, Database, TableName and RowID in a main thread visible to ALL sessions connected to the server but if you are telling me it is not so easy like this... > The EDB "client-server only engine" will be a completely different engine > in a lot of respects. Ok, let us wait for this release too. Good luck Eduardo |
Mon, Jan 29 2007 6:16 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. ![]() | Eduardo,
<< My simple approach will be hold SessionID, Database, TableName and RowID in a main thread visible to ALL sessions connected to the server but if you are telling me it is not so easy like this... >> Unfortunately it isn't that easy. Think of a query that uses an index for optimization. The index must have information in it to know which transaction has inserted which index keys and which index keys are visible to which transaction. -- Tim Young Elevate Software www.elevatesoft.com |
Tue, Jan 30 2007 4:26 AM | Permanent Link |
"Jose Eduardo Helminsky" | Tim
> Unfortunately it isn't that easy. Think of a query that uses an index for > optimization. The index must have information in it to know which > transaction has inserted which index keys and which index keys are visible > to which transaction. Got it Eduardo |
This web page was last updated on Wednesday, August 14, 2024 at 03:12 PM | Privacy Policy![]() © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? ![]() |