Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Ingres (database)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Architecture== Ingres is a single-node relational database management system, and therefore it is "Share-Everything". ===Storage architecture=== Ingres is a disk-oriented DBMS, and by default employ the n-ary storage model (NSM),<ref>{{cite web |url=https://db.cs.cmu.edu/papers/2016/arulraj-sigmod2016.pdf |title=Bridging the Archipelago between Row-Stores and Column-Stores for Hybrid Workloads |last1=Arulraj |first1=Joy |last2=Pavlo |first2=Andrew |last3=Menon |first3=Prashanth |date=June 2016 |website=db.cs.cmu.edu |publisher=Association for Computing Machinery |access-date= June 16, 2023}} </ref> also known as a row-store. However, Actian has incorporated columnar storage into its latest version of Ingres (Actian X) to improve its performance on OLAP tasks. Actian X has two storage engines, the traditional Ingres and X100, the same engine from [[Actian Vector]]. Although it is currently branded as the "Actian X Hybrid Database", the term "Hybrid" refers to its capability of performing both OLTP and OLAP tasks by employing a hybrid storage model (i.e. both row and column), not that it has a hybrid storage architecture.<ref>{{Cite web|url=https://www.actian.com/wp-content/uploads/2017/04/DS21-ActianX_04A.pdf|title=Actian X Hybrid Database|website=[[Actian]]}}</ref> Regarding the storage organization, Ingres supports [[Heap (data structure)|Heap]], [[Hash table|Hash]], [[ISAM]] and [[B-tree]].<ref>{{Cite web|url=https://communities.actian.com/s/article/Choosing-Storage-Structures-for-your-Ingres-Database|title=BaseChoosing Storage Structures for your Ingres Database|website=communities.actian.com}}</ref> ===Indexes=== Ingres chooses ISAM (Index Sequential Access Method) as the index data structure by default, but also offers B+ Tree, Hash Table, and R-Tree as options. On Actian X, there is also two other options available only for X100 tables:<ref>{{cite web | url=https://docs.actian.com/actianx/11.2/index.html#page/SQLRef/CREATE_INDEX.htm | title=Actian X 11.2 Documentation }}</ref> * '''X100_IX''': Default, creates a primary (clustered) index. Only one primary index per table is allowed. * '''X100_SI''': Creates a secondary index on additional columns in an X100 table. Can also be specified as VWSI. Secondary indexes are not supported for partitioned tables. ===Concurrency control=== Ingres uses [[multiversion concurrency control]] (MVCC), deterministic concurrency control, and two-phase locking (deadlock detection).<ref>{{cite web | url=https://dbdb.io/db/ingres | title=Database of Databases β Ingres | date=27 June 2022 }}</ref> ===Isolation levels=== Ingres supports four isolation levels, from favoring consistency to maximizing concurrency: Serializable, Repeatable Read, Read Committed. and Read Uncommitted, Serializable is the default isolation level and it provides the strongest consistency guarantee.<ref>{{cite web | url=http://docs.actian.com/ingres/10s/index.html#page/DatabaseAdmin%2FIsolation_Levels.htm | title=Ingres }}</ref> ===Joins=== Ingres supports joins with hash join, sort-merge join, and nested loop join algorithms. The query optimizer determines which type of join algorithm to use based on its analysis of the query. Nested-loop joins are most often seen on disjoint queries, where correlation variables and table names are arbitrarily used in random order. When there are no restrictions on either table in the join clause, and the rows being joined are spatially continuous, then the query optimizer is likely to choose sort-merge join or hash join.<ref>{{cite web | url=http://docs.actian.com/ingres/10s/index.html#page/DatabaseAdmin%2FJoin_Nodes_in_a_QEP.htm%23 | title=Ingres }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)